Fix for Bug 377655 (DBWS DDLParser: Should ignore schema if prepended to arguments)
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
index 9f94ffa..e7b9f39 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
@@ -1256,6 +1256,22 @@
if (((TableType)enclosingType).getSchema().equals(namePart1)) {
s = namePart2;
}
+ } else if (enclosingType.isObjectTableType()) {
+ if (((ObjectTableType)enclosingType).getSchema().equals(namePart1)) {
+ s = namePart2;
+ }
+ } else if (enclosingType.isObjectType()) {
+ if (((ObjectType)enclosingType).getSchema().equals(namePart1)) {
+ s = namePart2;
+ }
+ } else if (enclosingType.isPLSQLType()) {
+ if (((PLSQLType)enclosingType).getParentType().getSchema().equals(namePart1)) {
+ s = namePart2;
+ }
+ } else if (enclosingType.isVArrayType()) {
+ if (((VArrayType)enclosingType).getSchema().equals(namePart1)) {
+ s = namePart2;
+ }
}
}
for (String typeName : localTypes.keySet()) {
@@ -3447,88 +3463,6 @@
catch(LookaheadSuccess ls) { return true; }
}
- private boolean jj_3R_30() {
- if (jj_scan_token(K_INTERVAL)) return true;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_69()) {
- jj_scanpos = xsp;
- if (jj_3R_70()) return true;
- }
- return false;
- }
-
- private boolean jj_3R_83() {
- if (jj_scan_token(O_OPENPAREN)) return true;
- if (jj_scan_token(S_NUMBER)) return true;
- return false;
- }
-
- private boolean jj_3R_29() {
- if (jj_scan_token(K_DATE)) return true;
- return false;
- }
-
- private boolean jj_3R_28() {
- if (jj_scan_token(K_BOOLEAN)) return true;
- return false;
- }
-
- private boolean jj_3R_9() {
- if (jj_scan_token(K_RECORD)) return true;
- if (jj_scan_token(O_OPENPAREN)) return true;
- return false;
- }
-
- private boolean jj_3R_68() {
- if (jj_scan_token(O_OPENPAREN)) return true;
- if (jj_scan_token(S_NUMBER)) return true;
- return false;
- }
-
- private boolean jj_3R_56() {
- if (jj_scan_token(K_NVARCHAR2)) return true;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_84()) jj_scanpos = xsp;
- return false;
- }
-
- private boolean jj_3R_82() {
- if (jj_scan_token(O_OPENPAREN)) return true;
- if (jj_scan_token(S_NUMBER)) return true;
- return false;
- }
-
- private boolean jj_3R_67() {
- if (jj_scan_token(O_OPENPAREN)) return true;
- if (jj_scan_token(S_NUMBER)) return true;
- return false;
- }
-
- private boolean jj_3R_90() {
- if (jj_scan_token(O_COMMA)) return true;
- return false;
- }
-
- private boolean jj_3R_65() {
- if (jj_3R_12()) return true;
- return false;
- }
-
- private boolean jj_3R_27() {
- if (jj_scan_token(K_RAW)) return true;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_68()) jj_scanpos = xsp;
- return false;
- }
-
- private boolean jj_3_2() {
- if (jj_3R_7()) return true;
- return false;
- }
-
private boolean jj_3R_55() {
if (jj_scan_token(K_NVARCHAR)) return true;
Token xsp;
@@ -3537,16 +3471,6 @@
return false;
}
- private boolean jj_3R_18() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3_2()) {
- jj_scanpos = xsp;
- if (jj_3R_65()) return true;
- }
- return false;
- }
-
private boolean jj_3_11() {
if (jj_3R_15()) return true;
return false;
@@ -3558,6 +3482,16 @@
return false;
}
+ private boolean jj_3R_65() {
+ if (jj_3R_12()) return true;
+ return false;
+ }
+
+ private boolean jj_3_2() {
+ if (jj_3R_7()) return true;
+ return false;
+ }
+
private boolean jj_3R_14() {
if (jj_scan_token(R_ANCHORED_ROWTYPE)) return true;
return false;
@@ -3573,6 +3507,16 @@
return false;
}
+ private boolean jj_3R_18() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_2()) {
+ jj_scanpos = xsp;
+ if (jj_3R_65()) return true;
+ }
+ return false;
+ }
+
private boolean jj_3_12() {
if (jj_scan_token(K_NOCOPY)) return true;
return false;
@@ -3664,12 +3608,6 @@
return false;
}
- private boolean jj_3R_6() {
- if (jj_3R_17()) return true;
- if (jj_3R_18()) return true;
- return false;
- }
-
private boolean jj_3R_89() {
Token xsp;
xsp = jj_scanpos;
@@ -3698,11 +3636,6 @@
return false;
}
- private boolean jj_3_1() {
- if (jj_3R_6()) return true;
- return false;
- }
-
private boolean jj_3R_75() {
if (jj_scan_token(O_OPENPAREN)) return true;
if (jj_scan_token(S_NUMBER)) return true;
@@ -3720,6 +3653,12 @@
return false;
}
+ private boolean jj_3R_6() {
+ if (jj_3R_17()) return true;
+ if (jj_3R_18()) return true;
+ return false;
+ }
+
private boolean jj_3R_66() {
if (jj_scan_token(O_OPENPAREN)) return true;
Token xsp;
@@ -3763,6 +3702,11 @@
return false;
}
+ private boolean jj_3_1() {
+ if (jj_3R_6()) return true;
+ return false;
+ }
+
private boolean jj_3R_24() {
if (jj_scan_token(K_SIGNTYPE)) return true;
return false;
@@ -4231,6 +4175,69 @@
return false;
}
+ private boolean jj_3R_69() {
+ if (jj_scan_token(K_DAY)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_91()) jj_scanpos = xsp;
+ if (jj_scan_token(R_TO)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_57() {
+ if (jj_scan_token(K_NATIONAL)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(138)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(137)) return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(213)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_87()) jj_scanpos = xsp;
+ return false;
+ }
+
+ private boolean jj_3R_30() {
+ if (jj_scan_token(K_INTERVAL)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_69()) {
+ jj_scanpos = xsp;
+ if (jj_3R_70()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_83() {
+ if (jj_scan_token(O_OPENPAREN)) return true;
+ if (jj_scan_token(S_NUMBER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_29() {
+ if (jj_scan_token(K_DATE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_28() {
+ if (jj_scan_token(K_BOOLEAN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_9() {
+ if (jj_scan_token(K_RECORD)) return true;
+ if (jj_scan_token(O_OPENPAREN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_68() {
+ if (jj_scan_token(O_OPENPAREN)) return true;
+ if (jj_scan_token(S_NUMBER)) return true;
+ return false;
+ }
+
private boolean jj_3R_16() {
Token xsp;
xsp = jj_scanpos;
@@ -4499,27 +4506,36 @@
return false;
}
- private boolean jj_3R_69() {
- if (jj_scan_token(K_DAY)) return true;
+ private boolean jj_3R_56() {
+ if (jj_scan_token(K_NVARCHAR2)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_91()) jj_scanpos = xsp;
- if (jj_scan_token(R_TO)) return true;
+ if (jj_3R_84()) jj_scanpos = xsp;
return false;
}
- private boolean jj_3R_57() {
- if (jj_scan_token(K_NATIONAL)) return true;
+ private boolean jj_3R_82() {
+ if (jj_scan_token(O_OPENPAREN)) return true;
+ if (jj_scan_token(S_NUMBER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_67() {
+ if (jj_scan_token(O_OPENPAREN)) return true;
+ if (jj_scan_token(S_NUMBER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_90() {
+ if (jj_scan_token(O_COMMA)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_27() {
+ if (jj_scan_token(K_RAW)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(138)) {
- jj_scanpos = xsp;
- if (jj_scan_token(137)) return true;
- }
- xsp = jj_scanpos;
- if (jj_scan_token(213)) jj_scanpos = xsp;
- xsp = jj_scanpos;
- if (jj_3R_87()) jj_scanpos = xsp;
+ if (jj_3R_68()) jj_scanpos = xsp;
return false;
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
index 8eebd36..b02fd23 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
Binary files differ
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
index 6bb5f7a..8b9233d 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
Binary files differ