jackylee-ch commented on code in PR #796:
URL: https://github.com/apache/paimon-rust/pull/796#discussion_r3987836068
##########
bindings/go/predicate.go:
##########
@@ -253,8 +253,14 @@ var errConsumedPredicate = fmt.Errorf("paimon: predicate
already consumed or nil
// PredicateBuilder creates filter predicates for a table.
// It holds a Go-level reference to the Table and does not own any C resources,
// so there is no Close() method.
+//
+// caseSensitive is baked into every predicate this builder produces: the core
+// resolves a column when the predicate is constructed, so it cannot be changed
+// afterwards. Use Table.PredicateBuilder for exact matching or
+// Table.PredicateBuilderWithCaseSensitive to opt out.
type PredicateBuilder struct {
- table *Table
+ table *Table
+ caseSensitive bool
Review Comment:
Not Go-only: the split is core's and the C ABI's, both merged in #496, whose
description left Go's half to a follow-up. Python needs a single switch only
because its filter is a dict converted at `with_filter` time; Go's `WithFilter`
takes an already-resolved handle, so the flag has to sit on the builder that
produces the predicate.
Collapsed it into `PredicateBuilder.WithCaseSensitive` in 23e53fa so both
halves share one switch name and `Table` gains no method. `go test ./...` in
bindings/go green, including a new test pinning that neither switch reaches the
other.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]