[jOOQ/jOOQ#14736] PostgreSQL Numeric array type with precision/scale too large in generated code
This commit is contained in:
parent
d91bb0c31f
commit
43f42acd31
@ -46,6 +46,7 @@ import static org.jooq.impl.DSL.greatest;
|
||||
import static org.jooq.impl.DSL.inline;
|
||||
import static org.jooq.impl.DSL.lower;
|
||||
import static org.jooq.impl.DSL.name;
|
||||
import static org.jooq.impl.DSL.nullif;
|
||||
import static org.jooq.impl.DSL.nvl;
|
||||
import static org.jooq.impl.DSL.substring;
|
||||
import static org.jooq.impl.DSL.when;
|
||||
@ -104,7 +105,7 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
|
||||
.else_(COLUMNS.DATA_TYPE);
|
||||
Field<String> udtSchema = COLUMNS.UDT_SCHEMA;
|
||||
|
||||
// [#8067] [#11658] [#13919]
|
||||
// [#8067] [#11658] [#13919] [#14736]
|
||||
// A more robust / sophisticated decoding might be available via
|
||||
// - information_schema._pg_char_max_length
|
||||
// - information_schema._pg_numeric_precision
|
||||
@ -129,14 +130,14 @@ public class PostgresTableDefinition extends AbstractTableDefinition {
|
||||
)
|
||||
.when(
|
||||
COLUMNS.UDT_NAME.eq(inline("_numeric")),
|
||||
PG_ATTRIBUTE.ATTTYPMOD.sub(inline(4)).shr(inline(16)).bitAnd(inline(65535))
|
||||
nullif(PG_ATTRIBUTE.ATTTYPMOD, inline(-1)).sub(inline(4)).shr(inline(16)).bitAnd(inline(65535))
|
||||
)
|
||||
);
|
||||
Field<Integer> scale = nvl(
|
||||
COLUMNS.NUMERIC_SCALE,
|
||||
when(
|
||||
COLUMNS.UDT_NAME.eq(inline("_numeric")),
|
||||
PG_ATTRIBUTE.ATTTYPMOD.sub(inline(4)).bitAnd(inline(65535))
|
||||
nullif(PG_ATTRIBUTE.ATTTYPMOD, inline(-1)).sub(inline(4)).bitAnd(inline(65535))
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user