test(fixtures): align scalar fixture names eql_v2_ → eql_v3_#311
Conversation
Also picks up pre-existing matrix.rs line-number drift: the committed snapshot (c611216, 2026-06-16) predated 9 matrix.rs commits through 2026-06-19, so source spans had shifted independently of this rename.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The SteVec document fixture is now generated through FixtureSpec (tests/sqlx/src/fixtures/v3_ste_vec.rs, since 3640e2a) and gitignored/regenerated like every scalar fixture — it is no longer a committed blob pending a generator. Also reword two 'committed' doc-comments (NAME / PAYLOAD_TYPE) to 'canonical' to avoid implying the gitignored .sql is tracked.
tasks/test/sqlx-archive.sh asserted the fixtures existed via an
`ls eql_v2_*.sql` glob that the rename left stale, failing the
build-archive job with 'eql_v2_*.sql missing'. Also updates the matching
comment in bench.sh. These glob refs were missed by the token/{ sweeps.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tests/sqlx/fixtures/FIXTURE_SCHEMA.md (1)
213-217: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winClarify the namespace distinction between fixture table and encrypted-domain type.
Line 213 states "so a downstream
public.eql_v3_int4domain can coexist." This is confusing because per CLAUDE.md, the encrypted-domain types live in theeql_v3schema (e.g.,eql_v3.int4), not the public schema. The comment appears to be a mechanical update from the oldeql_v2fixture era that doesn't match the actual architecture.Consider clarifying: the fixture table (
fixtures.eql_v3_int4) is separate from the domain type namespace (eql_v3.int4), so they don't conflict. If the intent is to document that the fixtures schema avoids polluting public, that's useful context; if the intent is to reserve space for a user-created public domain, that conflicts with the documented architecture.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/sqlx/fixtures/FIXTURE_SCHEMA.md` around lines 213 - 217, The comment in the FIXTURE_SCHEMA.md file around the CREATE TABLE fixtures.eql_v3_int4 statement incorrectly states that the downstream domain type exists in the public schema as public.eql_v3_int4, but according to the documented architecture in CLAUDE.md, encrypted-domain types actually live in the eql_v3 schema (e.g., eql_v3.int4). Clarify the comment to correctly explain that the fixture table in the fixtures schema is separate and distinct from the domain type namespace in the eql_v3 schema, and that using the fixtures schema prevents polluting the public schema. Remove the outdated reference to public.eql_v3_int4 and replace it with accurate context about the schema separation strategy.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tests/sqlx/fixtures/FIXTURE_SCHEMA.md`:
- Around line 213-217: The comment in the FIXTURE_SCHEMA.md file around the
CREATE TABLE fixtures.eql_v3_int4 statement incorrectly states that the
downstream domain type exists in the public schema as public.eql_v3_int4, but
according to the documented architecture in CLAUDE.md, encrypted-domain types
actually live in the eql_v3 schema (e.g., eql_v3.int4). Clarify the comment to
correctly explain that the fixture table in the fixtures schema is separate and
distinct from the domain type namespace in the eql_v3 schema, and that using the
fixtures schema prevents polluting the public schema. Remove the outdated
reference to public.eql_v3_int4 and replace it with accurate context about the
schema separation strategy.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 0f5c33b0-6ebe-4d10-a40c-30d394adee82
📒 Files selected for processing (38)
.gitignoreCLAUDE.mdcrates/eql-tests-macros/src/lib.rscrates/eql-types/src/v3/mod.rsdocs/reference/adding-a-scalar-encrypted-domain-type.mdmise.tomlsrc/ore_block_u64_8_256/operators.sqltasks/fixtures.tomltasks/test/bench.shtasks/test/sqlx-archive.shtasks/test/stub-fixtures.shtests/sqlx/README.mdtests/sqlx/fixtures/FIXTURE_SCHEMA.mdtests/sqlx/snapshots/int4_expanded.rstests/sqlx/src/fixtures/cipherstash.rstests/sqlx/src/fixtures/eql_doubles.rstests/sqlx/src/fixtures/mod.rstests/sqlx/src/fixtures/scalar_fixture.rstests/sqlx/src/fixtures/spec.rstests/sqlx/src/fixtures/v3_numeric_collision.rstests/sqlx/src/fixtures/v3_ste_vec.rstests/sqlx/src/fixtures/validation.rstests/sqlx/src/jsonb_entry.rstests/sqlx/src/scalar_domains.rstests/sqlx/tests/aggregate_tests.rstests/sqlx/tests/encrypted_domain/constraints.rstests/sqlx/tests/encrypted_domain/family/inlinability.rstests/sqlx/tests/encrypted_domain/family/jsonb_operator_surface.rstests/sqlx/tests/encrypted_domain/family/mutations.rstests/sqlx/tests/encrypted_domain/property/README.mdtests/sqlx/tests/encrypted_domain/property/cross_ciphertext.rstests/sqlx/tests/encrypted_domain/property/fixture_oracle.rstests/sqlx/tests/encrypted_domain/signed.rstests/sqlx/tests/encrypted_domain/text/text_match.rstests/sqlx/tests/eql_v3_int4_fixture_tests.rstests/sqlx/tests/generate_all_fixtures.rstests/sqlx/tests/lint_tests.rstests/sqlx/tests/ore_block_comparator_tests.rs
- Split fixtures into committed (eql_v2-era) vs generated/gitignored (eql_v3) - Replace int4-specific section with general 'Generated eql_v3 fixtures' (int4 is the bootstrap reference, not a special case) - Fix false 'no EQL dependency' claim: v3_doc_int4/v3_ste_vec use eql_v3.json - Document match_data.sql and aggregate_minmax_data.sql committed fixtures - Point eql_v3 fixture additions at eql-scalars::CATALOG, not hand-written SQL
…-support caveat The eql_v3 encrypted-JSONB surface referenced a decision doc (docs/decisions/2026-06-10-eql-v3-json-type-kind.md) that was never committed, in 4 places (operators.sql, jsonb_test.sql, v3_jsonb_tests.rs, CHANGELOG.md). The full rationale already lives inline at each site. Redirect those pointers to a real, user-facing home and document the caveat there: add an 'eql_v3 encrypted JSONB - typed operands' section to docs/reference/json-support.md explaining that bare untyped literals resolve to the native jsonb operator (the domain flattens to its base type for unknown-typed RHS), with correct/incorrect examples. This is intrinsic to the domain type-kind, mitigated by the Proxy always passing typed parameters; no separate decision doc is needed.
9575338 to
34c3937
Compare
What
Renames the catalog-driven scalar test fixtures from the vestigial
eql_v2_<T>prefix toeql_v3_<T>, so the fixture table/file/module names match theeql_v3schema domains they actually exercise.Why
The scalar fixtures (
eql_v2_int4,eql_v2_text, …) are tables in thefixturesschema that test theeql_v3.*domains exclusively — every value is cast toeql_v3.<type>and extracted viaeql_v3.eq_term/eql_v3.ord_term. Theeql_v2_prefix is a leftover from the original prototype and has nothing to do with theeql_v2schema, which created persistent confusion (the intent to useeql_v3_was already half-landed —scalar_types.rsdocumentedpub mod eql_v3_<T>while the macro still emittedeql_v2_).What changed
eql-tests-macrosproc-macro (module idents, fixture-name literal, dispatch arms, matrixeql_type) and the runtime table-name / doubles builders (scalar_domains.rs,eql_doubles.rs).#[sqlx::test(scripts(...))]ref,include_str!fixture paths, thefixtures.eql_v3_<T>SQL, and the renamedeql_v3_int4_fixture_tests.rs..gitignoreglob (eql_v2*→eql_v3*) and themise.tomlself-contained-v3 / expand fixture paths.eql_v3_*.sqlfixtures and theint4_expanded.rscargo-expand snapshot.eql-types/src/v3/mod.rs,src/ore_block_u64_8_256/operators.sql).Safety
Genuine
eql_v2schema symbols (eql_v2_encrypted,eql_v2_configuration,eql_v2.*,eql_v2.ste_vec_entry) are untouched — every rename was scoped to the fixture token set, and a final repo-wide sweep confirms zeroeql_v2_<scalar>references remain while the schema symbols are intact. Theeql_v2_<entity>self-containment rule message inbuild_validation_tests.rsis deliberately kept.Verification
mise run test: 2271 passed, 1 failed. The single failure (float_special::negative_zero_and_positive_zero_compare_equal_and_share_ore) is pre-existing and unrelated — it uses live encryption (reads no fixture), tests whether the cipherstash-client encoder canonicalizes-0.0→+0.0, and sits entirely outside this diff (no CATALOG / codegen / float SQL touched). Every fixture-consuming test passes against the renamed fixtures.mise run test:matrix:inventory: passes (10 types, snapshot unchanged).int4_expanded.rsalso absorbs pre-existingmatrix.rsline-number drift (the committed snapshot predated 9matrix.rscommits).Notes
CHANGELOG.mdentry — test-infrastructure-only, fixtures are gitignored, no caller-observable surface change.eql_v3(this is part of the v3 line, not yet onmain).Summary by CodeRabbit