From a2804f15bb30c449d7e54f6c24cfea6f0d4aeb21 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 28 Mar 2024 11:54:26 +0100 Subject: [PATCH] [jOOQ/jOOQ#15732] Avoid duplication when reading MULTISET content The previous implementation relied on RecordUnmapper, which works, but doesn't set the changed() flags to false when records are nested! --- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index d6e5dba2dc..1cb95f3cbe 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -4055,14 +4055,7 @@ public class DefaultBinding implements Binding { if (object == null) return null; - return newRecord(true, - (Class) dataType.getRecordType(), - (AbstractRow) dataType.getRow(), - ctx.configuration() - ).operate(r -> { - r.from(object); - return r; - }); + return readMultiset(ctx, dataType); } default: @@ -4104,6 +4097,7 @@ public class DefaultBinding implements Binding { DefaultBindingGetResultSetContext c = new DefaultBindingGetResultSetContext<>(ctx.executeContext(), ctx.resultSet(), ctx.index()); r.field(0).getBinding().get((BindingGetResultSetContext) c); r.fromArray(c.value()); + r.changed(false); return r; })); } @@ -4445,6 +4439,7 @@ public class DefaultBinding implements Binding { result.add(newRecord(true, recordType, row, ctx.configuration()).operate(r -> { r.from(asList(s)); + r.changed(false); return r; }));