Skip to main content

Module cross_join

Module cross_join 

Source
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§

CompiledCrossJoin
Validated CrossJoinSpec — apply per record with CompiledCrossJoin::apply.
CrossJoinSpec
User-facing cross_join config.

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.