Background
PyMetricsSet currently wraps the native DataFusion MetricsSet only. When a foreign ExecutionPlan is imported through FFI_ExecutionPlan (for example a plan implemented in a separate Rust extension, Go, or another Python module), there is no FFI round-trip for metrics: plan.metrics() on such a foreign plan returns whatever the underlying implementation happens to populate, with no standard way for the foreign side to surface DataFusion-style metrics back across the boundary.
Why deferred
There is no FFI_MetricsSet struct in the upstream datafusion-ffi crate at v54 to wrap; this is a pipeline-symmetry concern rather than a feature gap with a clear upstream target. No open user requests at the time of audit. Filed for tracking so that when upstream lands FFI metrics support, the Python bindings can pick it up immediately. The accepted path is probably: upstream adds FFI_MetricsSet and threads it through FFI_ExecutionPlan::metrics; the Python bindings then expose a from_pycapsule helper on MetricsSet analogous to the other *Exportable patterns.
Background
PyMetricsSetcurrently wraps the native DataFusionMetricsSetonly. When a foreignExecutionPlanis imported throughFFI_ExecutionPlan(for example a plan implemented in a separate Rust extension, Go, or another Python module), there is no FFI round-trip for metrics:plan.metrics()on such a foreign plan returns whatever the underlying implementation happens to populate, with no standard way for the foreign side to surface DataFusion-style metrics back across the boundary.Why deferred
There is no
FFI_MetricsSetstruct in the upstreamdatafusion-fficrate at v54 to wrap; this is a pipeline-symmetry concern rather than a feature gap with a clear upstream target. No open user requests at the time of audit. Filed for tracking so that when upstream lands FFI metrics support, the Python bindings can pick it up immediately. The accepted path is probably: upstream addsFFI_MetricsSetand threads it throughFFI_ExecutionPlan::metrics; the Python bindings then expose afrom_pycapsulehelper onMetricsSetanalogous to the other*Exportablepatterns.