From d3779f8b3cf52147e35a1da79259a5b19ce4e21c Mon Sep 17 00:00:00 2001 From: XudongXie Date: Sat, 24 Aug 2024 22:34:53 +0800 Subject: [PATCH] coding --- sqlTranslate/.idea/workspace.xml | 14 +++++++++++--- .../main/java/Generator/OpenGaussGenerator.java | 6 ++++-- sqlTranslate/src/main/java/Main.java | 2 +- .../src/main/java/Parser/OracleParser.java | 6 +++--- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/sqlTranslate/.idea/workspace.xml b/sqlTranslate/.idea/workspace.xml index f9e6e2cd6..43b9a0ac6 100644 --- a/sqlTranslate/.idea/workspace.xml +++ b/sqlTranslate/.idea/workspace.xml @@ -5,9 +5,10 @@ - - + + + diff --git a/sqlTranslate/src/main/java/Generator/OpenGaussGenerator.java b/sqlTranslate/src/main/java/Generator/OpenGaussGenerator.java index 07e4b15fb..ff0aa05cb 100644 --- a/sqlTranslate/src/main/java/Generator/OpenGaussGenerator.java +++ b/sqlTranslate/src/main/java/Generator/OpenGaussGenerator.java @@ -1,5 +1,6 @@ package Generator; +import Lexer.Token; import Parser.AST.ASTNode; import Parser.AST.CreateTable.ColumnNode; import Parser.AST.CreateTable.CreateTabNode; @@ -35,8 +36,9 @@ public class OpenGaussGenerator { } private void ColumnTypeConvert(ColumnNode node) { - if (node.getType().getValue().equalsIgnoreCase("")) { - + if (node.getType().getValue().equalsIgnoreCase("NUMBER")) { + node.setType(new Token(Token.TokenType.KEYWORD, "NUMERIC")); + node.ResetTokensbyNameTypeConstraint(); } } } diff --git a/sqlTranslate/src/main/java/Main.java b/sqlTranslate/src/main/java/Main.java index b53563339..f7097627a 100644 --- a/sqlTranslate/src/main/java/Main.java +++ b/sqlTranslate/src/main/java/Main.java @@ -8,7 +8,7 @@ import Parser.OracleParser; public class Main { public static void main(String[] args) { String sql = "CREATE TABLE employees (\n" + - " employee_id NUMBER(6) PRIMARY KEY,\n" + + " employee_id NUMBER PRIMARY KEY,\n" + " first_name VARCHAR2(20),\n" + " last_name VARCHAR2(25),\n" + " email VARCHAR2(25),\n" + diff --git a/sqlTranslate/src/main/java/Parser/OracleParser.java b/sqlTranslate/src/main/java/Parser/OracleParser.java index 61a34e600..472b62f4b 100644 --- a/sqlTranslate/src/main/java/Parser/OracleParser.java +++ b/sqlTranslate/src/main/java/Parser/OracleParser.java @@ -90,9 +90,6 @@ public class OracleParser { if (j == i + 1) { child.setType(lexer.getTokens().get(j)); } - else { - constraint.add(lexer.getTokens().get(j)); - } // Check () or REFERENCES other_table(other_column) if (lexer.getTokens().get(j).hasType(Token.TokenType.KEYWORD) && (lexer.getTokens().get(j).getValue().equalsIgnoreCase("REFERENCES") @@ -129,6 +126,9 @@ public class OracleParser { break; } tokens.add(lexer.getTokens().get(j)); + if (j != i + 1) { + constraint.add(lexer.getTokens().get(j)); + } } child.setTokens(tokens); child.setConstraint(constraint);