From 50458ba9b1833ac2bc24c5b6b2f1d93d1fcaf3ef Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 6 Mar 2023 11:40:39 +0100 Subject: [PATCH] [jOOQ/jOOQ#11015] Fix for Derby as well --- jOOQ/src/main/java/org/jooq/impl/Values.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Values.java b/jOOQ/src/main/java/org/jooq/impl/Values.java index 77707d7c6c..f3fd0db7dc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Values.java +++ b/jOOQ/src/main/java/org/jooq/impl/Values.java @@ -42,6 +42,7 @@ import static org.jooq.Clause.TABLE_VALUES; // ... // ... // ... +import static org.jooq.SQLDialect.DERBY; // ... import static org.jooq.SQLDialect.FIREBIRD; // ... @@ -105,10 +106,10 @@ implements QOM.Values { - static final Set NO_SUPPORT_VALUES = SQLDialect.supportedUntil(FIREBIRD, MARIADB); - static final Set REQUIRE_ROWTYPE_CAST = SQLDialect.supportedBy(FIREBIRD); - static final Set REQUIRE_ROWTYPE_CAST_ON_NULLS = SQLDialect.supportedBy(POSTGRES); - static final Set NO_SUPPORT_PARENTHESES = SQLDialect.supportedBy(); + static final Set NO_SUPPORT_VALUES = SQLDialect.supportedUntil(FIREBIRD, MARIADB); + static final Set REQUIRE_ROWTYPE_CAST = SQLDialect.supportedBy(DERBY, FIREBIRD); + static final Set REQUIRE_ROWTYPE_CAST_FIRST_ROW = SQLDialect.supportedBy(POSTGRES); + static final Set NO_SUPPORT_PARENTHESES = SQLDialect.supportedBy(); private final Row[] rows; private transient DataType[] types; @@ -293,7 +294,11 @@ implements // [#11015] NULL literals of known type should be cast in PostgreSQL in the first row - if (i == 0 && ctx.family() == POSTGRES) + if (i == 0 && REQUIRE_ROWTYPE_CAST_FIRST_ROW.contains(ctx.dialect())) + ctx.visit(castNullLiteralToRowType(ctx, rows[i])); + + // [#11015] Or in Derby in any other row, too + else if (REQUIRE_ROWTYPE_CAST.contains(ctx.dialect())) ctx.visit(castNullLiteralToRowType(ctx, rows[i])); else ctx.visit(rows[i]);