You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move FFI Types section alongside other areas to check
Section 7 (FFI Types) was incorrectly placed after the Output Format and
Implementation Pattern sections. Move it to sit after Section 6
(SessionContext Methods), consistent with the other checkable areas.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-`FFI_PlanProperties` / `FFI_Boundedness` / `FFI_EmissionType` — read from existing plans, not user-facing
334
-
-`FFI_Partitioning` — supporting type for physical planning
335
-
- Supporting/utility types (`FFI_Option`, `FFI_Result`, `WrappedSchema`, `WrappedArray`, `FFI_ColumnarValue`, `FFI_Volatility`, `FFI_InsertOp`, `FFI_AccumulatorArgs`, `FFI_Accumulator`, `FFI_GroupsAccumulator`, `FFI_EmitTo`, `FFI_AggregateOrderSensitivity`, `FFI_PartitionEvaluator`, `FFI_PartitionEvaluatorArgs`, `FFI_Range`, `FFI_SortOptions`, `FFI_Distribution`, `FFI_ExprProperties`, `FFI_SortProperties`, `FFI_Interval`, `FFI_TableProviderFilterPushDown`, `FFI_TableType`) — used as building blocks within the types above, not independently exposed
336
-
337
-
**How to check:**
338
-
1. Compare the upstream `datafusion-ffi` crate's `lib.rs` exports against the lists above
339
-
2. If new FFI types appear upstream, evaluate whether they represent a user-facing capability
340
-
3. Check against the "evaluated and not requiring exposure" list before flagging as a gap
341
-
4. Report any genuinely new types that enable user-facing functionality
342
-
5. For each currently supported FFI type, verify the full pipeline is present using the checklist from "Adding a New FFI Type":
343
-
- Rust PyO3 wrapper with `from_pycapsule()` method
344
-
- Python Protocol type (e.g., `ScalarUDFExportable`) for FFI objects
345
-
- Python wrapper class with full type hints on all public methods
346
-
- ABC base class (if the type can be user-implemented)
347
-
- Registered in Rust `init_module()` and Python `__init__.py`
348
-
- FFI example in `examples/datafusion-ffi-example/`
349
-
- Type appears in union type hints where accepted
350
-
351
351
## Important Notes
352
352
353
353
- The upstream DataFusion version used by this project is specified in `crates/core/Cargo.toml` — check the `datafusion` dependency version to ensure you're comparing against the right upstream version.
0 commit comments