diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 477e609fe8..86bcaeba3e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -1017,8 +1017,9 @@ abstract class AbstractRecord extends AbstractStore implements Record { for (int i = 0; i < s && i < t; i++) { int j = indexMapping == null ? i : indexMapping[i]; + // [#12697] Don't re-apply data type conversion, assuming it already happened if (source.field(j) != null && source.changed(j)) - Tools.setValue(this, field(j), j, source, j); + set((Field) field(j), j, source.get(j)); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractResult.java b/jOOQ/src/main/java/org/jooq/impl/AbstractResult.java index 6ee909d9d6..45b36099b8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractResult.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractResult.java @@ -1361,7 +1361,7 @@ abstract class AbstractResult extends AbstractFormattable impl } else if (value instanceof Record) { Record r = (Record) value; formatted += Arrays - .stream(r.valuesRow().fields()) + .stream(r.intoArray()) .map(f -> format0(f, false, visual)) .collect(joining(", ", "(", ")")); }