add update ast class

This commit is contained in:
XudongXie 2024-09-12 21:50:13 +08:00
parent 66b46f52a7
commit efd9320ff6
8 changed files with 139 additions and 9 deletions

View File

@ -4,13 +4,14 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="refractor">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add select convert rules">
<change afterPath="$PROJECT_DIR$/src/main/java/Document/Update statement in Oracle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateEndNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateObjNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateSetNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateWhereNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Generator/OpenGaussGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Generator/OpenGaussGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Lexer/Token.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Lexer/Token.java" 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/AST/ASTNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/ASTNode.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" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -402,7 +403,14 @@
<option name="project" value="LOCAL" />
<updated>1726143907403</updated>
</task>
<option name="localTasksCounter" value="43" />
<task id="LOCAL-00043" summary="add select convert rules">
<created>1726148093221</created>
<option name="number" value="00043" />
<option name="presentableId" value="LOCAL-00043" />
<option name="project" value="LOCAL" />
<updated>1726148093221</updated>
</task>
<option name="localTasksCounter" value="44" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -439,7 +447,8 @@
<MESSAGE value="add join" />
<MESSAGE value="add join convert rule" />
<MESSAGE value="refractor" />
<option name="LAST_COMMIT_MESSAGE" value="refractor" />
<MESSAGE value="add select convert rules" />
<option name="LAST_COMMIT_MESSAGE" value="add select convert rules" />
</component>
<component name="XDebuggerManager">
<watches-manager>

View File

@ -5,7 +5,7 @@ Operation
 order by 1
 union 1
 insert into 1
 update... set
 update... set 1
 delete
 if... elsif... else... end if
 case... when... then 1

View File

@ -0,0 +1 @@
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

View File

@ -0,0 +1,24 @@
package Parser.AST.Update;
import Parser.AST.ASTNode;
import Lexer.Token;
import java.util.List;
public class UpdateEndNode extends ASTNode {
public UpdateEndNode(ASTNode node) {
super(node);
}
public UpdateEndNode(List<Token> tokens) {
super(tokens);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString());
for (ASTNode child : getChildren()) {
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,24 @@
package Parser.AST.Update;
import Parser.AST.ASTNode;
import Lexer.Token;
import java.util.List;
public class UpdateNode extends ASTNode {
public UpdateNode(ASTNode node) {
super(node);
}
public UpdateNode(List<Token> tokens) {
super(tokens);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,24 @@
package Parser.AST.Update;
import Parser.AST.ASTNode;
import Lexer.Token;
import java.util.List;
public class UpdateObjNode extends ASTNode {
public UpdateObjNode(ASTNode node) {
super(node);
}
public UpdateObjNode(List<Token> tokens) {
super(tokens);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(this, queryString);
}
}
}

View File

@ -0,0 +1,24 @@
package Parser.AST.Update;
import Parser.AST.ASTNode;
import Lexer.Token;
import java.util.List;
public class UpdateSetNode extends ASTNode {
public UpdateSetNode(ASTNode node) {
super(node);
}
public UpdateSetNode(List<Token> tokens) {
super(tokens);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(this, queryString);
}
}
}

View File

@ -0,0 +1,24 @@
package Parser.AST.Update;
import Parser.AST.ASTNode;
import Lexer.Token;
import java.util.List;
public class UpdateWhereNode extends ASTNode {
public UpdateWhereNode(ASTNode node) {
super(node);
}
public UpdateWhereNode(List<Token> tokens) {
super(tokens);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(child, queryString);
}
}
}