MR-925: experiment 1.3 \u2014 custom UserDefinedLogicalNode + ExecutionPlan e2e

- validation-prototypes/custom-operator/: NeighborExpand toy operator
  with paired ExtensionPlanner + custom QueryPlanner via
  SessionStateBuilder::with_query_planner
- writeup at .context/experiments/custom-operator.md: 5 probes
  (round-trip, EXPLAIN, predicate guard, composition with Filter +
  Aggregate, BaselineMetrics) \u2014 all pass; ~250 LoC integration
  footprint; no unsafe; no internal API access
- finding: \u00a75.3 is achievable on DF 52.5 as written; deltas are
  doc-shaped (predicate push-down opt-in, statistics requirement,
  Partitioning override)
This commit is contained in:
Devin AI 2026-05-12 17:22:02 +00:00
parent 02c4b45c85
commit 8e54526024
5 changed files with 796 additions and 1 deletions

View file

@ -1280,6 +1280,25 @@ dependencies = [
"uuid",
]
[[package]]
name = "custom-operator"
version = "0.0.0"
dependencies = [
"anyhow",
"arrow",
"arrow-array",
"arrow-schema",
"async-trait",
"datafusion",
"datafusion-common",
"datafusion-execution",
"datafusion-expr",
"datafusion-physical-expr",
"datafusion-physical-plan",
"futures",
"tokio",
]
[[package]]
name = "darling"
version = "0.23.0"