[jOOQ/jOOQ#15673] Domains aren't generated if they don't have a CHECK constraint associated with them, in HSQLDB
This commit is contained in:
parent
f5315bec35
commit
9fa41c4743
@ -40,6 +40,7 @@ package org.jooq.meta.hsqldb;
|
||||
|
||||
import static org.jooq.Records.mapping;
|
||||
import static org.jooq.impl.DSL.case_;
|
||||
import static org.jooq.impl.DSL.coalesce;
|
||||
import static org.jooq.impl.DSL.decode;
|
||||
import static org.jooq.impl.DSL.falseCondition;
|
||||
import static org.jooq.impl.DSL.field;
|
||||
@ -57,6 +58,7 @@ import static org.jooq.impl.SQLDataType.NUMERIC;
|
||||
import static org.jooq.impl.SQLDataType.VARCHAR;
|
||||
import static org.jooq.meta.hsqldb.information_schema.Tables.CHECK_CONSTRAINTS;
|
||||
import static org.jooq.meta.hsqldb.information_schema.Tables.COLUMNS;
|
||||
import static org.jooq.meta.hsqldb.information_schema.Tables.DOMAINS;
|
||||
import static org.jooq.meta.hsqldb.information_schema.Tables.DOMAIN_CONSTRAINTS;
|
||||
import static org.jooq.meta.hsqldb.information_schema.Tables.ELEMENT_TYPES;
|
||||
import static org.jooq.meta.hsqldb.information_schema.Tables.KEY_COLUMN_USAGE;
|
||||
@ -125,6 +127,7 @@ import org.jooq.meta.XMLSchemaCollectionDefinition;
|
||||
import org.jooq.meta.hsqldb.information_schema.tables.CheckConstraints;
|
||||
import org.jooq.meta.hsqldb.information_schema.tables.Columns;
|
||||
import org.jooq.meta.hsqldb.information_schema.tables.DomainConstraints;
|
||||
import org.jooq.meta.hsqldb.information_schema.tables.Domains;
|
||||
import org.jooq.meta.hsqldb.information_schema.tables.KeyColumnUsage;
|
||||
import org.jooq.meta.hsqldb.information_schema.tables.Triggers;
|
||||
import org.jooq.tools.JooqLogger;
|
||||
@ -574,38 +577,43 @@ public class HSQLDBDatabase extends AbstractDatabase implements ResultQueryDatab
|
||||
protected List<DomainDefinition> getDomains0() throws SQLException {
|
||||
List<DomainDefinition> result = new ArrayList<>();
|
||||
|
||||
Domains d = DOMAINS.as("d");
|
||||
DomainConstraints dc = DOMAIN_CONSTRAINTS.as("dc");
|
||||
|
||||
for (Record record : create()
|
||||
.select(
|
||||
dc.domains().DOMAIN_SCHEMA,
|
||||
dc.domains().DOMAIN_NAME,
|
||||
dc.domains().DATA_TYPE,
|
||||
dc.domains().CHARACTER_MAXIMUM_LENGTH,
|
||||
dc.domains().NUMERIC_PRECISION,
|
||||
dc.domains().NUMERIC_SCALE,
|
||||
dc.domains().DOMAIN_DEFAULT,
|
||||
d.DOMAIN_SCHEMA,
|
||||
d.DOMAIN_NAME,
|
||||
d.DATA_TYPE,
|
||||
d.CHARACTER_MAXIMUM_LENGTH,
|
||||
coalesce(d.NUMERIC_PRECISION, d.DATETIME_PRECISION).as(d.NUMERIC_PRECISION),
|
||||
d.NUMERIC_SCALE,
|
||||
d.DOMAIN_DEFAULT,
|
||||
dc.checkConstraints().CHECK_CLAUSE)
|
||||
.from(dc)
|
||||
.where(dc.domains().DOMAIN_SCHEMA.in(getInputSchemata()))
|
||||
.orderBy(dc.domains().DOMAIN_SCHEMA, dc.domains().DOMAIN_NAME)
|
||||
.from(d)
|
||||
.leftJoin(dc)
|
||||
.on(d.DOMAIN_CATALOG.eq(dc.DOMAIN_CATALOG))
|
||||
.and(d.DOMAIN_SCHEMA.eq(dc.DOMAIN_SCHEMA))
|
||||
.and(d.DOMAIN_NAME.eq(dc.DOMAIN_NAME))
|
||||
.where(d.DOMAIN_SCHEMA.in(getInputSchemata()))
|
||||
.orderBy(d.DOMAIN_SCHEMA, d.DOMAIN_NAME)
|
||||
) {
|
||||
SchemaDefinition schema = getSchema(record.get(dc.domains().DOMAIN_SCHEMA));
|
||||
SchemaDefinition schema = getSchema(record.get(d.DOMAIN_SCHEMA));
|
||||
|
||||
DataTypeDefinition baseType = new DefaultDataTypeDefinition(
|
||||
this,
|
||||
schema,
|
||||
record.get(dc.domains().DATA_TYPE),
|
||||
record.get(dc.domains().CHARACTER_MAXIMUM_LENGTH),
|
||||
record.get(dc.domains().NUMERIC_PRECISION),
|
||||
record.get(dc.domains().NUMERIC_SCALE),
|
||||
record.get(d.DATA_TYPE),
|
||||
record.get(d.CHARACTER_MAXIMUM_LENGTH),
|
||||
record.get(d.NUMERIC_PRECISION),
|
||||
record.get(d.NUMERIC_SCALE),
|
||||
true,
|
||||
record.get(dc.domains().DOMAIN_DEFAULT)
|
||||
record.get(d.DOMAIN_DEFAULT)
|
||||
);
|
||||
|
||||
DefaultDomainDefinition domain = new DefaultDomainDefinition(
|
||||
schema,
|
||||
record.get(dc.domains().DOMAIN_NAME),
|
||||
record.get(d.DOMAIN_NAME),
|
||||
baseType
|
||||
);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user