Skip to content

Fix Citus CI: upgrade to PostgreSQL 17 + Citus 13.0#1301

Merged
mrigger merged 3 commits intomainfrom
fix-citus-ci
Apr 14, 2026
Merged

Fix Citus CI: upgrade to PostgreSQL 17 + Citus 13.0#1301
mrigger merged 3 commits intomainfrom
fix-citus-ci

Conversation

@mrigger
Copy link
Copy Markdown
Contributor

@mrigger mrigger commented Mar 26, 2026

ubuntu-latest is now Ubuntu 24.04 (Noble), which has no Citus packages. Patch citusdata_community.list to use jammy after the curl installer creates it, then re-run apt-get update before installing.

PostgreSQL 17 + Citus 13.0 system tables expose columns with OID alias
types (regnamespace, regrole, regtype, regproc, etc.) that were not
handled by getColumnType(), causing an AssertionError. Map them to TEXT
since they are textually representable, like the existing regclass entry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…r Citus 13.0

- CitusSchema.fromConnection now skips all tables/views starting with
  "citus_" (not just "citus_tables") to handle the citus_schemas view
  added in Citus 12.0, which was causing unexpected SQL errors when
  SQLancer tried to DELETE/ALTER it after the regnamespace fix exposed it.
- Update columnar table index error string from the old (incorrect)
  "indexes not supported for columnar tables" to the actual Citus error
  "unsupported access method for the index on columnar table", and add
  "BRIN indexes on columnar tables are not supported".
- Add "alter table command is currently unsupported" for the Citus
  restriction on certain ALTER TABLE operations (e.g., multi-subcommand
  ALTERs, type changes) on distributed tables.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Citus 13.0 raises "could not open relation with OID 0" when operating on
columnar temporary tables (USING columnar ON COMMIT DROP) during VACUUM,
DISCARD TEMPORARY, and some INSERT operations where Citus cannot resolve
the relation OID. Collect the error into getColumnarOidErrors() and
wire it through Citus-specific generator wrappers:

- CitusVacuumGenerator wraps PostgresVacuumGenerator so VACUUM accepts
  the OID 0 error (the VACUUM action previously used the Postgres
  generator directly).
- CitusDiscardGenerator does the same for DISCARD.
- INSERT already routes through CitusInsertGenerator, which picks up
  the error via addCitusErrors() in getCitusErrors().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mrigger mrigger merged commit 3cc88a0 into main Apr 14, 2026
18 of 26 checks passed
@mrigger mrigger deleted the fix-citus-ci branch April 14, 2026 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant