refactor(ksuid): replace BinExpr with top-level expr helpers

Adds StringKSUIDExpr and BinaryKSUIDExpr for use with ExprValues, plus
Expr() methods on both types. Removes ExprStringKSUIDs and BinExpr.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-29 18:47:18 -07:00
parent eafe84ef31
commit a712ccc38f
8 changed files with 75 additions and 35 deletions
+4 -2
View File
@@ -16,7 +16,8 @@
// # Jet column utilities
//
// Dialect-neutral type aliases ([Column], [ColumnList]) and helpers for column
// lists ([NormalCols], [ContainsCol]) and expression building ([ExprValues]).
// lists ([NormalCols], [ContainsCol]) and expression building ([ExprValues],
// [StringKSUIDExpr], [BinaryKSUIDExpr]).
// [QueryCount] and [BuildQueryCountFn] support pagination total counts.
//
// Partial-update helpers ([ApplyPtr], [ApplyVal]) track changed fields for
@@ -26,7 +27,8 @@
//
// [StringKSUID] and [BinaryKSUID] wrap segmentio/ksuid with storage-specific
// SQL encoding. Both implement [ApplyInterface] via Equal and IsZero for use
// with [ApplyInterfacePtr]. Both share identical GraphQL string scalar transit.
// with [ApplyInterfacePtr]. Expr returns a Jet expression via [StringKSUIDExpr]
// or [BinaryKSUIDExpr]. Both share identical GraphQL string scalar transit.
// Choose StringKSUID for text columns (VARCHAR, TEXT); choose BinaryKSUID for
// binary columns (BINARY(20), BYTEA). [ParseStringKSUIDAny] and
// [ParseBinaryKSUIDAny] accept flexible input for API boundaries.