From d6ab3d090d16a135845c0da03f09e5be85178115 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 25 Mar 2024 19:41:49 +0100 Subject: [PATCH] [jOOQ/jOOQ#16510] Avoid PostgreSQL empty array cast when explicit cast is given --- jOOQ/src/main/java/org/jooq/impl/Array.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Array.java b/jOOQ/src/main/java/org/jooq/impl/Array.java index 697d1ee008..8e33ae504e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Array.java +++ b/jOOQ/src/main/java/org/jooq/impl/Array.java @@ -58,6 +58,7 @@ import org.jooq.DataType; import org.jooq.Field; import org.jooq.QueryPart; import org.jooq.Record; +import org.jooq.RenderContext.CastMode; // ... import org.jooq.SQLDialect; // ... @@ -93,6 +94,11 @@ implements return false; } + @Override + public boolean generatesCast() { + return true; + } + @SuppressWarnings({ "rawtypes", "unchecked" }) private static DataType type(Collection> fields) { if (fields == null || fields.isEmpty()) @@ -126,7 +132,7 @@ implements else c.visit(K_INT).sql("[]"); }, - () -> fields.fields.length == 0 && REQUIRES_CAST.contains(ctx.dialect()) + () -> fields.fields.length == 0 && REQUIRES_CAST.contains(ctx.dialect()) && ctx.castMode() != CastMode.NEVER ); break;