forked from opengaussexamples/examples
revise
This commit is contained in:
parent
aa5c0f2343
commit
3254457fb0
|
|
@ -6,7 +6,6 @@
|
|||
<component name="ChangeListManager">
|
||||
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="revise">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Main.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/OracleParser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Parser/OracleParser.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
|
@ -105,13 +104,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1723106789329</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00004" summary="add AST node">
|
||||
<created>1723992163694</created>
|
||||
<option name="number" value="00004" />
|
||||
<option name="presentableId" value="LOCAL-00004" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1723992163694</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00005" summary="add functions">
|
||||
<created>1724145125754</created>
|
||||
<option name="number" value="00005" />
|
||||
|
|
@ -448,7 +440,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1726197698087</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="53" />
|
||||
<task id="LOCAL-00053" summary="revise">
|
||||
<created>1726198053495</created>
|
||||
<option name="number" value="00053" />
|
||||
<option name="presentableId" value="LOCAL-00053" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1726198053495</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="54" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ public class AlterAddColumnNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
|
||||
public Token getName() {
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class AlterAddConstraintNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ public class AlterDropColumnNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class AlterDropConstraintNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,13 @@ import Parser.AST.ASTNode;
|
|||
import java.util.List;
|
||||
|
||||
public class AlterModifyColumnNode extends ASTNode {
|
||||
private Token columnName;
|
||||
private Token columnType;
|
||||
|
||||
public AlterModifyColumnNode() {
|
||||
super();
|
||||
}
|
||||
|
||||
public AlterModifyColumnNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
|
@ -14,11 +21,27 @@ public class AlterModifyColumnNode extends ASTNode {
|
|||
super(tokens);
|
||||
}
|
||||
|
||||
public void setColumnType(Token columnType) {
|
||||
this.columnType = columnType;
|
||||
}
|
||||
|
||||
public Token getColumnType() {
|
||||
return columnType;
|
||||
}
|
||||
|
||||
public void setColumnName(Token columnName) {
|
||||
this.columnName = columnName;
|
||||
}
|
||||
|
||||
public Token getColumnName() {
|
||||
return columnName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class AlterNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class AlterObjNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class AlterRenameColumnNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class AlterRenameTableNode extends ASTNode {
|
|||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
|
||||
for (ASTNode child : getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1076,10 +1076,56 @@ public class OracleParser {
|
|||
|
||||
}
|
||||
else if (parseTokens.get(i).hasType(Token.TokenType.KEYWORD) && parseTokens.get(i).getValue().equalsIgnoreCase("DROP")) {
|
||||
|
||||
if (i + 1 < parseTokens.size() && parseTokens.get(i + 1).hasType(Token.TokenType.KEYWORD) && parseTokens.get(i + 1).getValue().equalsIgnoreCase("COLUMN")) {
|
||||
tokens = new ArrayList<>();
|
||||
tokens.add(parseTokens.get(i));
|
||||
for (int j = i + 1; j < parseTokens.size(); j++) {
|
||||
if (parseTokens.get(j).hasType(Token.TokenType.SYMBOL) && parseTokens.get(j).getValue().equalsIgnoreCase(";")) {
|
||||
i = j - 1;
|
||||
break;
|
||||
}
|
||||
tokens.add(parseTokens.get(j));
|
||||
}
|
||||
ASTNode childNode = new AlterDropColumnNode(tokens);
|
||||
currentNode.addChild(childNode);
|
||||
currentNode = childNode;
|
||||
}
|
||||
else if (i + 1 < parseTokens.size() && parseTokens.get(i + 1).hasType(Token.TokenType.KEYWORD) && parseTokens.get(i + 1).getValue().equalsIgnoreCase("CONSTRAINT")) {
|
||||
tokens = new ArrayList<>();
|
||||
tokens.add(parseTokens.get(i));
|
||||
for (int j = i + 1; j < parseTokens.size(); j++) {
|
||||
if (parseTokens.get(j).hasType(Token.TokenType.SYMBOL) && parseTokens.get(j).getValue().equalsIgnoreCase(";")) {
|
||||
i = j - 1;
|
||||
break;
|
||||
}
|
||||
tokens.add(parseTokens.get(j));
|
||||
}
|
||||
ASTNode childNode = new AlterDropConstraintNode(tokens);
|
||||
currentNode.addChild(childNode);
|
||||
currentNode = childNode;
|
||||
}
|
||||
else {
|
||||
try {
|
||||
throw new ParseFailedException("Parse failed:There exists syntex error in the input sql!");
|
||||
}
|
||||
catch (ParseFailedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (parseTokens.get(i).hasType(Token.TokenType.KEYWORD) && parseTokens.get(i).getValue().equalsIgnoreCase("MODIFY")) {
|
||||
|
||||
tokens = new ArrayList<>();
|
||||
tokens.add(parseTokens.get(i));
|
||||
for (int j = i + 1; j < parseTokens.size(); j++) {
|
||||
if (parseTokens.get(j).hasType(Token.TokenType.SYMBOL) && parseTokens.get(j).getValue().equalsIgnoreCase(";")) {
|
||||
i = j - 1;
|
||||
break;
|
||||
}
|
||||
tokens.add(parseTokens.get(j));
|
||||
}
|
||||
ASTNode childNode = new AlterModifyColumnNode(tokens);
|
||||
currentNode.addChild(childNode);
|
||||
currentNode = childNode;
|
||||
}
|
||||
else if (parseTokens.get(i).hasType(Token.TokenType.KEYWORD) && parseTokens.get(i).getValue().equalsIgnoreCase("RENAME")) {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue