1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! Buffered execution: lower a [`PhysicalPlan`] into a `Vec<Row>` by
//! recursively materializing each operator. The pull-based streaming
//! pipeline lives in `crate::pull` and uses these helpers as its
//! buffered fallback for non-streamable subtrees.
//!
//! Layout:
//! - `immutable` — [`ExecutionContext`] and the read-only [`Executor`]
//! plus its `exec_*` operator methods (NodeScan / Expand / Filter /
//! Projection / Sort / Limit / OptionalMatch / PathBuild /
//! HashAggregation, including the streaming-fold fast path that
//! reuses [`crate::pull`]'s `StreamableAggSpec` machinery).
//! - `mutable` — [`MutableExecutionContext`], the read-write
//! [`MutableExecutor`], and every write operator implementation
//! (Create / Merge / Delete / Set / Remove). Owns the per-row
//! pattern materialization helpers (`apply_create_pattern_*`,
//! `try_match_merge_pattern`, `materialize_node_pattern`,
//! `materialize_relationship_pattern`) plus the SET / REMOVE
//! `EntityTarget` plumbing.
//! - `aggregation` — buffered hash aggregation shared by both executors,
//! including the fold-only fast path reused from `crate::pull`.
//! - `optional` — OPTIONAL MATCH row compatibility, merge, and
//! null-extension helpers shared by buffered and streaming execution.
//! - `helpers` — the cross-cutting helpers used by both executors and
//! re-exported across the crate: structural property comparison
//! ([`value_matches_property_value`]), label-group / property-index
//! probes ([`indexed_node_property_candidates`],
//! [`scan_node_ids_for_label_groups`],
//! [`node_matches_label_groups`], [`node_matches_property_filter`],
//! [`label_group_candidates_prefiltered`]),
//! path construction ([`build_path_value`]), variable-length
//! expansion (`variable_length_expand`) and shortest-path
//! filtering (`filter_shortest_paths`),
//! aggregate / dedup primitives
//! ([`compute_aggregate_expr`],
//! `dedup_rows`, `dedup_rows_by_vars`),
//! record hydration
//! ([`hydrate_node_record`], [`hydrate_relationship_record`]),
//! the [`GroupValueKey`] dedup-key / aggregate-key wrapper, and
//! variable-length range resolution ([`resolve_range`],
//! `VarLenResult`).
//! - `sort` — buffered sort comparison and top-k candidate retention
//! shared by buffered execution and `crate::pull::SortSource`.
pub use value_matches_property_value;
pub use ;
pub use ;
// Crate-internal re-exports needed by callers in `crate::pull` and
// `crate::eval` (and by the buffered executor's own siblings reaching
// each other through `super::helpers::*`). The names that remain here
// are exactly the ones referenced as `crate::executor::*` from
// outside `crate::executor`.
pub use aggregate_rows;
pub use ;
pub use ;
pub use sort_rows_with_top_k;