Repository navigation
Conversation
public.eql_v4_json_search and public.eql_v4_json_entry are domains over jsonb, and the blockers covered only the operators. The function forms resolved to pg_catalog: jsonb_path_match(col, $1::jsonpath, $2::jsonb) ran over the stored envelope, found none of the user's keys and returned false for every row, with no error. Each blocked function now has an overload in public with the domain as its first argument and the native signature's other arguments, names and defaults, raising feature_not_supported with the EQL query to use instead. PostgreSQL matches argument types exactly before it treats a domain as its base type, which is what lets the overload win; with any untyped argument there is no exact match and the native function still runs, so the limit is documented rather than closed. The bodies raise on their own, not through eql_v4_internal, so they keep guarding the surviving domains after an uninstall, and CREATE OR REPLACE lets a reinstall run over them. jsonb_array_elements, _text and jsonb_array_length are left out: the native function already raises on both domains, and every overload makes an untyped first argument on plain jsonb ambiguous. Every internal caller of these functions passes jsonb (a parameter declared jsonb, or an explicit ::jsonb cast), so none needed a cast. With the v4 bundle installed, a call to any of the 20 functions whose first argument is an untyped literal or parameter is ambiguous on plain jsonb too. Upgrade note U-004 in the 3.1 guide lists them and the one cast that resolves it. The tests run over a document Stack Encrypt seals under the fake key source (json_tree::blockers in the encryption test crate), as every JSON tree test with a stored document does, so the reads they check are over the envelope the index writes. Closes #1439
🦋 Changeset detectedLatest commit: 0883fb1 The changes in this PR will be included in the next version bump. This PR includes changesets to release 12 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
Contributor
Author
|
Closing: #1444 now has CI runs of its own. |
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.
Temporary probe to see whether GitHub computes mergeability and starts workflows for the exact commit at the head of #1444. Will be closed and the branch deleted.