From c1f9680dc374bde7c6cc6ec17787cdfb860db0e0 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 7 Mar 2022 16:50:43 +0100 Subject: [PATCH] [jOOQ/jOOQ#13161] Fix inlining of user types --- .../bindings/AbstractPostgresBinding.java | 17 ++++++++++++++++- .../jooq/postgres/extensions/types/Hstore.java | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/bindings/AbstractPostgresBinding.java b/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/bindings/AbstractPostgresBinding.java index faa1c1ddb5..2cfac8f95b 100644 --- a/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/bindings/AbstractPostgresBinding.java +++ b/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/bindings/AbstractPostgresBinding.java @@ -37,6 +37,8 @@ */ package org.jooq.postgres.extensions.bindings; +import static org.jooq.impl.DSL.keyword; + import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; @@ -44,6 +46,7 @@ import org.jooq.BindingGetSQLInputContext; import org.jooq.BindingSQLContext; import org.jooq.BindingSetSQLOutputContext; import org.jooq.impl.AbstractBinding; +import org.jooq.impl.DSL; /** * A common base class for bindings in this module. @@ -65,7 +68,19 @@ public abstract class AbstractPostgresBinding extends AbstractBinding ctx) throws SQLException { - super.sqlInline(ctx); + if (ctx.value() instanceof Object[]) { + ctx.render().visit(keyword("ARRAY")).sql('['); + + String separator = ""; + for (Object value : ((Object[]) ctx.value())) { + ctx.render().sql(separator).visit(value == null ? keyword("NULL") : DSL.inline("" + value)); + separator = ", "; + } + + ctx.render().sql(']'); + } + else + super.sqlInline(ctx); String castType = castType(); if (castType != null) diff --git a/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/types/Hstore.java b/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/types/Hstore.java index 67d9ea2f2b..24cbde3925 100644 --- a/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/types/Hstore.java +++ b/jOOQ-postgres-extensions/src/main/java/org/jooq/postgres/extensions/types/Hstore.java @@ -105,6 +105,6 @@ public final class Hstore implements Serializable { @Override public String toString() { - return String.valueOf(data); + return org.postgresql.util.HStoreConverter.toString(data); } }