From 285b3a73321bffcf6bb02168f97397356b5336c2 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 24 Feb 2023 21:00:28 +0100 Subject: [PATCH] [jOOQ/jOOQ#14694] Fix regression of [jOOQ/jOOQ#8517] --- jOOQ/src/main/java/org/jooq/impl/AbstractRow.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java index 10a2ec586a..556477684e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRow.java @@ -43,6 +43,8 @@ import static org.jooq.Clause.FIELD_ROW; import static org.jooq.impl.Keywords.K_ROW; import static org.jooq.impl.Names.N_ROW; import static org.jooq.impl.QueryPartListView.wrap; +import static org.jooq.impl.Tools.extractVal; +import static org.jooq.impl.Tools.isVal; import static org.jooq.impl.Tools.nullSafe; import java.util.Collection; @@ -214,7 +216,7 @@ abstract class AbstractRow extends AbstractQueryPart implement findConversionCandidates: { for (int i = 0; i < size; i++) - if (fields.field(i) instanceof Val && !(row.field(i) instanceof Val)) + if (isVal(fields.field(i)) && !isVal(row.field(i))) break findConversionCandidates; return this; @@ -223,9 +225,10 @@ abstract class AbstractRow extends AbstractQueryPart implement Field[] result = new Field[size]; for (int i = 0; i < size; i++) { Field f = fields.field(i); + Val v; - if (f instanceof Val) - result[i] = ((Val) f).convertTo(row.field(i).getDataType()); + if ((v = extractVal(f)) != null) + result[i] = v.convertTo(row.field(i).getDataType()); else result[i] = f; }