Repository navigation
Conversation
|
|
Important Review skippedToo 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
📒 Files selected for processing (292)
You can disable this status message by setting the
Comment |
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
4edd586 to
80d3e99
Compare
|
Force-pushed: split the single commit into the source change and a separate regenerate commit (generated SQL only), and marked |
There was a problem hiding this comment.
🟡 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. | |||

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_v3for payloads written by cipherstash-client (the TypeScript SDK's engine) andeql_v4for 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
mainbuilds.Changes
packages/eql/src/v3, plus the version template, the search_path pin script and the uninstaller, writes{{prefix}}where it wroteeql_v3(about 24k sites), and{{eql_version}}in the 90 domain CHECKs that comparedVALUE->>'v'to'3'.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 literaleql_v3/eql_v4. A literal name would render the same for both versions, so the v4 bundle would quietly reach into v3.tasks/build.shrenders the ordered surface intobuild/render/eql_v3/(gitignored), runs the symbol-order and installer-completeness gates on the rendered files, and assemblesrelease/from them.docs:validate:documented-sqlruns psql over the rendered tree, and the Doxygen filter renderseql_v3names, so the generated reference is unchanged..gitattributes: markssrc/v3/scalars/ore_fallback.sqlas generated, as the per-type generated files already are.packages/eql/AGENTS.mdgains a "Schema and version placeholders" section. The scalar-type reference shows extension SQL with placeholders.Verification
release/cipherstash-encrypt.sql,release/cipherstash-encrypt-uninstall.sqlandsrc/deps-ordered-v3.txt: compared withcmpagainst a build of the base commit. All three are byte-identical.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 rootpnpm run test:scripts(71 files, 1296 tests).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_grepalso 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:
eql_v4bundle, with a gate that noeql_v3name survives in it, and a test that aneql_v4query term can't be compared with aneql_v3column.Review notes
Two commits, reviewed differently:
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 withrender.rsandbuild.sh.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:parityreproduces it, and CI checks that.GitHub collapses the generated files in the Files tab (
linguist-generatedinpackages/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