diff --git a/jOOQ-meta/src/main/java/org/jooq/util/firebird/FirebirdTableDefinition.java b/jOOQ-meta/src/main/java/org/jooq/util/firebird/FirebirdTableDefinition.java index e5415e2092..c8c9cbf9bc 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/firebird/FirebirdTableDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/firebird/FirebirdTableDefinition.java @@ -49,6 +49,7 @@ import java.util.ArrayList; import java.util.List; import org.jooq.Record; +import org.jooq.impl.DSL; import org.jooq.util.AbstractTableDefinition; import org.jooq.util.ColumnDefinition; import org.jooq.util.DefaultColumnDefinition; @@ -79,7 +80,7 @@ public class FirebirdTableDefinition extends AbstractTableDefinition { r.RDB$FIELD_NAME.trim(), r.RDB$DESCRIPTION, r.RDB$DEFAULT_VALUE, - r.RDB$NULL_FLAG.nvl((short) 0), + DSL.bitOr(r.RDB$NULL_FLAG.nvl((short) 0), f.RDB$NULL_FLAG.nvl((short) 0)).as(r.RDB$NULL_FLAG.getName()), r.RDB$DEFAULT_SOURCE, r.RDB$FIELD_POSITION, @@ -140,7 +141,7 @@ public class FirebirdTableDefinition extends AbstractTableDefinition { record.getValue("FIELD_LENGTH", short.class), record.getValue(f.RDB$FIELD_PRECISION), record.getValue("FIELD_SCALE", Integer.class), - record.getValue(r.RDB$NULL_FLAG.nvl((short) 0)) == 0, + record.getValue(r.RDB$NULL_FLAG) == 0, record.getValue(r.RDB$DEFAULT_SOURCE) != null ); diff --git a/jOOQ-test/src/main/resources/org/jooq/test/firebird/create.sql b/jOOQ-test/src/main/resources/org/jooq/test/firebird/create.sql index e179c05125..cc4e5a2fff 100644 --- a/jOOQ-test/src/main/resources/org/jooq/test/firebird/create.sql +++ b/jOOQ-test/src/main/resources/org/jooq/test/firebird/create.sql @@ -43,6 +43,10 @@ DROP TABLE t_3342/ DROP TABLE t_identity/ DROP TABLE t_identity_pk/ +DROP DOMAIN d_3382/ + +CREATE DOMAIN d_3382 AS INT NOT NULL/ + CREATE TABLE t_dates ( id int, @@ -228,9 +232,9 @@ CREATE TABLE x_unused ( / CREATE TABLE t_exotic_types ( - ID INT NOT NULL, + ID d_3382 NOT NULL, UU CHAR(36), - + CONSTRAINT pk_t_exotic_types PRIMARY KEY(ID) ); / @@ -283,7 +287,7 @@ CREATE TABLE x_test_case_85 ( CREATE TABLE x_test_case_2025 ( ref_id int NOT NULL, ref_name VARCHAR(10) NOT NULL, - + CONSTRAINT fk_x_test_case_2025_1 FOREIGN KEY(ref_id) REFERENCES x_test_case_85(ID), CONSTRAINT fk_x_test_case_2025_2 FOREIGN KEY(ref_id) REFERENCES x_test_case_71(ID), CONSTRAINT fk_x_test_case_2025_3 FOREIGN KEY(ref_id, ref_name) REFERENCES X_UNUSED(id, name)