Repository navigation
Require preloading and guard the drop with an object access hook. - #58
Open
ibrarahmad wants to merge 4 commits into
Open
ibrarahmad wants to merge 4 commits into
ibrarahmad wants to merge 4 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 17 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
ibrarahmad
force-pushed
the
lo-migrate-storage-rewrite
branch
from
September 29, 2026 09:59
02a1772 to
48d51e1
Compare
ibrarahmad
force-pushed
the
lo-require-preload
branch
from
September 29, 2026 09:59
5ce0faf to
3d5fd78
Compare
lolor must now be listed in shared_preload_libraries; loading it on demand is refused. An object_access_hook refuses to remove the extension while it is enabled or while lolor storage still holds large objects, on every path that reaches it, checking the catalog state at deletion time rather than a flag left by an earlier session. lolor.allow_unsafe_drop skips both checks. enable(), disable() and the migrations refuse to run outside a client session, so replicated DDL cannot execute them inside an apply worker.
ibrarahmad
force-pushed
the
lo-require-preload
branch
from
September 29, 2026 19:08
3d5fd78 to
f328aa5
Compare
ibrarahmad
force-pushed
the
lo-migrate-storage-rewrite
branch
from
September 29, 2026 19:08
48d51e1 to
2ea271d
Compare
The event trigger no longer runs migrate_to_native() when the extension is dropped; it only puts the native pg_catalog names back. With the object access hook refusing every drop path while lolor storage holds objects, moving data from inside a DROP buys nothing and inherits whatever context the drop runs in. Migration is a manual step in both directions: run lolor.migrate_to_native(), then drop. Tests and docs updated accordingly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the design review on #55. Stacked on #56.
Tests: a regression block exercises both refusals with the event trigger disabled and the unsafe drop inside a rolled-back transaction; t/001 checks the preload refusal; t/008 checks the refusal for DROP SCHEMA CASCADE and DROP OWNED BY; every TAP cluster and the CI docker nodes now preload lolor. README, docs pages, release notes and the pg_upgrade note are updated.