You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Go SDK: generate one query method per operator, with Verify and TargetLimit on probabilistic terms #1189
The Go SDK's generated code has one query method per field: users.Fields.Email.Query(ctx, cipher, v), which returns the field's query operand, with the term chosen by the field's EQL type. ADR-0009 appendix B sketches the Go SDK under the operator model.
Problem
A Go caller cannot ask for a particular operator, cannot pass operator-specific input such as Between's two bounds, and gets no help verifying the results of a probabilistic query.
Proposal
stashgen generates one method per operator the field's EQL type answers, with the operator's input in the signature, such as Fields.Name.Matches(ctx, cipher, "ali") and Fields.Age.Between(ctx, cipher, lo, hi). A field whose type does not answer an operator has no such method.
stashgen takes the operators and their fidelity from the engine catalog, and holds no copy of those rules.
The query types of probabilistic operators carry Verify and TargetLimit, and exact ones carry neither. Each keeps driver.Valuer.
Verify over a page of rows is one call into the guest.
Each Go width rule holds in the generated signatures.
The README and doc.go show the query with database/sql and the decrypt-and-verify step.
Hermetic tests against the guest, and a PostgreSQL test that runs a Matches query and verifies its rows.
Activity
feat(stack-encrypt): let a binding ask which operators a plan field a…
feat(golang)!: generate one query method per operator the engine answ…
test(golang): run a matches query and verify its rows against Postgre…
docs(golang): show the query methods, the database/sql query and the …
feat(stack-encrypt): let a binding ask which operators a plan field a…
feat(golang)!: generate one query method per operator the engine answ…
test(golang): run a matches query and verify its rows against Postgre…
docs(golang): show the query methods, the database/sql query and the …
feat(stack-encrypt): let a binding ask which operators a plan field a…
feat(golang)!: generate one query method per operator the engine answ…
test(golang): run a matches query and verify its rows against Postgre…
docs(golang): show the query methods, the database/sql query and the …
feat(stack-encrypt): let a binding ask which operators a plan field a…
feat(golang)!: generate one query method per operator the engine answ…
test(golang): run a matches query and verify its rows against Postgre…
docs(golang): show the query methods, the database/sql query and the …
feat(stack-encrypt): let a binding ask which operators a plan field a…
feat(golang)!: generate one query method per operator the engine answ…
test(golang): run a matches query and verify its rows against Postgre…
docs(golang): show the query methods, the database/sql query and the …
feat(stack-encrypt): let a binding ask which operators a plan field a…
feat(golang)!: generate one query method per operator the engine answ…
test(golang): run a matches query and verify its rows against Postgre…
docs(golang): show the query methods, the database/sql query and the …
coderdan commentedon Oct 17, 2026
Staged: done in
nextby #1216. This stays open untilnextmerges intomain, which closes it.