diff --git a/jOOQ-test/src/test/java/org/jooq/test/_/testcases/InsertUpdateTests.java b/jOOQ-test/src/test/java/org/jooq/test/_/testcases/InsertUpdateTests.java index 1a175b9bb7..a948b6e8d4 100644 --- a/jOOQ-test/src/test/java/org/jooq/test/_/testcases/InsertUpdateTests.java +++ b/jOOQ-test/src/test/java/org/jooq/test/_/testcases/InsertUpdateTests.java @@ -41,6 +41,7 @@ package org.jooq.test._.testcases; import static java.util.Arrays.asList; +import static java.util.Collections.nCopies; // ... // ... import static org.jooq.SQLDialect.CUBRID; @@ -60,6 +61,7 @@ import static org.jooq.impl.DSL.castNull; import static org.jooq.impl.DSL.concat; import static org.jooq.impl.DSL.count; import static org.jooq.impl.DSL.decode; +import static org.jooq.impl.DSL.defaultValue; import static org.jooq.impl.DSL.falseCondition; import static org.jooq.impl.DSL.fieldByName; import static org.jooq.impl.DSL.inline; @@ -245,6 +247,43 @@ extends BaseTestDEFAULT keyword for use with INSERT, + * UPDATE, or MERGE statements. + *

+ * While the DEFAULT keyword works with all data types, you may + * still prefer to associate a {@link Field} type with your + * DEFAULT value. In that case, use + * {@link #defaultValue(Class)} or {@link #defaultValue(DataType)} instead. + */ + @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + public static Field defaultValue() { + return defaultValue(Object.class); + } + + /** + * Create a DEFAULT keyword for use with INSERT, + * UPDATE, or MERGE statements. + */ + @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + public static Field defaultValue(Class type) { + return defaultValue(getDataType(type)); + } + + /** + * Create a DEFAULT keyword for use with INSERT, + * UPDATE, or MERGE statements. + */ + @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + public static Field defaultValue(DataType type) { + return new SQLField(type, keyword("default")); + } + /** * Create a new SQL identifier using a qualified name. *