This commit is contained in:
XieXudong 2024-09-19 15:34:02 +08:00
parent 6dfaf16ff2
commit ac7e35195c
3 changed files with 165 additions and 214 deletions

View File

@ -5,136 +5,9 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add pl/sql">
<change afterPath="$PROJECT_DIR$/src/main/java/config/CommonConfig.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/Document/Alter table in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Alter table in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Commit,rollback,execute in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Commit,rollback,execute in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/CreateTable in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/CreateTable in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/DataType in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/DataType in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Delete statement in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Delete statement in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/DropTable in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/DropTable in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Exception in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Exception in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Function in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Function in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/IF ELSEIF ELSE in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/IF ELSEIF ELSE in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Insert statement in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Insert statement in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Loop in PLSQL" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Loop in PLSQL" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/PL in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/PL in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Procedure in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Procedure in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Select statement in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Select statement in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Todolist" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Todolist" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Trigger in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Trigger in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Update statement in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/Update statement in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/View in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/document/View in Oracle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Exception/GenerateFailedException.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/exception/GenerateFailedException.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Exception/ParseFailedException.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/exception/ParseFailedException.java" 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/Interface/DataType.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/interfaces/DataType.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/lexer/OracleLexer.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/AST/AlterTable/AlterAddColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterAddColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterAddConstraintNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterAddConstraintNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterDropColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterDropColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterDropConstraintNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterDropConstraintNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterModifyColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterModifyColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterRenameColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterRenameColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/AlterTable/AlterRenameTableNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/alterTable/AlterRenameTableNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CaseWhen/CaseConditionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/caseWhen/CaseConditionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CaseWhen/CaseElseNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/caseWhen/CaseElseNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CaseWhen/CaseEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/caseWhen/CaseEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CaseWhen/CaseThenNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/caseWhen/CaseThenNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/CRTEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/createTable/CRTEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/ColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/createTable/ColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/CreateTabNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/createTable/CreateTabNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/TableConstraintNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/createTable/TableConstraintNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/TableNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/createTable/TableNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/TableTypeNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/createTable/TableTypeNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Delete/DeleteConditionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/delete/DeleteConditionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Delete/DeleteEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/delete/DeleteEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Delete/DeleteNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/delete/DeleteNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Delete/DeleteObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/delete/DeleteObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Drop/DropEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/drop/DropEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Drop/DropNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/drop/DropNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Drop/DropObjNameNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/drop/DropObjNameNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Drop/DropOptionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/drop/DropOptionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/CustomExceptionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/CustomExceptionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/ExceptionActionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/ExceptionActionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/ExceptionEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/ExceptionEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/ExceptionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/ExceptionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/Invalid_numberNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/Invalid_numberNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/OtherExceptionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/OtherExceptionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Exception/Zero_divideNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/exception/Zero_divideNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionBeginNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionBeginNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionBodyNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionBodyNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionNameNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionNameNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionRetDefNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionRetDefNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Function/FunctionReturnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/function/FunctionReturnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/IFELSIF/ELSENode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/iFELSIF/ELSENode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/IFELSIF/ELSIFActionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/iFELSIF/ELSIFActionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/IFELSIF/ELSIFConditionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/iFELSIF/ELSIFConditionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/IFELSIF/EndIFNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/iFELSIF/EndIFNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/IFELSIF/IFActionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/iFELSIF/IFActionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/IFELSIF/IFConditionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/iFELSIF/IFConditionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Insert/InsertDataNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/insert/InsertDataNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Insert/InsertEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/insert/InsertEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Insert/InsertNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/insert/InsertNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Insert/InsertObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/insert/InsertObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinConditionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/join/JoinConditionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/join/JoinEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinSourceTabNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/join/JoinSourceTabNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinTargetTabNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/join/JoinTargetTabNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinTypeNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/join/JoinTypeNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Loop/ForNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/loop/ForNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Loop/LoopBodyNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/loop/LoopBodyNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Loop/LoopEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/loop/LoopEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Loop/LoopExitNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/loop/LoopExitNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Loop/LoopNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/loop/LoopNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Loop/WhileNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/loop/WhileNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/PL/PLBeginNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/pl/PLBeginNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/PL/PLBodyNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/pl/PLBodyNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/PL/PLDeclareNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/pl/PLDeclareNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/PL/PLEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/pl/PLEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/PL/PLNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/pl/PLNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureBeginNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedureBeginNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedureColumnNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedureEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedureNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedureObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedurePLStatementNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedurePLStatementNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureRetDefNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/procedure/ProcedureRetDefNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectContentNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectContentNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectOptionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectOptionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectUnionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectUnionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectWhereClauseNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/select/SelectWhereClauseNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerBeginNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerBeginNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerBodyNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerBodyNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerConditionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerConditionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerForEachRowNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerForEachRowNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerNameNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerNameNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerOptionNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerOptionNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Trigger/TriggerWhenNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/trigger/TriggerWhenNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/update/UpdateEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/update/UpdateNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateObjNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/update/UpdateObjNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateSetNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/update/UpdateSetNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/Update/UpdateWhereNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/update/UpdateWhereNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/View/ViewCreateNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/view/ViewCreateNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/View/ViewEndNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/view/ViewEndNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/View/ViewNameNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/view/ViewNameNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/View/ViewTargetNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/parser/ast/view/ViewTargetNode.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" />
<change beforePath="$PROJECT_DIR$/src/main/java/generator/OpenGaussGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/generator/OpenGaussGenerator.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -149,16 +22,16 @@
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="workspaceImportEnabled" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectColorInfo">{
&quot;customColor&quot;: &quot;&quot;,
&quot;associatedIndex&quot;: 4
}</component>
<component name="ProjectId" id="2kMwWhUohyqt8bZ1bSi1kwgGkSK" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
@ -171,14 +44,16 @@
&quot;keyToString&quot;: {
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;master&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;F:/oracle2opengauss/examples/sqlTranslate&quot;,
&quot;project.structure.last.edited&quot;: &quot;模块&quot;,
&quot;project.structure.proportion&quot;: &quot;0.0&quot;,
&quot;project.structure.side.proportion&quot;: &quot;0.0&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.fileTypes&quot;
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;
}
}</component>
<component name="RunManager" selected="应用程序.Main">
<component name="RunManager" selected="Application.Main">
<configuration name="App" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="org.example.App" />
<module name="sqlTranslate" />
@ -215,11 +90,16 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<list>
<item itemvalue="Application.App" />
<item itemvalue="Application.Main" />
<item itemvalue="JUnit.AppTest.shouldAnswerWithTrue" />
</list>
<recent_temporary>
<list>
<item itemvalue="应用程序.Main" />
<item itemvalue="应用程序.App" />
<item itemvalue="JUnit.AppTest.shouldAnswerWithTrue" />
<item itemvalue="Application.Main" />
<item itemvalue="Application.App" />
</list>
</recent_temporary>
</component>

View File

@ -0,0 +1,25 @@
package config;
public class CommonConfig {
public static final String DEFAULT_SOURCE_DB = "Oracle-19C";
public static final String DEFAULT_TARGET_DB = "OpenGauss-3.0.0";
private static String sourceDB = DEFAULT_SOURCE_DB;
private static String targetDB = DEFAULT_TARGET_DB;
public static void setSourceDB(String sourceDB) {
CommonConfig.sourceDB = sourceDB;
}
public static void setTargetDB(String targetDB) {
CommonConfig.targetDB = targetDB;
}
public static String getSourceDB() {
return sourceDB;
}
public static String getTargetDB() {
return targetDB;
}
}

View File

@ -1,5 +1,6 @@
package generator;
import config.CommonConfig;
import interfaces.DataType;
import lexer.OracleLexer;
import lexer.Token;
@ -192,8 +193,11 @@ public class OpenGaussGenerator {
}
private void visitCrt(ASTNode node) {
if (node instanceof ColumnNode) {
DataTypeConvert((ColumnNode) node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof ColumnNode) {
DataTypeConvert((ColumnNode) node);
}
}
for (ASTNode child : node.getChildren()) {
visitCrt(child);
@ -201,29 +205,23 @@ public class OpenGaussGenerator {
}
private void visitDrop(ASTNode node) {
try {
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof DropOptionNode) {
List<Token> tokens = new ArrayList<>();
tokens.add(new Token(Token.TokenType.KEYWORD, "CASCADE"));
tokens.add(new Token(Token.TokenType.KEYWORD, "CONSTRAINTS"));
if (node.tokensEqual(tokens)) {
throw new GenerateFailedException("Unsupported type:" + node.toString() + "(OpenGauss doesn't support the keyword -- " + node.toString() + " or have any expression that keeps the same semantic!)");
}
CommonConvert(node);
}
}
catch (GenerateFailedException e) {
e.printStackTrace();
}
for (ASTNode child : node.getChildren()) {
visitDrop(child);
}
}
private void visitJoin(ASTNode node) {
if (node instanceof JoinConditionNode) {
if (((JoinConditionNode) node).getKeyword().equalsIgnoreCase("USING")) {
((JoinConditionNode) node).setKeyword("ON");
}
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof JoinConditionNode) {
CommonConvert(node);
}
}
for (ASTNode child : node.getChildren()) {
visitJoin(child);
@ -231,8 +229,11 @@ public class OpenGaussGenerator {
}
private void visitLoop(ASTNode node) {
if (node instanceof LoopBodyNode) {
PLConvert(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof LoopBodyNode) {
CommonConvert(node);
}
}
for (ASTNode child : node.getChildren()) {
visitLoop(child);
@ -240,8 +241,11 @@ public class OpenGaussGenerator {
}
private void visitException(ASTNode node) {
if (node instanceof ExceptionActionNode) {
PLConvert(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof ExceptionActionNode) {
CommonConvert(node);
}
}
for (ASTNode child : node.getChildren()) {
visitException(child);
@ -249,8 +253,11 @@ public class OpenGaussGenerator {
}
private void visitSelect(ASTNode node) {
if (node instanceof JoinSourceTabNode) {
visitJoin(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof JoinSourceTabNode) {
visitJoin(node);
}
}
for (ASTNode child : node.getChildren()) {
visitSelect(child);
@ -258,8 +265,11 @@ public class OpenGaussGenerator {
}
private void visitUpdate(ASTNode node) {
if (node instanceof JoinSourceTabNode) {
visitJoin(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof JoinSourceTabNode) {
visitJoin(node);
}
}
for (ASTNode child : node.getChildren()) {
visitUpdate(child);
@ -267,11 +277,14 @@ public class OpenGaussGenerator {
}
private void visitAlter(ASTNode node) {
if (node instanceof AlterAddColumnNode) {
DataTypeConvert((AlterAddColumnNode) node);
}
else if (node instanceof AlterModifyColumnNode) {
DataTypeConvert((AlterModifyColumnNode) node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof AlterAddColumnNode) {
DataTypeConvert((AlterAddColumnNode) node);
}
else if (node instanceof AlterModifyColumnNode) {
DataTypeConvert((AlterModifyColumnNode) node);
}
}
for (ASTNode child : node.getChildren()) {
visitAlter(child);
@ -279,8 +292,11 @@ public class OpenGaussGenerator {
}
private void visitCreateView(ASTNode node) {
if (node instanceof SelectNode) {
visitSelect(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof SelectNode) {
visitSelect(node);
}
}
for (ASTNode child : node.getChildren()) {
visitCreateView(child);
@ -288,18 +304,21 @@ public class OpenGaussGenerator {
}
private void visitPL(ASTNode node) {
if (node instanceof ProcedureRetDefNode) {
DataTypeConvert((ProcedureRetDefNode) node);
PLConvert(node);
}
else if (node instanceof ProcedureColumnNode) {
DataTypeConvert((ProcedureColumnNode) node);
}
else if (node instanceof ProcedureEndNode) {
PLConvert(node);
}
else if (node instanceof ExceptionNode) {
visitException(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof ProcedureRetDefNode) {
DataTypeConvert((ProcedureRetDefNode) node);
CommonConvert(node);
}
else if (node instanceof ProcedureColumnNode) {
DataTypeConvert((ProcedureColumnNode) node);
}
else if (node instanceof ProcedureEndNode) {
CommonConvert(node);
}
else if (node instanceof ExceptionNode) {
visitException(node);
}
}
for (ASTNode child : node.getChildren()) {
visitPL(child);
@ -307,17 +326,20 @@ public class OpenGaussGenerator {
}
private void visitFunc(ASTNode node) {
if (node instanceof FunctionRetDefNode) {
PLConvert(node);
}
else if (node instanceof ExceptionNode) {
visitException(node);
}
else if (node instanceof FunctionColumnNode) {
DataTypeConvert((FunctionColumnNode) node);
}
else if (node instanceof FunctionEndNode) {
PLConvert(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof FunctionRetDefNode) {
CommonConvert(node);
}
else if (node instanceof ExceptionNode) {
visitException(node);
}
else if (node instanceof FunctionColumnNode) {
DataTypeConvert((FunctionColumnNode) node);
}
else if (node instanceof FunctionEndNode) {
CommonConvert(node);
}
}
for (ASTNode child : node.getChildren()) {
visitFunc(child);
@ -325,14 +347,17 @@ public class OpenGaussGenerator {
}
private void visitTrigger(ASTNode node) {
if (node instanceof TriggerBodyNode) {
PLConvert(node);
}
else if (node instanceof TriggerConditionNode) {
PLConvert(node);
}
else if (node instanceof TriggerOptionNode) {
PLConvert(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof TriggerBodyNode) {
CommonConvert(node);
}
else if (node instanceof TriggerConditionNode) {
CommonConvert(node);
}
else if (node instanceof TriggerOptionNode) {
CommonConvert(node);
}
}
for (ASTNode child : node.getChildren()) {
visitTrigger(child);
@ -340,24 +365,27 @@ public class OpenGaussGenerator {
}
private void visitPLSQL(ASTNode node) {
if (node instanceof PLNode) {
PLConvert(node);
}
else if (node instanceof PLDeclareNode) {
DataTypeConvert((PLDeclareNode) node);
}
else if (node instanceof PLEndNode) {
PLConvert(node);
}
else if (node instanceof PLBodyNode) {
PLConvert(node);
if (CommonConfig.getSourceDB().equalsIgnoreCase("ORACLE-19C")
&& CommonConfig.getTargetDB().equalsIgnoreCase("OPENGAUSS-3.0.0")) {
if (node instanceof PLNode) {
CommonConvert(node);
}
else if (node instanceof PLDeclareNode) {
DataTypeConvert((PLDeclareNode) node);
}
else if (node instanceof PLEndNode) {
CommonConvert(node);
}
else if (node instanceof PLBodyNode) {
CommonConvert(node);
}
}
for (ASTNode child : node.getChildren()) {
visitPLSQL(child);
}
}
private void PLConvert(ASTNode node) {
private void CommonConvert(ASTNode node) {
if (node.checkExistsByRegex("(?i)DBMS_OUTPUT.PUT_LINE\\(.*?\\)")) {
String printObj = "";
for (Token token: node.getTokens()) {
@ -504,6 +532,24 @@ public class OpenGaussGenerator {
tokens.add(new Token(Token.TokenType.SYMBOL, ";"));
node.setTokens(tokens);
}
if (node instanceof DropOptionNode) {
try {
List<Token> tokens = new ArrayList<>();
tokens.add(new Token(Token.TokenType.KEYWORD, "CASCADE"));
tokens.add(new Token(Token.TokenType.KEYWORD, "CONSTRAINTS"));
if (node.tokensEqual(tokens)) {
throw new GenerateFailedException("Unsupported type:" + node.toString() + "(OpenGauss doesn't support the keyword -- " + node.toString() + " or have any expression that keeps the same semantic!)");
}
} catch (GenerateFailedException e) {
e.printStackTrace();
}
}
if (node instanceof JoinConditionNode) {
if (((JoinConditionNode) node).getKeyword().equalsIgnoreCase("USING")) {
((JoinConditionNode) node).setKeyword("ON");
}
}
}