pub fn fragment_decode_session_context() -> SessionContextExpand description
The session context a dfplan:v1: fragment is decoded on.
A5: the round-trip guard is the one contract on this path exercised from
both sides, and it was rehearsing the decode against the wrong session. The
executor decodes on krishiv-executor’s task_sql_engine, i.e. a real
crate::SqlEngine — its function registry, its SQL dialect, its config,
its object-store registry. planning_session_context is a bare
SessionContext that shares none of that, so a fragment referencing any
Krishiv-registered UDF (get_json_object, tumble_start, …) decoded fine
on the executor and failed here — and the caller reads a failed verify as
“decline to stage”, which silently runs the whole query as a single task.
Built from the same constructor the executor uses, differing only in the
memory source: nothing executes on this context, so the rehearsal takes an
unbounded pool instead of the task’s per-slot share. target_partitions
is likewise irrelevant — a fragment is decoded, never re-planned.