diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index 216093777e..6cc322049f 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -58,6 +58,7 @@ import static org.jooq.SQLDialect.MARIADB; // ... import static org.jooq.SQLDialect.MYSQL; // ... +// ... import static org.jooq.SQLDialect.POSTGRES; // ... // ... @@ -458,7 +459,7 @@ public interface DataType extends Named { * This feature is implemented in commercial distributions only. */ @NotNull - @Support({ POSTGRES }) + @Support({ DERBY, FIREBIRD, H2, POSTGRES }) DataType generatedAlwaysAs(T generatedAlwaysAsValue); /** @@ -469,7 +470,7 @@ public interface DataType extends Named { * This feature is implemented in commercial distributions only. */ @NotNull - @Support({ POSTGRES }) + @Support({ DERBY, FIREBIRD, H2, POSTGRES }) DataType generatedAlwaysAs(Field generatedAlwaysAsValue); /** diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java index 9458afb392..b0efc0d2c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataTypeX.java @@ -111,12 +111,12 @@ abstract class AbstractDataTypeX extends AbstractDataType { scale0(), length0(), nullability(), - readonly(), + g != null ? true : readonly(), g, collation(), characterSet(), identity(), - defaultValue() + g != null ? null : defaultValue() ); } @@ -176,7 +176,7 @@ abstract class AbstractDataTypeX extends AbstractDataType { length0(), nullability(), readonly(), - generatedAlwaysAs(), + d != null ? null : generatedAlwaysAs(), collation(), characterSet(), identity(), diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java index 912ea2531e..b0ed17971f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java @@ -160,7 +160,7 @@ implements private static final Set NO_SUPPORT_WITH_DATA = SQLDialect.supportedBy(H2, MARIADB, MYSQL, SQLITE); private static final Set NO_SUPPORT_CTAS_COLUMN_NAMES = SQLDialect.supportedBy(H2); private static final Set EMULATE_INDEXES_IN_BLOCK = SQLDialect.supportedBy(FIREBIRD, POSTGRES, YUGABYTE); - private static final Set EMULATE_SOME_ENUM_TYPES_AS_CHECK = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, HSQLDB, POSTGRES, SQLITE); + private static final Set EMULATE_SOME_ENUM_TYPES_AS_CHECK = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, HSQLDB, POSTGRES, SQLITE, YUGABYTE); private static final Set EMULATE_STORED_ENUM_TYPES_AS_CHECK = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, HSQLDB, SQLITE); private static final Set REQUIRES_WITH_DATA = SQLDialect.supportedBy(HSQLDB); private static final Set WRAP_SELECT_IN_PARENS = SQLDialect.supportedBy(HSQLDB); diff --git a/jOOQ/src/main/java/org/jooq/impl/Keywords.java b/jOOQ/src/main/java/org/jooq/impl/Keywords.java index 5e6a49c630..16c8d75791 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Keywords.java +++ b/jOOQ/src/main/java/org/jooq/impl/Keywords.java @@ -381,6 +381,7 @@ final class Keywords { static final Keyword K_START_WITH = keyword("start with"); static final Keyword K_STATEMENT = keyword("statement"); static final Keyword K_STEP = keyword("step"); + static final Keyword K_STORED = keyword("stored"); static final Keyword K_STORING = keyword("storing"); static final Keyword K_STRUCT = keyword("struct"); static final Keyword K_SWITCH = keyword("switch"); diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 97a31cffde..f80358b390 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -164,6 +164,7 @@ import static org.jooq.impl.Keywords.K_SERIAL4; import static org.jooq.impl.Keywords.K_SERIAL8; import static org.jooq.impl.Keywords.K_SQLSTATE; import static org.jooq.impl.Keywords.K_START_WITH; +import static org.jooq.impl.Keywords.K_STORED; import static org.jooq.impl.Keywords.K_THEN; import static org.jooq.impl.Keywords.K_THROW; import static org.jooq.impl.Keywords.K_WHEN; @@ -5143,6 +5144,11 @@ final class Tools { + + + + + } private static final Set REQUIRE_IDENTITY_AFTER_NULL = SQLDialect.supportedBy(H2, MARIADB, MYSQL);