diff --git a/jOOQ/src/main/java/org/jooq/conf/SettingsTools.java b/jOOQ/src/main/java/org/jooq/conf/SettingsTools.java index 362fc001fc..84bc360e6c 100644 --- a/jOOQ/src/main/java/org/jooq/conf/SettingsTools.java +++ b/jOOQ/src/main/java/org/jooq/conf/SettingsTools.java @@ -475,7 +475,15 @@ public final class SettingsTools { */ public static final boolean returnAnyOnUpdatableRecord(Settings settings) { return !FALSE.equals(settings.isReturnIdentityOnUpdatableRecord()) - || TRUE.equals(settings.isReturnAllOnUpdatableRecord()) + || returnAnyNonIdentityOnUpdatableRecord(settings); + } + + /** + * Whether any non-identity value should be returned on an + * {@link UpdatableRecord} operation. + */ + public static final boolean returnAnyNonIdentityOnUpdatableRecord(Settings settings) { + return TRUE.equals(settings.isReturnAllOnUpdatableRecord()) || TRUE.equals(settings.isReturnDefaultOnUpdatableRecord()) || TRUE.equals(settings.isReturnComputedOnUpdatableRecord()); } diff --git a/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java index d6fcc747cb..93c97de95e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java @@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.MARIADB; import static org.jooq.SQLDialect.MYSQL; // ... // ... +import static org.jooq.conf.SettingsTools.returnAnyNonIdentityOnUpdatableRecord; import static org.jooq.conf.SettingsTools.returnAnyOnUpdatableRecord; import static org.jooq.conf.SettingsTools.updatablePrimaryKeys; import static org.jooq.conf.WriteIfReadonly.IGNORE; @@ -227,7 +228,7 @@ public class TableRecordImpl> extends AbstractQualified // [#1859] In some databases, not all fields can be fetched via getGeneratedKeys() Configuration c = configuration(); - if (returnAnyOnUpdatableRecord(c.settings()) + if (returnAnyNonIdentityOnUpdatableRecord(c.settings()) // [#11620] Refresh only if the RETURNING clause didn't run // E.g. in MySQL when there was no identity column