Bug 445229: Oracleddlparser tests are failing against 12c
Review by: David McCann
Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt b/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
index 2035e3a..b7afcc5 100644
--- a/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
+++ b/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
@@ -316,6 +316,7 @@
| <K_DELETE: "DELETE">
| <K_DETERMINISTIC: "DETERMINISTIC">
| <K_DOUBLE: "DOUBLE">
+ | <K_EDITIONABLE: "EDITIONABLE">
| <K_ENABLE: "ENABLE">
| <K_FINAL: "FINAL">
| <K_FLOAT: "FLOAT">
@@ -335,6 +336,7 @@
| <K_NCHAR: "NCHAR">
| <K_NCLOB: "NCLOB">
| <K_NOCOPY: "NOCOPY">
+ | <K_NONEDITIONABLE: "NONEDITIONABLE">
| <K_NUMBER: "NUMBER">
| <K_NUMERIC: "NUMERIC">
| <K_NVARCHAR2: "NVARCHAR2">
@@ -377,6 +379,7 @@
| <K_TIME: "TIME">
| <K_TIMESTAMP: "TIMESTAMP">
| <K_UROWID:"UROWID">
+ | <K_USING:"USING">
| <K_VARCHAR2: "VARCHAR2">
| <K_VARCHAR: "VARCHAR">
| <K_VARRAY: "VARRAY">
@@ -415,6 +418,7 @@
| t=<K_DELETE>
| t=<K_DETERMINISTIC>
| t=<K_DOUBLE>
+ | t=<K_EDITIONABLE>
| t=<K_ENABLE>
| t=<K_FINAL>
| t=<K_FLOAT>
@@ -434,6 +438,7 @@
| t=<K_NCHAR>
| t=<K_NCLOB>
| t=<K_NOCOPY>
+ | t=<K_NONEDITIONABLE>
| t=<K_NUMBER>
| t=<K_NUMERIC>
| t=<K_NVARCHAR2>
@@ -476,6 +481,7 @@
| t=<K_TIME>
| t=<K_TIMESTAMP>
| t=<K_UROWID>
+ | t=<K_USING>
| t=<K_VARCHAR2>
| t=<K_VARCHAR>
| t=<K_VARRAY>
@@ -511,7 +517,7 @@
String packageName = null;
}
{
- <R_CREATE> [ orReplace() ] <K_PACKAGE>
+ <R_CREATE> [ orReplace() ] [ <K_EDITIONABLE> | <K_NONEDITIONABLE> ] <K_PACKAGE>
dottedName=OracleObjectNamePossiblyDotted()
{
packageName = dottedName;
@@ -541,7 +547,7 @@
String schema = null;
String procedureName = null;}
{
- <R_CREATE> [ orReplace() ] <R_PROCEDURE>
+ <R_CREATE> [ orReplace() ] [ <K_EDITIONABLE> | <K_NONEDITIONABLE> ] <R_PROCEDURE>
dottedName=OracleObjectNamePossiblyDotted()
{
procedureName = dottedName;
@@ -571,7 +577,7 @@
String functionName = null;
ArgumentType returnType = null;}
{
- <R_CREATE> [ orReplace() ] <R_FUNCTION>
+ <R_CREATE> [ orReplace() ] [ <K_EDITIONABLE> | <K_NONEDITIONABLE> ] <R_FUNCTION>
dottedName=OracleObjectNamePossiblyDotted()
{
functionName = dottedName;
@@ -642,7 +648,7 @@
boolean nestedTable = false;
}
{
- <R_CREATE> [ orReplace() ] <R_TYPE>
+ <R_CREATE> [ orReplace() ] [ <K_EDITIONABLE> | <K_NONEDITIONABLE> ] <R_TYPE>
dottedName=OracleObjectNamePossiblyDotted()
{
typeName = dottedName;
@@ -739,7 +745,7 @@
<R_PRIMARY> <K_KEY> <O_OPENPAREN> pkList((TableType)enclosingType) <O_CLOSEPAREN>
| <R_CHECK> <O_OPENPAREN> skipToClosingParen() <O_CLOSEPAREN>
| <R_UNIQUE> <O_OPENPAREN> uniqList() <O_CLOSEPAREN>
- ) [ <K_ENABLE> ]
+ ) [ <K_USING> <R_INDEX> ] [ <K_ENABLE> ]
}
DatabaseType columnTypeSpec(CompositeDatabaseType enclosingType):
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java
index b008997..adedd01 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/TestHelper.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -21,7 +21,8 @@
public class TestHelper {
- public static final String DATABASE_DRIVER = "oracle.jdbc.OracleDriver";
+ public static final String DATABASE_DRIVER_KEY = "db.driver";
+ public static final String DEFAULT_DATABASE_DRIVER = "oracle.jdbc.OracleDriver";
public static final String DATABASE_USERNAME_KEY = "db.user";
public static final String DEFAULT_DATABASE_USERNAME = "scott";
public static final String DATABASE_PASSWORD_KEY = "db.pwd";
@@ -39,7 +40,8 @@
String username = System.getProperty(DATABASE_USERNAME_KEY, DEFAULT_DATABASE_USERNAME);
String password = System.getProperty(DATABASE_PASSWORD_KEY, DEFAULT_DATABASE_PASSWORD);
String url = System.getProperty(DATABASE_URL_KEY, DEFAULT_DATABASE_URL);
- Class.forName(DATABASE_DRIVER);
+ String dbDriver = System.getProperty(DATABASE_DRIVER_KEY, DEFAULT_DATABASE_DRIVER);
+ Class.forName(dbDriver);
return DriverManager.getConnection(url, username, password);
}
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java
index cbed5bc..8d5c49a 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Oracle. All rights reserved.
+ * Copyright (c) 2012, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -129,11 +129,16 @@
public void anchoredTypesTest1() {
boolean worked = true;
PLSQLPackageType plsqlPackageType = null;
+ String msg = null;
try {
plsqlPackageType = dtBuilder.buildPackages(conn, "", ANCHORED_TYPES_TEST4_PACKAGE).get(0);
}
catch (Exception e) {
worked = false;
+ msg = e.getMessage();
+ }
+ if (!worked) {
+ fail(msg);
}
assertTrue(ANCHORED_TYPES_TEST4_PACKAGE + " should parse", worked);
PLSQLType plsqlType1 = plsqlPackageType.getTypes().get(0);