jiayuasu opened a new pull request, #807: URL: https://github.com/apache/sedona-db/pull/807
Adds the foundation of a Python expression layer that wraps DataFusion's logical `Expr` through PyO3, mirroring the pattern used in the R bindings (`r/sedonadb/src/rust/src/expression.rs`). This is the first of four small stacked PRs that together implement Phase P1 of #791. This one ships only the foundation: - `sedonadb.expr.Expr` — column-expression wrapper with `alias`, `cast`, `is_null`, `is_not_null`, `isin`, `negate`. - `sedonadb.expr.col(name)` — reference a column by name. - `sedonadb.expr.lit(value)` — wrap a Python value as a literal, reusing the existing `Literal` Arrow-array coercion path. Operator overloading and DataFrame integration land in follow-up PRs. `Expr` objects are pure syntax: they are not bound to a DataFrame at construction time, and column-validity errors surface only when an `Expr` is consumed by a DataFrame method. ## Test plan - [x] 18 unit tests in `tests/expr/test_expression.py` covering construction, alias, cast, null checks, `isin`, `negate`, and chaining. - [x] No regressions in the existing `tests/test_dataframe.py` (23/23 pass locally). - [ ] CI green. -- 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]
