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
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright the Vortex contributors
//! Batch execution for a strict row function.
//!
//! A batch is the set of same-length input columns supplied in one scalar-function call. A row
//! function handles typed values for one logical row. This module adds the columnar concerns around
//! that row function: planning the output and null handling, preserving batch constants,
//! propagating strict validity, selecting an execution strategy, and validating the finished
//! output.
//!
//! [`BatchPlan`] carries the nullable execution strategy selected by a concrete dispatch.
//! [`RowFnExecutionArgs`] applies that strategy, and [`BorrowedRowFnArgs`] pairs each kernel
//! invocation with its planning metadata.
use SmallVec;
use crateArrayRef;
use crateDType;
use crateScalarFnId;
use crateValidity;
pub use BorrowedRowFnArgs;
pub use finalize_kernel_output;
pub use BatchPlan;
pub use RowPolicy;
/// The same-length input columns and metadata for one row-function execution.
pub