Closed ZiheLiu closed 3 months ago
:white_check_mark: pass : 0 / 0 (0%)
:white_check_mark: pass : 125 / 128 (97.66%)
path | covered_line | new_line | coverage | not_covered_line_detail | |
---|---|---|---|---|---|
:large_blue_circle: | be/src/exec/sorting/sort_column.cpp | 61 | 64 | 95.31% | [150, 159, 208] |
:large_blue_circle: | be/src/exec/sorting/sort_permute.cpp | 2 | 2 | 100.00% | [] |
:large_blue_circle: | be/src/exec/sorting/sort_helper.h | 3 | 3 | 100.00% | [] |
:large_blue_circle: | be/src/exprs/array_functions.cpp | 59 | 59 | 100.00% | [] |
@Mergifyio backport branch-3.3
backport branch-3.3
Why I'm doing:
Optimize the performance of
array_sortby
for multi key columns.What I'm doing:
For now, each column of each row will call
sort_and_tie_column(**range**)
once.sort_and_tie_column
is pretty heavy need , because it calls the virtual methodsColumnVisitor::accept
andColumn::visit
, and create and destroy several STL containers such astie
andpermutation
.Therefore, make each column only call
sort_and_tie_column(ranges)
once.Test
t1
contains 20,000,000 rows and 1 bucket. Each array row contains 3 columns.What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
Bugfix cherry-pick branch check: