From fc79af23234bb06a2d2c2acdfeac2e4ec89fab28 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 24 Oct 2024 11:44:21 +0200 Subject: [PATCH] [jOOQ/jOOQ#17495] Add useParsingConnection property to LiquibaseDatabase and JPADatabase This includes: - [jOOQ/jOOQ#17496] Implement ParsingStatement::getWarnings and and ParsingStatement::clearWarnings --- .../liquibase/LiquibaseDatabase.java | 1 + .../AbstractInterpretingDatabase.java | 10 ++++++++++ .../java/org/jooq/impl/ParsingStatement.java | 20 +++++++++---------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/jOOQ-meta-extensions-liquibase/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java b/jOOQ-meta-extensions-liquibase/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java index a1a07d1020..1fadf8f969 100644 --- a/jOOQ-meta-extensions-liquibase/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java +++ b/jOOQ-meta-extensions-liquibase/src/main/java/org/jooq/meta/extensions/liquibase/LiquibaseDatabase.java @@ -50,6 +50,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import org.jooq.impl.DSL; import org.jooq.meta.TableDefinition; import org.jooq.meta.extensions.AbstractInterpretingDatabase; import org.jooq.tools.Convert; diff --git a/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/AbstractInterpretingDatabase.java b/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/AbstractInterpretingDatabase.java index 3ed48932fa..e1829ddeb6 100644 --- a/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/AbstractInterpretingDatabase.java +++ b/jOOQ-meta-extensions/src/main/java/org/jooq/meta/extensions/AbstractInterpretingDatabase.java @@ -45,6 +45,9 @@ import java.util.Properties; import java.util.UUID; import org.jooq.DSLContext; +import org.jooq.SQLDialect; +import org.jooq.conf.ParseUnknownFunctions; +import org.jooq.conf.Settings; import org.jooq.exception.DataAccessException; import org.jooq.impl.DSL; import org.jooq.meta.SchemaDefinition; @@ -90,6 +93,7 @@ public abstract class AbstractInterpretingDatabase extends H2Database { if (connection == null) { try { String unqualifiedSchema = getProperties().getProperty("unqualifiedSchema", "none").toLowerCase(); + publicIsDefault = "none".equals(unqualifiedSchema); Properties info = new Properties(); @@ -97,6 +101,12 @@ public abstract class AbstractInterpretingDatabase extends H2Database { info.put("password", ""); connection = new org.h2.Driver().connect("jdbc:h2:mem:jooq-meta-extensions-" + UUID.randomUUID(), info); + if (Boolean.parseBoolean(getProperties().getProperty("useParsingConnection"))) + connection = DSL + .using(connection, SQLDialect.H2, new Settings() + .withParseUnknownFunctions(ParseUnknownFunctions.IGNORE)) + .parsingConnection(); + export(); } catch (Exception e) { diff --git a/jOOQ/src/main/java/org/jooq/impl/ParsingStatement.java b/jOOQ/src/main/java/org/jooq/impl/ParsingStatement.java index 58d90c1176..72398d5fa9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParsingStatement.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParsingStatement.java @@ -261,6 +261,16 @@ final class ParsingStatement implements CallableStatement { return statement().getResultSetHoldability(); } + @Override + public final SQLWarning getWarnings() throws SQLException { + return statement().getWarnings(); + } + + @Override + public final void clearWarnings() throws SQLException { + statement().clearWarnings(); + } + // ------------------------------------------------------------------------- // XXX: Static statement execution // ------------------------------------------------------------------------- @@ -1434,16 +1444,6 @@ final class ParsingStatement implements CallableStatement { throw new SQLFeatureNotSupportedException(); } - @Override - public final SQLWarning getWarnings() throws SQLException { - throw new SQLFeatureNotSupportedException(); - } - - @Override - public final void clearWarnings() throws SQLException { - throw new SQLFeatureNotSupportedException(); - } - @Override public final void closeOnCompletion() throws SQLException { throw new SQLFeatureNotSupportedException();