[jOOQ/jOOQ#11393] Add CockroachDB ENUM type support

- DDL support added
- Fixed code generation support
- Re-generated code
This commit is contained in:
Lukas Eder 2021-02-09 14:25:22 +01:00
parent 73eff4ca00
commit ee05f720d0
4 changed files with 14 additions and 5 deletions

View File

@ -1045,6 +1045,13 @@ public class PostgresDatabase extends AbstractDatabase implements ResultQueryDat

View File

@ -90,6 +90,7 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
when(COLUMNS.INTERVAL_TYPE.like(any(inline("%YEAR%"), inline("%MONTH%"))), inline("INTERVAL YEAR TO MONTH"))
.when(COLUMNS.INTERVAL_TYPE.like(any(inline("%DAY%"), inline("%HOUR%"), inline("%MINUTE%"), inline("%SECOND%"))), inline("INTERVAL DAY TO SECOND"))
.else_(COLUMNS.DATA_TYPE);
Field<String> udtSchema = COLUMNS.UDT_SCHEMA;
Field<Integer> precision = nvl(COLUMNS.DATETIME_PRECISION, COLUMNS.NUMERIC_PRECISION);
Field<String> serialColumnDefault = inline("nextval('%_seq'::regclass)");
@ -99,6 +100,7 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
Condition isSerial = lower(COLUMNS.COLUMN_DEFAULT).like(serialColumnDefault);
Condition isIdentity10 = COLUMNS.IS_IDENTITY.eq(inline("YES"));
@ -112,7 +114,7 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
for (Record record : create().select(
COLUMNS.COLUMN_NAME,
COLUMNS.ORDINAL_POSITION,
dataType,
dataType.as(COLUMNS.DATA_TYPE),
// [#8067] A more robust / sophisticated decoding might be available
nvl(
@ -123,7 +125,7 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
(when(isIdentity, inline("YES"))).as(COLUMNS.IS_IDENTITY),
COLUMNS.IS_NULLABLE,
(when(isIdentity, inline(null, String.class)).else_(COLUMNS.COLUMN_DEFAULT)).as(COLUMNS.COLUMN_DEFAULT),
coalesce(COLUMNS.DOMAIN_SCHEMA, COLUMNS.UDT_SCHEMA).as(COLUMNS.UDT_SCHEMA),
coalesce(COLUMNS.DOMAIN_SCHEMA, udtSchema).as(COLUMNS.UDT_SCHEMA),
coalesce(COLUMNS.DOMAIN_NAME, COLUMNS.UDT_NAME).as(COLUMNS.UDT_NAME),
PG_DESCRIPTION.DESCRIPTION)
.from(COLUMNS)
@ -154,7 +156,7 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
DataTypeDefinition type = new DefaultDataTypeDefinition(
getDatabase(),
typeSchema,
record.get(dataType),
record.get(COLUMNS.DATA_TYPE),
record.get(COLUMNS.CHARACTER_MAXIMUM_LENGTH),
record.get(COLUMNS.NUMERIC_PRECISION),
record.get(COLUMNS.NUMERIC_SCALE),

View File

@ -39,7 +39,7 @@ package org.jooq;
import org.jetbrains.annotations.*;
// ...
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.POSTGRES;

View File

@ -39,7 +39,7 @@ package org.jooq;
import org.jetbrains.annotations.*;
// ...
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.POSTGRES;