Skip to content

PKG-895: Allow citus and timescaledb to compile#600

Open
dutow wants to merge 1 commit into
percona:PSP_REL_18_STABLEfrom
dutow:pkg895b
Open

PKG-895: Allow citus and timescaledb to compile#600
dutow wants to merge 1 commit into
percona:PSP_REL_18_STABLEfrom
dutow:pkg895b

Conversation

@dutow
Copy link
Copy Markdown
Collaborator

@dutow dutow commented May 11, 2026

Let's talk about this patch again!

Same as before, only for the PSP18 branch for now, 17 needs the same changes of course.

The pg_tde repo will need a matching

allow_upstream_smgr_api = false;

change if we go with this patch as-is.

This commit reintroduces the old method signatures of some methods we changed to support pg_tde. The changed method signatures still exists with a "2" suffix, and all internal code calls the "2" methods.

The reintroduced original methods also check a global flag which can disable them - if this happens, they report a FATAL error instead. This variable is activated by pg_tde, which means that if something tries to use these while pg_tde is loaded, and with that, possibly ignores its file tracking mechanism, it reports an error.

In practice this means that timescaledb, or the columnar storage in citus won't work if pg_tde is loaded in the shared_preload_libraries, but they can be used with our distribution without pg_tde enabled.

Also verified that both citus and timescaledb do compile with these changes, and their basic test suite can be run againts our fork.

This commit reintroduces the old method signatures of some methods we
changed to support pg_tde. The changed method signatures still exists
with a "2" suffix, and all internal code calls the "2" methods.

The reintroduced original methods also check a global flag which can
disable them - if this happens, they report a FATAL error instead. This
variable is activated by pg_tde, which means that if something tries to
use these while pg_tde is loaded, and with that, possibly ignores its
file tracking mechanism, it reports an error.

In practice this means that timescaledb, or the columnar storage in
citus won't work if pg_tde is loaded in the shared_preload_libraries,
but they can be used with our distribution without pg_tde enabled.

Also verified that both citus and timescaledb do compile with these
changes, and their basic test suite can be run againts our fork.
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