Repository navigation
Conversation
Merging this PR will degrade performance by 6.01%4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
412ba6c to
12459ae
Compare
12459ae to
2cf8fe8
Compare
2cf8fe8 to
776fb89
Compare
ab2c324 to
6f04986
Compare
## Summary Moves the `vortex-runend` crate into `vortex-array` as `vortex_array::arrays::runend`, the same way `vortex-dict` moved in #5289. Once RunEnd is built in, vortex-array code can build run-end arrays itself. One example is spreading a captured outer value across each list's elements in `list_transform` (#10702). ## Changes - `RunEnd` is now a built-in, like `Dict`. It is registered in `ArraySession::default`, in the default kernel session, and in `AggregateFnSession::default` (min_max, is_constant, is_sorted, sum). - The `vortex-runend` crate is removed. `vortex::encodings::runend` still re-exports the module. - The benches move to `vortex-array/benches/run_end_*`. CodSpeed picks them up in the array builders shard. --------- Signed-off-by: Matt Katz <mhkatz97@gmail.com>
list_transform lambdas
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
6f04986 to
c319853
Compare
Issue: #9249
Summary
A lambda passed to
list_transformcan now read values from outside it, such as a column or a parameter of an enclosing lambda. The builder moves each such value out of the body into an extra input of the call and an extra parameter of the lambda. Every element of a row's list sees that row's value.Stacked on #10503.
Changes
Lambda::extract_capturesturns each outside read ($, a path like$.s.a, another lambda's parameter,row_idx(),row_count()) into a new parameter.Lambda::newaccepts them; binding still rejects them.list_transform(list, lambda)calls it, so the values are ordinary children:replace, field pruning and the scan'srow_idx()see them.take, using the index of the list that holds each element.BoundLambda::rebind).Testing
extract_capturesnaming, and a scan readingrow_idx()inside a lambda (vortex-layout).Follow-up
takeonce RunEnd lives in vortex-array.