pg_tle deployment smoke test for extension_drop (chained on cat_tools) - #21
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
43749f2 to
187577a
Compare
bec94b0 to
d97994b
Compare
3fcef44 to
8f4e50d
Compare
d97994b to
7ebe9c1
Compare
8f4e50d to
67855c7
Compare
7ebe9c1 to
4dd1d8a
Compare
2925fca to
03b0355
Compare
4dd1d8a to
073a299
Compare
|
Claude finished @jnasbyupgrade's task in 6m 30s —— View job Code Review
SummaryThis is a well-designed, carefully-reasoned addition. I traced the dependency chain through I also checked actual CI (run 31327195286): all six Two minor, non-blocking observations:
Nothing here blocks merge — the design matches the proven |
…at_tools) Proves extension_drop can be deployed with zero filesystem footprint via pg_tle (AWS's Trusted Language Extensions), the same fresh-install proof cat_tools' own pg-tle-test job (PR #47) does for itself -- but extension_drop REQUIRES cat_tools, so this job also registers cat_tools as a pg_tle extension first (a leaf extension's pg_tle test never has to solve chained dependency resolution). Every step that could write an extension file to disk is bracketed by a new bin/assert_fs_clean check (modeled on cat_tools' script of the same name), since a stray filesystem .control file silently wins over a pg_tle registration of the same name. Verified end to end locally: built pg_tle 1.5.2 from source, registered pg_tle+cat_tools+extension_drop against template1, CASCADE-installed extension_drop in a smoke database, and called extension_drop__add/__get/ __remove against a real installed extension -- all with zero filesystem control files present throughout (confirmed via bin/assert_fs_clean). Explicitly out of scope: the update path via pg_tle (extension_drop has no prior released version to update from yet) and binary pg_upgrade of a pg_tle-deployed extension -- both noted as follow-up work in the PR.
073a299 to
ff7dd63
Compare
|
Claude finished @jnasbyupgrade's task in 2m 14s —— View job Code Review
SummaryRe-verified this PR (no new commits since the last review — same diff: Verified independently this pass:
Same two minor, non-blocking observations as the prior pass on this PR (still unresolved, still not blocking):
Nothing blocks merge — chained-dependency registration order is correct, filesystem-isolation proof is sound, and CI is green. |
Adds a
pg-tle-testCI job provingextension_dropcan be deployed with zero filesystem footprint via pg_tle (AWS's Trusted Language Extensions — a database-backed catalog for installing an extension with no.controlfile on disk; relevant for RDS/Aurora-style managed deployments). This is a third deployment dimension, orthogonal to the fresh/update/existing testing already intest/install: not how the extension got there across time, but filesystem-installed vs. registered purely through pg_tle's catalog.extension_droprequirescat_tools(.control'srequires = 'cat_tools'), so unlike a leaf extension's pg_tle test (e.g.cat_tools's ownpg-tle-testjob, the reference this is modeled on),CREATE EXTENSION extension_drop CASCADEonly resolves cleanly ifcat_toolsis also already registered as a pg_tle extension — otherwise the CASCADE either fails outright or silently resolvescat_toolsfrom a stray filesystem install, defeating the point of the test. The job registers, in order,pg_tle→cat_tools(cloned at the sameCAT_TOOLS_GIT_REFthe Makefile's own filesystemcat_toolstarget pins to, read viamake print-CAT_TOOLS_GIT_REFso the two never drift) →extension_drop, all againsttemplate1before any database that needs them is created.bin/assert_fs_clean(snapshot/verify subcommands, diffing*.controlfiles against a pre-pg_tle baseline) is modeled oncat_tools's script of the same name: a stray filesystem control file silently wins over a pg_tle registration of the same name, so this checks that nothing landed on disk, bracketing every step that could plausibly write one.Explicitly out of scope for now:
extension_drophas no prior released version to update from yet.pg_upgradeof a pg_tle-deployed extension — a separate, heavier concern from a fresh-install smoke test.PG matrix is the intersection of two independently-moving ranges:
extension_drop's own tested range and pg_tle 1.5.2's supported PostgreSQL range (12–18, dropped PG11 — seepgxntool/pgtle_versions.md); 18 is left out since the existingtestjob doesn't cover it either.