Available on crate feature
transform-cross-join only.Expand description
Inbuilt cross_join transform (#534): expand one record into the
cartesian product of two or more of its sibling array fields, emitting
one flat record per combination.
This is the last per-record reshape that otherwise falls to the DuckDB SQL
transform. It is a different shape from explode (one array → N rows) and
unpivot (wide → long): here several sibling arrays within a single record
are crossed (e.g. a HCM record’s jobs[] × compensation[] × employment[]).
The whole module is gated by #[cfg(feature = "transform-cross-join")] at
the mod site in lib.rs. It routes through
TransformStage::PageFn (page-level, fallible)
so an over-limit cartesian product fails loudly rather than risking OOM.
Structs§
- Compiled
Cross Join - Validated
CrossJoinSpec— apply per record withCompiledCrossJoin::apply. - Cross
Join Spec - User-facing
cross_joinconfig.
Enums§
- OnEmpty
- What to do when one of the crossed arrays is empty for a given record.
Constants§
- DEFAULT_
MAX_ PRODUCT - Default per-record cartesian-product ceiling.