Skip to content

refactor(eql): write the SQL source with schema and version placeholders - #1147

Draft
coderdan wants to merge 2 commits into
docs/adr-value-encodings-eql-v4from
refactor/eql-schema-placeholders
Draft

coderdan wants to merge 2 commits into
docs/adr-value-encodings-eql-v4from
refactor/eql-schema-placeholders

Conversation

@coderdan

@coderdan coderdan commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

EQL (Encrypt Query Language) is the SQL we install into a customer's Postgres so it can store and search encrypted values. ADR-0002 (#1139) decides that one SQL source should be installed under two names: eql_v3 for payloads written by cipherstash-client (the TypeScript SDK's engine) and eql_v4 for payloads written by Stack Encrypt. Postgres then refuses to compare a query of one with a column of the other, instead of silently returning no rows.

This PR is the first step: the SQL source stops naming its schemas and payload version literally, so it can be written out as either version. Nothing a customer installs changes. The v3 installer and uninstaller this branch builds are byte-identical to the ones main builds.

Changes

  • SQL source: every file under packages/eql/src/v3, plus the version template, the search_path pin script and the uninstaller, writes {{prefix}} where it wrote eql_v3 (about 24k sites), and {{eql_version}} in the 90 domain CHECKs that compared VALUE->>'v' to '3'.
  • eql-codegen: the generated SQL emits the same placeholders. The Rust bindings keep the literal eql_v3_ prefix, because they describe v3 payloads.
  • eql-codegen render <3|4> <out> <file>...: new. It substitutes the placeholders, and refuses an unknown or unterminated placeholder and any literal eql_v3/eql_v4. A literal name would render the same for both versions, so the v4 bundle would quietly reach into v3.
  • Build: tasks/build.sh renders the ordered surface into build/render/eql_v3/ (gitignored), runs the symbol-order and installer-completeness gates on the rendered files, and assembles release/ from them.
  • Docs tooling: docs:validate:documented-sql runs psql over the rendered tree, and the Doxygen filter renders eql_v3 names, so the generated reference is unchanged.
  • .gitattributes: marks src/v3/scalars/ore_fallback.sql as generated, as the per-type generated files already are.
  • Docs: packages/eql/AGENTS.md gains a "Schema and version placeholders" section. The scalar-type reference shows extension SQL with placeholders.

Verification

  • release/cipherstash-encrypt.sql, release/cipherstash-encrypt-uninstall.sql and src/deps-ordered-v3.txt: compared with cmp against a build of the base commit. All three are byte-identical.
  • The placeholder rewrite cross-checks the generator: I rewrote the committed generated files mechanically, then regenerated them from the changed templates, and the generator's output matched the rewrite exactly.
  • Passed: test:crates (eql-codegen 150 unit tests, including 8 new render tests), codegen:parity, types:check, typescript:check, test:schemas:parity, test:self_contained_v3, test:symbol_order_v3, test:symbol_order_selftest, test:installer_complete, test:build_ordering_helpers, test:doc-anchors, test:matrix:inventory, test:matrix:catalog-coverage, test:public_identifiers, release:prepare-bindings-assets.test, and root pnpm run test:scripts (71 files, 1296 tests).
  • Not run locally: the SQLx suites, docs:validate:documented-sql, test:surface:snapshot, splinter and the clean-install smoke test. All need Postgres, and Docker wasn't running. test:docs_v3_grep also wasn't run, because it needs bash 4 and this Mac has bash 3. I edited its one source grep and checked that grep by hand. The installer is byte-identical, so the database suites see the same SQL; CI runs them.

Related

Refs #1141. Stacked on #1139 (the ADR). The next two PRs in the stack:

  • The build also writes the eql_v4 bundle, with a gate that no eql_v3 name survives in it, and a test that an eql_v4 query term can't be compared with an eql_v3 column.
  • The SQLx suites run against both installs.

Review notes

Two commits, reviewed differently:

  1. refactor(eql): write the SQL source… (46 files, about 1.2k lines): the codegen constants, crates/eql-codegen/src/render.rs, tasks/build.sh, the docs tooling, and the hand-written SQL. Read this one. The hand-written SQL is the same mechanical substitution, so start with render.rs and build.sh.
  2. chore(eql): regenerate the scalar SQL surface… (246 files, about 23k lines): only the eql-codegen output, with no hand edits. You don't need to read it: mise run codegen:parity reproduces it, and CI checks that.

GitHub collapses the generated files in the Files tab (linguist-generated in packages/eql/.gitattributes). This PR adds the one generated file the existing globs missed, src/v3/scalars/ore_fallback.sql. The +/− counters still count generated files, so the PR header still shows about 24k lines.

https://claude.ai/code/session_01CA4pFfaN4DPNSTLnJVNxsu

@changeset-bot

changeset-bot Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 80d3e99

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 292 files, which is 192 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Only developers with an assigned seat can use this organization's usage-based review budget, and seats here are assigned manually. Ask an admin to assign a seat, or change the review continuation mode in Billing.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 26e3669f-df6f-494a-97a0-df06d33cc4a5

📥 Commits

Reviewing files that changed from the base of the PR and between 2bab288 and 80d3e99.


📒 Files selected for processing (292)
  • packages/eql/.gitattributes
  • packages/eql/.gitignore
  • packages/eql/AGENTS.md
  • packages/eql/crates/eql-codegen/src/bindings.rs
  • packages/eql/crates/eql-codegen/src/consts.rs
  • packages/eql/crates/eql-codegen/src/context.rs
  • packages/eql/crates/eql-codegen/src/generate.rs
  • packages/eql/crates/eql-codegen/src/lib.rs
  • packages/eql/crates/eql-codegen/src/main.rs
  • packages/eql/crates/eql-codegen/src/render.rs
  • packages/eql/crates/eql-codegen/templates/ore_fallback.sql.j2
  • packages/eql/crates/eql-codegen/templates/query_types.sql.j2
  • packages/eql/crates/eql-codegen/templates/types.sql.j2
  • packages/eql/crates/eql-codegen/tests/cli.rs
  • packages/eql/docs/reference/adding-a-scalar-encrypted-domain-type.md
  • packages/eql/mise.toml
  • packages/eql/src/v3/aggregates.sql
  • packages/eql/src/v3/common.sql
  • packages/eql/src/v3/crypto.sql
  • packages/eql/src/v3/json/aggregates.sql
  • packages/eql/src/v3/json/blockers.sql
  • packages/eql/src/v3/json/functions.sql
  • packages/eql/src/v3/json/operators.sql
  • packages/eql/src/v3/json/types.sql
  • packages/eql/src/v3/lint/lints.sql
  • packages/eql/src/v3/scalars/bigint/bigint_eq_functions.sql
  • packages/eql/src/v3/scalars/bigint/bigint_eq_operators.sql
  • packages/eql/src/v3/scalars/bigint/bigint_functions.sql
  • packages/eql/src/v3/scalars/bigint/bigint_operators.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_aggregates.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_functions.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_operators.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/bigint/bigint_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/bigint/bigint_types.sql
  • packages/eql/src/v3/scalars/bigint/json_entry_bigint_functions.sql
  • packages/eql/src/v3/scalars/bigint/json_entry_bigint_operators.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_eq_functions.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_eq_operators.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_ord_functions.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_ord_operators.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/bigint/query_bigint_types.sql
  • packages/eql/src/v3/scalars/boolean/boolean_functions.sql
  • packages/eql/src/v3/scalars/boolean/boolean_operators.sql
  • packages/eql/src/v3/scalars/boolean/boolean_types.sql
  • packages/eql/src/v3/scalars/date/date_eq_functions.sql
  • packages/eql/src/v3/scalars/date/date_eq_operators.sql
  • packages/eql/src/v3/scalars/date/date_functions.sql
  • packages/eql/src/v3/scalars/date/date_operators.sql
  • packages/eql/src/v3/scalars/date/date_ord_aggregates.sql
  • packages/eql/src/v3/scalars/date/date_ord_functions.sql
  • packages/eql/src/v3/scalars/date/date_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/date/date_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/date/date_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/date/date_ord_operators.sql
  • packages/eql/src/v3/scalars/date/date_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/date/date_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/date/date_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/date/date_types.sql
  • packages/eql/src/v3/scalars/date/json_entry_date_functions.sql
  • packages/eql/src/v3/scalars/date/json_entry_date_operators.sql
  • packages/eql/src/v3/scalars/date/query_date_eq_functions.sql
  • packages/eql/src/v3/scalars/date/query_date_eq_operators.sql
  • packages/eql/src/v3/scalars/date/query_date_ord_functions.sql
  • packages/eql/src/v3/scalars/date/query_date_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/date/query_date_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/date/query_date_ord_operators.sql
  • packages/eql/src/v3/scalars/date/query_date_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/date/query_date_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/date/query_date_types.sql
  • packages/eql/src/v3/scalars/double/double_eq_functions.sql
  • packages/eql/src/v3/scalars/double/double_eq_operators.sql
  • packages/eql/src/v3/scalars/double/double_functions.sql
  • packages/eql/src/v3/scalars/double/double_operators.sql
  • packages/eql/src/v3/scalars/double/double_ord_aggregates.sql
  • packages/eql/src/v3/scalars/double/double_ord_functions.sql
  • packages/eql/src/v3/scalars/double/double_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/double/double_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/double/double_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/double/double_ord_operators.sql
  • packages/eql/src/v3/scalars/double/double_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/double/double_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/double/double_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/double/double_types.sql
  • packages/eql/src/v3/scalars/double/json_entry_double_functions.sql
  • packages/eql/src/v3/scalars/double/json_entry_double_operators.sql
  • packages/eql/src/v3/scalars/double/query_double_eq_functions.sql
  • packages/eql/src/v3/scalars/double/query_double_eq_operators.sql
  • packages/eql/src/v3/scalars/double/query_double_ord_functions.sql
  • packages/eql/src/v3/scalars/double/query_double_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/double/query_double_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/double/query_double_ord_operators.sql
  • packages/eql/src/v3/scalars/double/query_double_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/double/query_double_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/double/query_double_types.sql
  • packages/eql/src/v3/scalars/functions.sql
  • packages/eql/src/v3/scalars/integer/integer_eq_functions.sql
  • packages/eql/src/v3/scalars/integer/integer_eq_operators.sql
  • packages/eql/src/v3/scalars/integer/integer_functions.sql
  • packages/eql/src/v3/scalars/integer/integer_operators.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_aggregates.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_functions.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_operators.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/integer/integer_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/integer/integer_types.sql
  • packages/eql/src/v3/scalars/integer/json_entry_integer_functions.sql
  • packages/eql/src/v3/scalars/integer/json_entry_integer_operators.sql
  • packages/eql/src/v3/scalars/integer/query_integer_eq_functions.sql
  • packages/eql/src/v3/scalars/integer/query_integer_eq_operators.sql
  • packages/eql/src/v3/scalars/integer/query_integer_ord_functions.sql
  • packages/eql/src/v3/scalars/integer/query_integer_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/integer/query_integer_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/integer/query_integer_ord_operators.sql
  • packages/eql/src/v3/scalars/integer/query_integer_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/integer/query_integer_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/integer/query_integer_types.sql
  • packages/eql/src/v3/scalars/json/json_functions.sql
  • packages/eql/src/v3/scalars/json/json_operators.sql
  • packages/eql/src/v3/scalars/json/json_types.sql
  • packages/eql/src/v3/scalars/numeric/json_entry_numeric_functions.sql
  • packages/eql/src/v3/scalars/numeric/json_entry_numeric_operators.sql
  • packages/eql/src/v3/scalars/numeric/numeric_eq_functions.sql
  • packages/eql/src/v3/scalars/numeric/numeric_eq_operators.sql
  • packages/eql/src/v3/scalars/numeric/numeric_functions.sql
  • packages/eql/src/v3/scalars/numeric/numeric_operators.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_aggregates.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_functions.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_operators.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/numeric/numeric_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/numeric/numeric_types.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_eq_functions.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_eq_operators.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_ord_functions.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_ord_operators.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/numeric/query_numeric_types.sql
  • packages/eql/src/v3/scalars/ore_fallback.sql
  • packages/eql/src/v3/scalars/real/json_entry_real_functions.sql
  • packages/eql/src/v3/scalars/real/json_entry_real_operators.sql
  • packages/eql/src/v3/scalars/real/query_real_eq_functions.sql
  • packages/eql/src/v3/scalars/real/query_real_eq_operators.sql
  • packages/eql/src/v3/scalars/real/query_real_ord_functions.sql
  • packages/eql/src/v3/scalars/real/query_real_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/real/query_real_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/real/query_real_ord_operators.sql
  • packages/eql/src/v3/scalars/real/query_real_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/real/query_real_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/real/query_real_types.sql
  • packages/eql/src/v3/scalars/real/real_eq_functions.sql
  • packages/eql/src/v3/scalars/real/real_eq_operators.sql
  • packages/eql/src/v3/scalars/real/real_functions.sql
  • packages/eql/src/v3/scalars/real/real_operators.sql
  • packages/eql/src/v3/scalars/real/real_ord_aggregates.sql
  • packages/eql/src/v3/scalars/real/real_ord_functions.sql
  • packages/eql/src/v3/scalars/real/real_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/real/real_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/real/real_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/real/real_ord_operators.sql
  • packages/eql/src/v3/scalars/real/real_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/real/real_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/real/real_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/real/real_types.sql
  • packages/eql/src/v3/scalars/smallint/json_entry_smallint_functions.sql
  • packages/eql/src/v3/scalars/smallint/json_entry_smallint_operators.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_eq_functions.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_eq_operators.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_ord_functions.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_ord_operators.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/smallint/query_smallint_types.sql
  • packages/eql/src/v3/scalars/smallint/smallint_eq_functions.sql
  • packages/eql/src/v3/scalars/smallint/smallint_eq_operators.sql
  • packages/eql/src/v3/scalars/smallint/smallint_functions.sql
  • packages/eql/src/v3/scalars/smallint/smallint_operators.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_aggregates.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_functions.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_operators.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/smallint/smallint_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/smallint/smallint_types.sql
  • packages/eql/src/v3/scalars/text/json_entry_text_functions.sql
  • packages/eql/src/v3/scalars/text/json_entry_text_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_eq_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_eq_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_match_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_match_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_ord_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_ord_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_search_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_search_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_search_ore_functions.sql
  • packages/eql/src/v3/scalars/text/query_text_search_ore_operators.sql
  • packages/eql/src/v3/scalars/text/query_text_types.sql
  • packages/eql/src/v3/scalars/text/text_eq_functions.sql
  • packages/eql/src/v3/scalars/text/text_eq_operators.sql
  • packages/eql/src/v3/scalars/text/text_functions.sql
  • packages/eql/src/v3/scalars/text/text_match_functions.sql
  • packages/eql/src/v3/scalars/text/text_match_operators.sql
  • packages/eql/src/v3/scalars/text/text_operators.sql
  • packages/eql/src/v3/scalars/text/text_ord_aggregates.sql
  • packages/eql/src/v3/scalars/text/text_ord_functions.sql
  • packages/eql/src/v3/scalars/text/text_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/text/text_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/text/text_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/text/text_ord_operators.sql
  • packages/eql/src/v3/scalars/text/text_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/text/text_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/text/text_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/text/text_search_aggregates.sql
  • packages/eql/src/v3/scalars/text/text_search_functions.sql
  • packages/eql/src/v3/scalars/text/text_search_operators.sql
  • packages/eql/src/v3/scalars/text/text_search_ore_aggregates.sql
  • packages/eql/src/v3/scalars/text/text_search_ore_functions.sql
  • packages/eql/src/v3/scalars/text/text_search_ore_operators.sql
  • packages/eql/src/v3/scalars/text/text_types.sql
  • packages/eql/src/v3/scalars/timestamp/json_entry_timestamp_functions.sql
  • packages/eql/src/v3/scalars/timestamp/json_entry_timestamp_operators.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_eq_functions.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_eq_operators.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_ord_functions.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_ord_operators.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/timestamp/query_timestamp_types.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_eq_functions.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_eq_operators.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_functions.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_operators.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_aggregates.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_functions.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_ope_aggregates.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_ope_functions.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_ope_operators.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_operators.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_ore_aggregates.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_ore_functions.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_ord_ore_operators.sql
  • packages/eql/src/v3/scalars/timestamp/timestamp_types.sql
  • packages/eql/src/v3/schema.sql
  • packages/eql/src/v3/sem/bloom_filter/functions.sql
  • packages/eql/src/v3/sem/bloom_filter/types.sql
  • packages/eql/src/v3/sem/hmac_256/functions.sql
  • packages/eql/src/v3/sem/hmac_256/types.sql
  • packages/eql/src/v3/sem/ope_cllw/functions.sql
  • packages/eql/src/v3/sem/ope_cllw/types.sql
  • packages/eql/src/v3/sem/ore_block_256/functions.sql
  • packages/eql/src/v3/sem/ore_block_256/operator_class.sql
  • packages/eql/src/v3/sem/ore_block_256/operators.sql
  • packages/eql/src/v3/sem/ore_block_256/types.sql
  • packages/eql/src/v3/version.template
  • packages/eql/tasks/build.sh
  • packages/eql/tasks/docs/doxygen-filter.sh
  • packages/eql/tasks/docs/validate/documented-sql.sh
  • packages/eql/tasks/pin_search_path_v3.sql
  • packages/eql/tasks/test/docs_v3_grep.sh
  • packages/eql/tasks/test/verify_installer_complete.sh
  • packages/eql/tasks/test/verify_symbol_order_v3.sh
  • packages/eql/tasks/uninstall-v3.sql

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

ADR-0002 separates the two producers of EQL payloads by Postgres type:
cipherstash-client's terms stay in eql_v3, Stack Encrypt's move to eql_v4,
and both come from one SQL source. This is the first step of #1141: the
source stops naming its schemas and payload version literally.

The hand-written SQL under src/v3, the version template, the search_path pin
script and the uninstaller now write {{prefix}} where they wrote eql_v3, and
{{eql_version}} where domain CHECKs compared VALUE->>'v' to '3'. eql-codegen
emits the same placeholders: its schema, typname-prefix and version constants
are placeholder strings, and its unit tests render output as v3 before
asserting. The Rust bindings keep the literal eql_v3_ prefix because they
describe v3 payloads.

A new `eql-codegen render <3|4> <out> <file>...` substitutes them. It
refuses an unknown or unterminated placeholder and any literal eql_v3 or
eql_v4, since a literal name would render the same for both versions and
let the v4 bundle reach into v3. build.sh renders the ordered surface into
build/render/eql_v3/ and runs the symbol-order and installer-completeness
gates on the rendered files. The docs tooling reads rendered SQL too.

The committed generated surface is regenerated in the next commit, so
codegen:parity fails at this one alone.

Refs #1141
Output of `cargo run -p eql-codegen` after the previous commit; no hand
edits. `mise run codegen:parity` reproduces it.

Only v3 is rendered so far, and the installer and uninstaller built from
this commit are byte-identical to the ones built before the placeholders.

Refs #1141
@coderdan
coderdan force-pushed the refactor/eql-schema-placeholders branch from 4edd586 to 80d3e99 Compare October 9, 2026 23:15
@coderdan

coderdan commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Force-pushed: split the single commit into the source change and a separate regenerate commit (generated SQL only), and marked src/v3/scalars/ore_fallback.sql as linguist-generated. The final tree is unchanged apart from that 3-line .gitattributes edit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Several rendered v4 SQL comments still hard-code v3 schema or payload-version descriptions.

3 open findings
What changed in this PR

This PR prepares EQL’s SQL source for rendering as either EQL v3 or v4 while preserving the current v3 release artifacts.

Changes:

  • Introduces strict schema/version placeholder rendering in eql-codegen.
  • Builds and validates installers from rendered SQL.
  • Converts handwritten and generated SQL to placeholders and updates related tooling.
File Description
packages/​eql/​.gitattributes Marks generated fallback SQL.
packages/​eql/​.gitignore Ignores rendered SQL.
packages/​eql/​AGENTS.md Documents placeholders.
packages/​eql/​crates/​eql-codegen/​src/​bindings.rs Preserves literal v3 binding names.
packages/​eql/​crates/​eql-codegen/​src/​consts.rs Defines SQL placeholders.
packages/​eql/​crates/​eql-codegen/​src/​context.rs Supplies placeholder context.
packages/​eql/​crates/​eql-codegen/​src/​generate.rs Tests rendered generator output.
packages/​eql/​crates/​eql-codegen/​src/​lib.rs Exports renderer.
packages/​eql/​crates/​eql-codegen/​src/​main.rs Adds render command.
packages/​eql/​crates/​eql-codegen/​src/​render.rs Implements strict rendering.
packages/​eql/​crates/​eql-codegen/​templates/​ore_fallback.sql.j2 Parameterizes fallback docs.
packages/​eql/​crates/​eql-codegen/​templates/​query_types.sql.j2 Parameterizes query versions.
packages/​eql/​crates/​eql-codegen/​templates/​types.sql.j2 Parameterizes domain versions.
packages/​eql/​crates/​eql-codegen/​tests/​cli.rs Updates CLI expectations.
packages/​eql/​docs/​reference/​adding-a-scalar-encrypted-domain-type.md Documents extension placeholders.
packages/​eql/​mise.toml Uses rendered validation inputs.
packages/​eql/​src/​v3/​aggregates.sql Replaces literal schema names.
packages/​eql/​src/​v3/​common.sql Replaces literal schema names.
packages/​eql/​src/​v3/​crypto.sql Replaces literal schema names.
packages/​eql/​src/​v3/​json/​aggregates.sql Replaces literal schema names.
packages/​eql/​src/​v3/​json/​blockers.sql Replaces literal schema names.
packages/​eql/​src/​v3/​json/​functions.sql Replaces literal schema names.
packages/​eql/​src/​v3/​json/​operators.sql Replaces literal schema names.
packages/​eql/​src/​v3/​json/​types.sql Parameterizes JSON domains.
packages/​eql/​src/​v3/​lint/​lints.sql Parameterizes lint schemas.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​bigint_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​bigint/​json_entry_bigint_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​json_entry_bigint_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​bigint/​query_bigint_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​boolean/​boolean_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​boolean/​boolean_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​boolean/​boolean_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​date/​date_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​date_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​date/​json_entry_date_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​json_entry_date_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​date/​query_date_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​double/​double_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​double_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​double/​json_entry_double_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​json_entry_double_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​double/​query_double_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​functions.sql Parameterizes shared helpers.
packages/​eql/​src/​v3/​scalars/​integer/​integer_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​integer_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​integer/​json_entry_integer_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​json_entry_integer_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​integer/​query_integer_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​json/​json_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​json/​json_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​json/​json_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​numeric/​json_entry_numeric_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​json_entry_numeric_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​numeric_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​numeric/​query_numeric_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​ore_fallback.sql Parameterizes generated fallback.
packages/​eql/​src/​v3/​scalars/​real/​json_entry_real_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​json_entry_real_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​query_real_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​real/​real_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​real/​real_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​smallint/​json_entry_smallint_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​json_entry_smallint_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​query_smallint_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​smallint/​smallint_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​text/​json_entry_text_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​json_entry_text_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_match_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_match_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_search_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_search_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_search_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_search_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​query_text_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​text/​text_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_match_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_match_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_search_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_search_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_search_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_search_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_search_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_search_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​text/​text_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​timestamp/​json_entry_timestamp_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​json_entry_timestamp_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​query_timestamp_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_eq_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_eq_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_ope_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_ope_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_ope_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_ore_aggregates.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_ore_functions.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_ord_ore_operators.sql Parameterizes generated SQL.
packages/​eql/​src/​v3/​scalars/​timestamp/​timestamp_types.sql Parameterizes domains.
packages/​eql/​src/​v3/​schema.sql Parameterizes schema creation.
packages/​eql/​src/​v3/​sem/​bloom_filter/​functions.sql Parameterizes SEM functions.
packages/​eql/​src/​v3/​sem/​bloom_filter/​types.sql Parameterizes SEM types.
packages/​eql/​src/​v3/​sem/​hmac_256/​functions.sql Parameterizes SEM functions.
packages/​eql/​src/​v3/​sem/​hmac_256/​types.sql Parameterizes SEM types.
packages/​eql/​src/​v3/​sem/​ope_cllw/​functions.sql Parameterizes SEM functions.
packages/​eql/​src/​v3/​sem/​ope_cllw/​types.sql Parameterizes SEM types.
packages/​eql/​src/​v3/​sem/​ore_block_256/​functions.sql Parameterizes SEM functions.
packages/​eql/​src/​v3/​sem/​ore_block_256/​operator_class.sql Parameterizes operator class.
packages/​eql/​src/​v3/​sem/​ore_block_256/​operators.sql Parameterizes SEM operators.
packages/​eql/​src/​v3/​sem/​ore_block_256/​types.sql Parameterizes SEM types.
packages/​eql/​src/​v3/​version.template Parameterizes version function.
packages/​eql/​tasks/​build.sh Renders before validation and assembly.
packages/​eql/​tasks/​docs/​doxygen-filter.sh Renders documentation input.
packages/​eql/​tasks/​docs/​validate/​documented-sql.sh Validates rendered SQL.
packages/​eql/​tasks/​pin_search_path_v3.sql Parameterizes schema references.
packages/​eql/​tasks/​test/​docs_v3_grep.sh Updates placeholder grep.
packages/​eql/​tasks/​test/​verify_installer_complete.sh Validates rendered installer inputs.
packages/​eql/​tasks/​test/​verify_symbol_order_v3.sh Checks rendered ordering.
packages/​eql/​tasks/​uninstall-v3.sql Parameterizes uninstaller schemas.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

--! only ever carried/grafted, never parsed. Unknown envelope keys are
--! rejected; `k` and `a` remain optional compatibility fields.
CREATE OR REPLACE FUNCTION public.eql_v3_is_valid_ste_vec_document_payload(val jsonb)
CREATE OR REPLACE FUNCTION public.{{prefix}}_is_valid_ste_vec_document_payload(val jsonb)
--! part of the public API and normally needs no grant; where a caller
--! reaches an internal object indirectly (a public operator/aggregate
--! whose backing state-fn/blocker lives there), grant it deliberately.

--! @brief Drop existing EQL v3 schema
--! @warning CASCADE will drop all dependent objects
DROP SCHEMA IF EXISTS eql_v3 CASCADE;
DROP SCHEMA IF EXISTS {{prefix}} CASCADE;
@@ -1,11 +1,11 @@
--! @file pin_search_path_v3.sql
--! @brief Post-install: pin search_path on every eql_v3.* function.
--! @brief Post-install: pin search_path on every {{prefix}}.* function.
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.

2 participants