[openjpa] 01/01: [OPENJPA-2893] latest H2 more or less works

2021-12-13 Thread solomax
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch OPENJPA-2893-h2-2.x
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 6bb73697f24783d1e0550b4941699b494fbbe7ae
Author: Maxim Solodovnik 
AuthorDate: Mon Dec 13 22:04:20 2021 +0700

[OPENJPA-2893] latest H2 more or less works
---
 .../openjpa/jdbc/sql/DBDictionaryFactory.java  |   5 +-
 .../org/apache/openjpa/jdbc/sql/H2Dictionary.java  | 133 -
 .../openjpa/jdbc/sql/DBDictionaryFactoryTest.java  |  38 +++---
 .../criteria/results/TestTypedResults.java |   4 +-
 .../persistence/jdbc/auto/TestAutoIncrement.java   |   4 +-
 .../jpql/literals/TestLiteralInSQL.java|   3 +-
 .../persistence/query/TestResultSetMapping.java|   1 -
 pom.xml|  29 -
 8 files changed, 186 insertions(+), 31 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
index cd24841..6816b81 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
@@ -275,10 +275,9 @@ public class DBDictionaryFactory {
 }
 // test h2 in a special way, because there's a decent chance the string
 // h2 could appear in the URL of another database
-if (prod.indexOf("jdbc:h2:") != -1)
-return dbdictionaryPlugin.unalias("h2");
-if (prod.indexOf("h2 database") != -1)
+if (prod.indexOf("jdbc:h2:") != -1 || prod.indexOf("h2 database") != 
-1) {
 return dbdictionaryPlugin.unalias("h2");
+}
 // test db2 last, because there's a decent chance this string could
 // appear in the URL of another database (like if the db is named
 // "testdb2" or something)
diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java
index ae2ac0b..6030999 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java
@@ -29,6 +29,7 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.OffsetDateTime;
 import java.util.Arrays;
+import java.util.List;
 import java.util.Locale;
 
 import org.apache.openjpa.jdbc.identifier.DBIdentifier;
@@ -47,6 +48,109 @@ import org.apache.openjpa.util.StoreException;
  * @since 0.9.7
  */
 public class H2Dictionary extends DBDictionary {
+private final static List V2_KEYWORDS = Arrays.asList(
+"ALL",
+"AND",
+"ANY",
+"ARRAY",
+"AS",
+"ASYMMETRIC",
+"AUTHORIZATION",
+"BETWEEN",
+"BOTH",
+"CASE",
+"CAST",
+"CHECK",
+"CONSTRAINT",
+"CROSS",
+"CURRENT_CATALOG",
+"CURRENT_DATE",
+"CURRENT_PATH",
+"CURRENT_ROLE",
+"CURRENT_SCHEMA",
+"CURRENT_TIME",
+"CURRENT_TIMESTAMP",
+"CURRENT_USER",
+"DAY",
+"DEFAULT",
+"DISTINCT",
+"ELSE",
+"END",
+"EXCEPT",
+"EXISTS",
+"FALSE",
+"FETCH",
+"FILTER",
+"FOR",
+"FOREIGN",
+"FROM",
+"FULL",
+"GROUP",
+"GROUPS",
+"HAVING",
+"HOUR",
+"IF",
+"ILIKE",
+"IN",
+"INNER",
+"INTERSECT",
+"INTERSECTS",
+"INTERVAL",
+"IS",
+"JOIN",
+"KEY",
+"LEADING",
+"LEFT",
+"LIKE",
+"LIMIT",
+"LOCALTIME",
+"LOCALTIMESTAMP",
+"MINUS",
+"MINUTE",
+"MONTH",
+"NATURAL",
+"NOT",
+"NULL",
+"OFFSET",
+"ON",
+"OR",
+"ORDER",
+"OVER",
+"PARTITION",
+"PRIMARY",
+"QUALIFY",
+"RANGE",
+"REGEXP",
+"RIGHT",
+"ROW",
+"ROWNUM",
+"ROWS",
+"SECOND",
+"SELECT",
+"SESSION_USER",
+"SET",
+"SOME",
+"SYMMETRIC",
+"SYSTEM_USER",
+"TABLE",
+"TO",
+"TOP",
+"TRAILING",
+"TRUE",
+"UESCAPE",
+"UNION",
+"UNIQUE",
+"UNKNOWN",
+"USER",
+"USING",
+"VALUE",
+  

[openjpa] 01/01: [OPENJPA-2893] latest H2 more or less works

2021-12-13 Thread solomax
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch OPENJPA-2893-h2-2.0
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit ede7975642e8d22cafc6c7b972b185c41a6b1df6
Author: Maxim Solodovnik 
AuthorDate: Mon Dec 13 22:04:20 2021 +0700

[OPENJPA-2893] latest H2 more or less works
---
 .../openjpa/jdbc/sql/DBDictionaryFactory.java  |   5 +-
 .../org/apache/openjpa/jdbc/sql/H2Dictionary.java  | 133 -
 .../openjpa/jdbc/sql/DBDictionaryFactoryTest.java  |  38 +++---
 .../criteria/results/TestTypedResults.java |   4 +-
 .../persistence/jdbc/auto/TestAutoIncrement.java   |   4 +-
 .../jpql/literals/TestLiteralInSQL.java|   3 +-
 .../persistence/query/TestResultSetMapping.java|   1 -
 pom.xml|  29 -
 8 files changed, 186 insertions(+), 31 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
index cd24841..6816b81 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactory.java
@@ -275,10 +275,9 @@ public class DBDictionaryFactory {
 }
 // test h2 in a special way, because there's a decent chance the string
 // h2 could appear in the URL of another database
-if (prod.indexOf("jdbc:h2:") != -1)
-return dbdictionaryPlugin.unalias("h2");
-if (prod.indexOf("h2 database") != -1)
+if (prod.indexOf("jdbc:h2:") != -1 || prod.indexOf("h2 database") != 
-1) {
 return dbdictionaryPlugin.unalias("h2");
+}
 // test db2 last, because there's a decent chance this string could
 // appear in the URL of another database (like if the db is named
 // "testdb2" or something)
diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java
index ae2ac0b..6030999 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/H2Dictionary.java
@@ -29,6 +29,7 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.OffsetDateTime;
 import java.util.Arrays;
+import java.util.List;
 import java.util.Locale;
 
 import org.apache.openjpa.jdbc.identifier.DBIdentifier;
@@ -47,6 +48,109 @@ import org.apache.openjpa.util.StoreException;
  * @since 0.9.7
  */
 public class H2Dictionary extends DBDictionary {
+private final static List V2_KEYWORDS = Arrays.asList(
+"ALL",
+"AND",
+"ANY",
+"ARRAY",
+"AS",
+"ASYMMETRIC",
+"AUTHORIZATION",
+"BETWEEN",
+"BOTH",
+"CASE",
+"CAST",
+"CHECK",
+"CONSTRAINT",
+"CROSS",
+"CURRENT_CATALOG",
+"CURRENT_DATE",
+"CURRENT_PATH",
+"CURRENT_ROLE",
+"CURRENT_SCHEMA",
+"CURRENT_TIME",
+"CURRENT_TIMESTAMP",
+"CURRENT_USER",
+"DAY",
+"DEFAULT",
+"DISTINCT",
+"ELSE",
+"END",
+"EXCEPT",
+"EXISTS",
+"FALSE",
+"FETCH",
+"FILTER",
+"FOR",
+"FOREIGN",
+"FROM",
+"FULL",
+"GROUP",
+"GROUPS",
+"HAVING",
+"HOUR",
+"IF",
+"ILIKE",
+"IN",
+"INNER",
+"INTERSECT",
+"INTERSECTS",
+"INTERVAL",
+"IS",
+"JOIN",
+"KEY",
+"LEADING",
+"LEFT",
+"LIKE",
+"LIMIT",
+"LOCALTIME",
+"LOCALTIMESTAMP",
+"MINUS",
+"MINUTE",
+"MONTH",
+"NATURAL",
+"NOT",
+"NULL",
+"OFFSET",
+"ON",
+"OR",
+"ORDER",
+"OVER",
+"PARTITION",
+"PRIMARY",
+"QUALIFY",
+"RANGE",
+"REGEXP",
+"RIGHT",
+"ROW",
+"ROWNUM",
+"ROWS",
+"SECOND",
+"SELECT",
+"SESSION_USER",
+"SET",
+"SOME",
+"SYMMETRIC",
+"SYSTEM_USER",
+"TABLE",
+"TO",
+"TOP",
+"TRAILING",
+"TRUE",
+"UESCAPE",
+"UNION",
+"UNIQUE",
+"UNKNOWN",
+"USER",
+"USING",
+"VALUE",
+