timsaucer opened a new issue, #1573:
URL: https://github.com/apache/datafusion-python/issues/1573
## Background
`SessionContext::create_physical_expr` converts a logical `Expr` against a
`DFSchema` into a `PhysicalExpr` that can be evaluated directly against Arrow
record batches. The Python bindings do not expose this.
## Upstream signature
```rust
pub fn create_physical_expr(
&self,
expr: Expr,
input_dfschema: &DFSchema,
) -> Result<Arc<dyn PhysicalExpr>>
```
## User value
Useful when callers want to evaluate an Expr against an in-memory
RecordBatch without going through DataFrame execution -- for example to score /
filter individual batches in a custom processing loop, to debug optimization
rewrites, or to feed an expression into a custom physical operator. Niche but
irreplaceable for that audience.
## Why deferred
Effort is small (~180-280 LOC) but requires a new `PyPhysicalExpr` wrapper
exposing the opaque `Arc<dyn PhysicalExpr>` trait object plus an
`evaluate(batch) -> ColumnarValue` method to make it useful from Python. Zero
open user requests at the time of audit. Filed for tracking; revisit when a
user surfaces a concrete need or when adjacent FFI work pulls `PhysicalExpr`
into the binding surface.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]