-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[refactor](variant) refactor sub path push down on variant type #36478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[refactor](variant) refactor sub path push down on variant type #36478
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
|
run buildall |
78d172c to
ef7c773
Compare
|
run buildall |
09d4cc3 to
e728e47
Compare
|
run buildall |
TPC-H: Total hot run time: 39934 ms |
TPC-DS: Total hot run time: 175748 ms |
ClickBench: Total hot run time: 31.2 s |
7b2546a to
cf24bb2
Compare
|
run buildall |
7e0e2de to
d5617fe
Compare
|
run buildall |
TPC-H: Total hot run time: 40076 ms |
TPC-DS: Total hot run time: 173463 ms |
ClickBench: Total hot run time: 30.93 s |
d5617fe to
cc9cdaf
Compare
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
TPC-H: Total hot run time: 40522 ms |
TPC-DS: Total hot run time: 173610 ms |
|
TeamCity be ut coverage result: |
ClickBench: Total hot run time: 30.72 s |
cc9cdaf to
e2479a6
Compare
|
run buildall |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
intro a new rule VARIANT_SUB_PATH_PRUNING to prune variant sub path
b9eff65 to
8125377
Compare
|
run buildall |
TPC-H: Total hot run time: 39720 ms |
|
run performance |
|
PR approved by at least one committer and no changes requested. |
TPC-H: Total hot run time: 40108 ms |
TPC-DS: Total hot run time: 172351 ms |
ClickBench: Total hot run time: 30.49 s |
…he#36478) intro a new rule VARIANT_SUB_PATH_PRUNING to prune variant sub path. for example, variant slot v in table t has two sub path: 'c1' and 'c2', after this rule, select v['c1'] from t will only scan one sub path 'c1' of v to reduce scan time. This rule accomplishes all the work using two components. The Collector traverses from the top down, collecting all the element_at functions on the variant types, and recording the required path from the original variant slot to the current element_at. The Replacer traverses from the bottom up, generating the slots for the required sub path on scan, union, and cte consumer. Then, it replaces the element_at with the corresponding slot.
intro a new rule VARIANT_SUB_PATH_PRUNING to prune variant sub path. for example, variant slot v in table t has two sub path: 'c1' and 'c2', after this rule, select v['c1'] from t will only scan one sub path 'c1' of v to reduce scan time. This rule accomplishes all the work using two components. The Collector traverses from the top down, collecting all the element_at functions on the variant types, and recording the required path from the original variant slot to the current element_at. The Replacer traverses from the bottom up, generating the slots for the required sub path on scan, union, and cte consumer. Then, it replaces the element_at with the corresponding slot.
…he#36478) pick from master apache#36478 intro a new rule VARIANT_SUB_PATH_PRUNING to prune variant sub path. for example, variant slot v in table t has two sub path: 'c1' and 'c2', after this rule, select v['c1'] from t will only scan one sub path 'c1' of v to reduce scan time. This rule accomplishes all the work using two components. The Collector traverses from the top down, collecting all the element_at functions on the variant types, and recording the required path from the original variant slot to the current element_at. The Replacer traverses from the bottom up, generating the slots for the required sub path on scan, union, and cte consumer. Then, it replaces the element_at with the corresponding slot.
…) (#36923) pick from master #36478 intro a new rule VARIANT_SUB_PATH_PRUNING to prune variant sub path. for example, variant slot v in table t has two sub path: 'c1' and 'c2', after this rule, select v['c1'] from t will only scan one sub path 'c1' of v to reduce scan time. This rule accomplishes all the work using two components. The Collector traverses from the top down, collecting all the element_at functions on the variant types, and recording the required path from the original variant slot to the current element_at. The Replacer traverses from the bottom up, generating the slots for the required sub path on scan, union, and cte consumer. Then, it replaces the element_at with the corresponding slot.
intro a new rule VARIANT_SUB_PATH_PRUNING to prune variant sub path.
for example, variant slot v in table t has two sub path: 'c1' and 'c2', after this rule, select v['c1'] from t will only scan one sub path 'c1' of v to reduce scan time.
This rule accomplishes all the work using two components. The Collector traverses from the top down, collecting all the element_at functions on the variant types, and recording the required path from the original variant slot to the current element_at. The Replacer traverses from the bottom up, generating the slots for the required sub path on scan, union, and cte consumer. Then, it replaces the element_at with the corresponding slot.