Repository navigation
Conversation
Merging this PR will degrade performance by 17.63%3 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
412ba6c to
12459ae
Compare
3de16b8 to
ed77d49
Compare
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.