Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PG17.1 Support - SQL changes, new features #7708

Open
27 of 31 tasks
naisila opened this issue Oct 16, 2024 · 0 comments
Open
27 of 31 tasks

PG17.1 Support - SQL changes, new features #7708

naisila opened this issue Oct 16, 2024 · 0 comments
Assignees

Comments

@naisila
Copy link
Member

naisila commented Oct 16, 2024

Introduction

This issue tracks how Citus will handle PostgreSQL 17's SQL changes and new features. Resources that we used are the following:

Note 1: We should finish "Features to support" and "Meaningful error messages" first, then the ones that require only testing.
Note 2: You can refer to the PRs in #7138 to understand better how we should extend our test suite. Add your name to the subtask you are working on.

Features to support in Citus

We plan to support the following new options:

Meaningful error messages for currently unsupported features

For now, we will not provide support for the following, but we will print error messages with possible hints/workarounds for the user:

Add regression tests or just test locally

Most of PG17's new additions simply work with Citus. However, we add tests for some of them to ensure consistency and maintainability for the future. For some other additions, testing locally is sufficient.

-- cluster with parenthesized syntax without a table name
CLUSTER (VERBOSE);
WARNING:  not propagating CLUSTER command to worker nodes
HINT:  Provide a specific table in order to CLUSTER distributed tables.
  • Add support for event triggers that fire at connection time postgres/postgres@e83d1b0c4
    @naisila
    Locally tested. CREATE EVENT TRIGGER is not propagated by Citus, so there is no behavior change in this one for Citus.
  • to_timestamp() ✅ , uuid_extract_timestamp() ✅ , uuid_extract_version() ✅ , to_bin() ✅, to_oct()✅, unicode_version()✅, icu_unicode_version()✅, to_regtypemod() ✅, pg_basetype() ✅
    @naisila
    Tested locally.
  • Add function pg_column_toast_chunk_id() to return a value's TOAST identifier postgres/postgres@d1162cfda
    @naisila
    pg_column_toast_chunk_id() for columns of distributed tables wouldn't give the correct result. Actually, the correct chunk id would be in the toast table of the shard, which is an id that belongs to another node. Therefore, it is expected that this doesn't work properly for Citus when used from the coordinator. The user should expect to use this function on the shard.
yrashk added a commit to postgres-pm/pgpm that referenced this issue Dec 23, 2024
Solution: correct the dependencies and build process

Also, mark it as broken on Postgres above 16, as it isn't supported yet.
(See citusdata/citus#7708)
@naisila naisila changed the title PG17.0 Support - SQL changes, new features PG17.1 Support - SQL changes, new features Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants