[openjpa] 01/01: [OPENJPA-2893] latest H2 more or less works
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
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", +