diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 5991814a91..7542f51cea 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -857,14 +857,11 @@ public class DefaultBinding implements Binding { SQLDialect dialect = ctx.dialect(); T value = converter.to(ctx.value()); - if (log.isTraceEnabled()) { - if (value != null && value.getClass().isArray() && value.getClass() != byte[].class) { + if (log.isTraceEnabled()) + if (value != null && value.getClass().isArray() && value.getClass() != byte[].class) log.trace("Binding variable " + ctx.index(), Arrays.asList((Object[]) value) + " (" + type + ")"); - } - else { + else log.trace("Binding variable " + ctx.index(), value + " (" + type + ")"); - } - } // Setting null onto a prepared statement is subtly different for every // SQL dialect. See the following section for details @@ -2182,6 +2179,9 @@ public class DefaultBinding implements Binding { else if (Record.class.isAssignableFrom(type)) { return (T) pgNewRecord(type, null, string); } + else if (type == Object.class) { + return (T) string; + } else { Converter c = (Converter) converter; return c.from(pgFromString(c.fromType(), string)); diff --git a/jOOQ/src/main/java/org/jooq/util/postgres/PostgresUtils.java b/jOOQ/src/main/java/org/jooq/util/postgres/PostgresUtils.java index d80fce1796..5bd2b5154a 100644 --- a/jOOQ/src/main/java/org/jooq/util/postgres/PostgresUtils.java +++ b/jOOQ/src/main/java/org/jooq/util/postgres/PostgresUtils.java @@ -52,6 +52,7 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.List; +import org.jooq.Converter; import org.jooq.Record; import org.jooq.exception.DataTypeException; import org.jooq.tools.reflect.Reflect; @@ -465,7 +466,9 @@ public class PostgresUtils { sb.append("("); String separator = ""; - for (Object a : r.intoArray()) { + for (int i = 0; i < r.size(); i++) { + @SuppressWarnings({ "unchecked", "rawtypes" }) + Object a = ((Converter) r.field(i).getConverter()).to(r.get(i)); sb.append(separator); // [#753] null must not be set as a literal