diff --git a/sqlTranslate/.idea/workspace.xml b/sqlTranslate/.idea/workspace.xml
index ce358510a..1e1f96cea 100644
--- a/sqlTranslate/.idea/workspace.xml
+++ b/sqlTranslate/.idea/workspace.xml
@@ -6,7 +6,6 @@
-
@@ -105,13 +104,6 @@
1723106789329
-
- 1723992163694
-
-
-
- 1723992163694
-
1724145125754
@@ -448,7 +440,14 @@
1726197698087
-
+
+ 1726198053495
+
+
+
+ 1726198053495
+
+
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddColumnNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddColumnNode.java
index cf2c2e69d..0451f2586 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddColumnNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddColumnNode.java
@@ -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() {
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddConstraintNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddConstraintNode.java
index e070e5703..bb4adf9d8 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddConstraintNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterAddConstraintNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropColumnNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropColumnNode.java
index 120116cfb..712ebcc18 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropColumnNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropColumnNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropConstraintNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropConstraintNode.java
index b32ad2a67..88cdffce7 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropConstraintNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterDropConstraintNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterModifyColumnNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterModifyColumnNode.java
index 49a7d0f4e..62ff0fba8 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterModifyColumnNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterModifyColumnNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterNode.java
index 23c795a90..1a7704078 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterObjNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterObjNode.java
index c1a06a720..5149a0b09 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterObjNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterObjNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameColumnNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameColumnNode.java
index 8295026a7..32a11f4c1 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameColumnNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameColumnNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameTableNode.java b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameTableNode.java
index 049fed275..85a5c6528 100644
--- a/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameTableNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/AlterTable/AlterRenameTableNode.java
@@ -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);
+ }
}
}
diff --git a/sqlTranslate/src/main/java/Parser/OracleParser.java b/sqlTranslate/src/main/java/Parser/OracleParser.java
index a63b2ec8c..411743f10 100644
--- a/sqlTranslate/src/main/java/Parser/OracleParser.java
+++ b/sqlTranslate/src/main/java/Parser/OracleParser.java
@@ -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")) {