Skip to content

Commit cc13352

Browse files
authored
feat(go): add filter push-down and predicate API for Go binding (#216)
Add complete predicate support to the Go binding, enabling filter push-down for table scans. This includes: - C FFI layer: predicate construction functions (equal, not_equal, less_than, greater_than, is_null, is_in, etc.), combinators (and/or/not), with_filter on ReadBuilder, and fix scan to propagate filters via TableScanState - Go binding: Predicate type, Go-native value types (Date, Time, Timestamp, LocalZonedTimestamp, Decimal, Bytes), automatic type inference from Go literals (int, string, bool, etc.), and ReadBuilder.WithFilter method - Tests: TestReadWithFilter with shared test helpers
1 parent 96c8715 commit cc13352

12 files changed

Lines changed: 1925 additions & 94 deletions

File tree

bindings/c/src/result.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ pub struct paimon_result_record_batch_reader {
6666
pub error: *mut paimon_error,
6767
}
6868

69+
#[repr(C)]
70+
pub struct paimon_result_predicate {
71+
pub predicate: *mut paimon_predicate,
72+
pub error: *mut paimon_error,
73+
}
74+
6975
#[repr(C)]
7076
pub struct paimon_result_next_batch {
7177
pub batch: paimon_arrow_batch,

0 commit comments

Comments
 (0)