Expose SessionContext.create_physical_expr for logical-to-physical Expr conversion

Aperta
#1,573 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python, rust
Ambito
api, backend

Direzione di ricerca

Inizia con SessionContext::create_physical_expr e il punto di ingresso PyPhysicalExpr proposto; traccia il modo in cui i binding Python gestiscono Expr, DFSchema, RecordBatch e ColumnarValue. Il lavoro è completato quando Python può creare un’espressione fisica da un Expr e un DFSchema, chiamare evaluate(batch) e ricevere un ColumnarValue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

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.

Lingua principale
Python
Stelle
605
Fork
176
Merge medio
1g 23h
PR unite (30g)
8

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/datafusion-python

Tutte le issue di apache/datafusion-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.