From b8fcf22fb9ae9c8d1ac0ae698f5f03011caabc05 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 18 May 2022 12:36:00 +0200 Subject: [PATCH] [jOOQ/jOOQ#7912] Add InsertOnDuplicateSetStep::setAllToExcluded to auto-set all insert column list columns to their EXCLUDED value --- .../main/java/org/jooq/InsertOnDuplicateSetStep.java | 10 ++++++++++ jOOQ/src/main/java/org/jooq/impl/InsertImpl.java | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java index 07378d2a37..d9c9a3615f 100644 --- a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java +++ b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java @@ -63,6 +63,8 @@ import static org.jooq.SQLDialect.YUGABYTEDB; import java.util.Map; +import org.jooq.impl.DSL; + import org.jetbrains.annotations.NotNull; /** @@ -172,4 +174,12 @@ public interface InsertOnDuplicateSetStep { @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) InsertOnDuplicateSetMoreStep set(Record record); + /** + * Sets all columns from the insert column list to + * {@link DSL#excluded(Field)}. + */ + @NotNull @CheckReturnValue + @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) + InsertOnDuplicateSetMoreStep setAllToExcluded(); + } diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java index c114a1cfa4..85749710c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java @@ -38,6 +38,7 @@ package org.jooq.impl; import static org.jooq.impl.DSL.condition; +import static org.jooq.impl.DSL.excluded; import static org.jooq.impl.DSL.exists; import static org.jooq.impl.DSL.not; import static org.jooq.impl.DSL.notExists; @@ -139,6 +140,8 @@ import org.jooq.SelectFieldOrAsterisk; import org.jooq.Table; import org.jooq.UniqueKey; +import org.jetbrains.annotations.NotNull; + /** * @author Lukas Eder */ @@ -1232,6 +1235,14 @@ final class InsertImpl field : fields) + set(field, (Field) excluded(field)); + + return this; + } + @Override public final InsertImpl and(Condition condition) { getDelegate().addConditions(condition);