This commit is contained in:
XudongXie 2024-08-24 22:34:53 +08:00
parent e0a1c67c1b
commit d3779f8b3c
4 changed files with 19 additions and 9 deletions

View File

@ -5,9 +5,10 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="coding">
<change afterPath="$PROJECT_DIR$/src/main/java/Document/Column constraint in Oracle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Document/Table constraint in Oracle" 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/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" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -224,7 +225,14 @@
<option name="project" value="LOCAL" />
<updated>1724506701566</updated>
</task>
<option name="localTasksCounter" value="18" />
<task id="LOCAL-00018" summary="coding">
<created>1724507228242</created>
<option name="number" value="00018" />
<option name="presentableId" value="LOCAL-00018" />
<option name="project" value="LOCAL" />
<updated>1724507228242</updated>
</task>
<option name="localTasksCounter" value="19" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">

View File

@ -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();
}
}
}

View File

@ -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" +

View File

@ -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);