[jOOQ/jOOQ#18456] CockroachDB 24 identity column sequences aren't

recognised as system sequences by code generator or runtime Meta
This commit is contained in:
Lukas Eder 2025-05-14 11:30:14 +02:00
parent bdc0d36e31
commit 8d4a310d99

View File

@ -793,12 +793,7 @@ public class PostgresDatabase extends AbstractDatabase implements ResultQueryDat
? row(SEQUENCES.SEQUENCE_SCHEMA, SEQUENCES.SEQUENCE_NAME).notIn(
select(COLUMNS.TABLE_SCHEMA, COLUMNS.TABLE_NAME.concat(inline("_")).concat(COLUMNS.COLUMN_NAME).concat(inline("_seq")))
.from(COLUMNS)
.where(COLUMNS.COLUMN_DEFAULT.eq(
inline("nextval('").concat(COLUMNS.TABLE_NAME.concat(inline("_")).concat(COLUMNS.COLUMN_NAME)).concat(inline("_seq'::regclass)"))
))
.or(COLUMNS.COLUMN_DEFAULT.eq(
inline("nextval('").concat(COLUMNS.TABLE_SCHEMA.concat(inline(".")).concat(COLUMNS.TABLE_NAME).concat(inline("_")).concat(COLUMNS.COLUMN_NAME)).concat(inline("_seq'::regclass)"))
))
.where(columnDefaultFromIdentityExpression())
)
: noCondition())
.unionAll(is10() && getIncludeSystemSequences()
@ -831,6 +826,15 @@ public class PostgresDatabase extends AbstractDatabase implements ResultQueryDat
.orderBy(2, 3);
}
protected Condition columnDefaultFromIdentityExpression() {
return COLUMNS.COLUMN_DEFAULT.eq(
inline("nextval('").concat(COLUMNS.TABLE_NAME.concat(inline("_")).concat(COLUMNS.COLUMN_NAME)).concat(inline("_seq'::regclass)"))
)
.or(COLUMNS.COLUMN_DEFAULT.eq(
inline("nextval('").concat(COLUMNS.TABLE_SCHEMA.concat(inline(".")).concat(COLUMNS.TABLE_NAME).concat(inline("_")).concat(COLUMNS.COLUMN_NAME)).concat(inline("_seq'::regclass)"))
));
}
@Override
protected List<SequenceDefinition> getSequences0() throws SQLException {
List<SequenceDefinition> result = new ArrayList<>();