From 8d4a310d9989261cd8ca3efcaeb1a76c0e16e8e9 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 14 May 2025 11:30:14 +0200 Subject: [PATCH] [jOOQ/jOOQ#18456] CockroachDB 24 identity column sequences aren't recognised as system sequences by code generator or runtime Meta --- .../org/jooq/meta/postgres/PostgresDatabase.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java index 142b0fba37..c58e30eaa7 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/postgres/PostgresDatabase.java @@ -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 getSequences0() throws SQLException { List result = new ArrayList<>();