You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by ag...@apache.org on 2026/02/06 20:26:49 UTC
(datafusion-comet) branch main updated: chore: 4.5x reduction in number of golden files (#3399)
This is an automated email from the ASF dual-hosted git repository.
agrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/main by this push:
new 9b05dfeaf chore: 4.5x reduction in number of golden files (#3399)
9b05dfeaf is described below
commit 9b05dfeaf885f3ca006e092c41d227ea19a9d0b3
Author: Andy Grove <ag...@apache.org>
AuthorDate: Fri Feb 6 13:26:44 2026 -0700
chore: 4.5x reduction in number of golden files (#3399)
---
.../q1.native_datafusion/explain.txt | 291 ---
.../q1.native_datafusion/simplified.txt | 72 -
.../q1.native_iceberg_compat/explain.txt | 269 ---
.../q1.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v1_4-spark3_5/q1/explain.txt | 269 ---
.../approved-plans-v1_4-spark3_5/q1/extended.txt | 53 -
.../approved-plans-v1_4-spark3_5/q1/simplified.txt | 52 -
.../q10.native_datafusion/explain.txt | 295 ---
.../q10.native_datafusion/simplified.txt | 77 -
.../q10.native_iceberg_compat/explain.txt | 306 ---
.../q10.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark3_5/q10/explain.txt | 306 ---
.../approved-plans-v1_4-spark3_5/q10/extended.txt | 63 -
.../q10/simplified.txt | 73 -
.../q11.native_datafusion/explain.txt | 518 -----
.../q11.native_datafusion/simplified.txt | 131 --
.../q11.native_iceberg_compat/explain.txt | 475 ----
.../q11.native_iceberg_compat/simplified.txt | 91 -
.../approved-plans-v1_4-spark3_5/q11/explain.txt | 475 ----
.../approved-plans-v1_4-spark3_5/q11/extended.txt | 91 -
.../q11/simplified.txt | 91 -
.../q12.native_datafusion/explain.txt | 163 --
.../q12.native_datafusion/simplified.txt | 43 -
.../q12.native_iceberg_compat/explain.txt | 164 --
.../q12.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark3_5/q12/explain.txt | 164 --
.../approved-plans-v1_4-spark3_5/q12/extended.txt | 31 -
.../q12/simplified.txt | 35 -
.../q13.native_datafusion/explain.txt | 241 --
.../q13.native_datafusion/simplified.txt | 61 -
.../q13.native_iceberg_compat/explain.txt | 231 --
.../q13.native_iceberg_compat/simplified.txt | 44 -
.../approved-plans-v1_4-spark3_5/q13/explain.txt | 231 --
.../approved-plans-v1_4-spark3_5/q13/extended.txt | 42 -
.../q13/simplified.txt | 44 -
.../q14a.native_datafusion/explain.txt | 822 -------
.../q14a.native_datafusion/simplified.txt | 220 --
.../q14a.native_iceberg_compat/explain.txt | 754 -------
.../q14a.native_iceberg_compat/simplified.txt | 149 --
.../approved-plans-v1_4-spark3_5/q14a/explain.txt | 754 -------
.../approved-plans-v1_4-spark3_5/q14a/extended.txt | 469 ----
.../q14a/simplified.txt | 149 --
.../q14b.native_datafusion/explain.txt | 769 -------
.../q14b.native_datafusion/simplified.txt | 206 --
.../q14b.native_iceberg_compat/explain.txt | 743 -------
.../q14b.native_iceberg_compat/simplified.txt | 153 --
.../approved-plans-v1_4-spark3_5/q14b/explain.txt | 743 -------
.../approved-plans-v1_4-spark3_5/q14b/extended.txt | 339 ---
.../q14b/simplified.txt | 153 --
.../q15.native_datafusion/explain.txt | 173 --
.../q15.native_datafusion/simplified.txt | 43 -
.../q15.native_iceberg_compat/explain.txt | 173 --
.../q15.native_iceberg_compat/simplified.txt | 34 -
.../approved-plans-v1_4-spark3_5/q15/explain.txt | 173 --
.../approved-plans-v1_4-spark3_5/q15/extended.txt | 32 -
.../q15/simplified.txt | 34 -
.../q16.native_datafusion/explain.txt | 235 --
.../q16.native_datafusion/simplified.txt | 45 -
.../q16.native_iceberg_compat/explain.txt | 235 --
.../q16.native_iceberg_compat/simplified.txt | 45 -
.../approved-plans-v1_4-spark3_5/q16/explain.txt | 235 --
.../approved-plans-v1_4-spark3_5/q16/extended.txt | 43 -
.../q16/simplified.txt | 45 -
.../q17.native_datafusion/explain.txt | 312 ---
.../q17.native_datafusion/simplified.txt | 79 -
.../q17.native_iceberg_compat/explain.txt | 319 ---
.../q17.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4-spark3_5/q17/explain.txt | 319 ---
.../approved-plans-v1_4-spark3_5/q17/extended.txt | 62 -
.../q17/simplified.txt | 63 -
.../q18.native_datafusion/explain.txt | 295 ---
.../q18.native_datafusion/simplified.txt | 74 -
.../q18.native_iceberg_compat/explain.txt | 280 ---
.../q18.native_iceberg_compat/simplified.txt | 53 -
.../approved-plans-v1_4-spark3_5/q18/explain.txt | 280 ---
.../approved-plans-v1_4-spark3_5/q18/extended.txt | 51 -
.../q18/simplified.txt | 53 -
.../q19.native_datafusion/explain.txt | 208 --
.../q19.native_datafusion/simplified.txt | 38 -
.../q19.native_iceberg_compat/explain.txt | 208 --
.../q19.native_iceberg_compat/simplified.txt | 38 -
.../approved-plans-v1_4-spark3_5/q19/explain.txt | 208 --
.../approved-plans-v1_4-spark3_5/q19/extended.txt | 38 -
.../q19/simplified.txt | 38 -
.../q2.native_datafusion/explain.txt | 193 --
.../q2.native_datafusion/simplified.txt | 36 -
.../q2.native_iceberg_compat/explain.txt | 193 --
.../q2.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark3_5/q2/explain.txt | 193 --
.../approved-plans-v1_4-spark3_5/q2/extended.txt | 48 -
.../approved-plans-v1_4-spark3_5/q2/simplified.txt | 36 -
.../q20.native_datafusion/explain.txt | 163 --
.../q20.native_datafusion/simplified.txt | 43 -
.../q20.native_iceberg_compat/explain.txt | 164 --
.../q20.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark3_5/q20/explain.txt | 164 --
.../approved-plans-v1_4-spark3_5/q20/extended.txt | 31 -
.../q20/simplified.txt | 35 -
.../q21.native_datafusion/explain.txt | 173 --
.../q21.native_datafusion/simplified.txt | 43 -
.../q21.native_iceberg_compat/explain.txt | 168 --
.../q21.native_iceberg_compat/simplified.txt | 33 -
.../approved-plans-v1_4-spark3_5/q21/explain.txt | 168 --
.../approved-plans-v1_4-spark3_5/q21/extended.txt | 31 -
.../q21/simplified.txt | 33 -
.../q22.native_datafusion/explain.txt | 178 --
.../q22.native_datafusion/simplified.txt | 44 -
.../q22.native_iceberg_compat/explain.txt | 178 --
.../q22.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark3_5/q22/explain.txt | 178 --
.../approved-plans-v1_4-spark3_5/q22/extended.txt | 33 -
.../q22/simplified.txt | 35 -
.../q23a.native_datafusion/explain.txt | 602 -----
.../q23a.native_datafusion/simplified.txt | 142 --
.../q23a.native_iceberg_compat/explain.txt | 576 -----
.../q23a.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v1_4-spark3_5/q23a/explain.txt | 576 -----
.../approved-plans-v1_4-spark3_5/q23a/extended.txt | 146 --
.../q23a/simplified.txt | 116 -
.../q23b.native_datafusion/explain.txt | 718 ------
.../q23b.native_datafusion/simplified.txt | 164 --
.../q23b.native_iceberg_compat/explain.txt | 692 ------
.../q23b.native_iceberg_compat/simplified.txt | 138 --
.../approved-plans-v1_4-spark3_5/q23b/explain.txt | 692 ------
.../approved-plans-v1_4-spark3_5/q23b/extended.txt | 198 --
.../q23b/simplified.txt | 138 --
.../q24a.native_datafusion/explain.txt | 439 ----
.../q24a.native_datafusion/simplified.txt | 94 -
.../q24a.native_iceberg_compat/explain.txt | 439 ----
.../q24a.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4-spark3_5/q24a/explain.txt | 439 ----
.../approved-plans-v1_4-spark3_5/q24a/extended.txt | 96 -
.../q24a/simplified.txt | 94 -
.../q24b.native_datafusion/explain.txt | 439 ----
.../q24b.native_datafusion/simplified.txt | 94 -
.../q24b.native_iceberg_compat/explain.txt | 439 ----
.../q24b.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4-spark3_5/q24b/explain.txt | 439 ----
.../approved-plans-v1_4-spark3_5/q24b/extended.txt | 96 -
.../q24b/simplified.txt | 94 -
.../q25.native_datafusion/explain.txt | 312 ---
.../q25.native_datafusion/simplified.txt | 79 -
.../q25.native_iceberg_compat/explain.txt | 319 ---
.../q25.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4-spark3_5/q25/explain.txt | 319 ---
.../approved-plans-v1_4-spark3_5/q25/extended.txt | 62 -
.../q25/simplified.txt | 63 -
.../q26.native_datafusion/explain.txt | 217 --
.../q26.native_datafusion/simplified.txt | 54 -
.../q26.native_iceberg_compat/explain.txt | 212 --
.../q26.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q26/explain.txt | 212 --
.../approved-plans-v1_4-spark3_5/q26/extended.txt | 39 -
.../q26/simplified.txt | 41 -
.../q27.native_datafusion/explain.txt | 222 --
.../q27.native_datafusion/simplified.txt | 55 -
.../q27.native_iceberg_compat/explain.txt | 217 --
.../q27.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4-spark3_5/q27/explain.txt | 217 --
.../approved-plans-v1_4-spark3_5/q27/extended.txt | 40 -
.../q27/simplified.txt | 42 -
.../q28.native_datafusion/explain.txt | 437 ----
.../q28.native_datafusion/simplified.txt | 105 -
.../q28.native_iceberg_compat/explain.txt | 437 ----
.../q28.native_iceberg_compat/simplified.txt | 105 -
.../approved-plans-v1_4-spark3_5/q28/explain.txt | 437 ----
.../approved-plans-v1_4-spark3_5/q28/extended.txt | 78 -
.../q28/simplified.txt | 105 -
.../q29.native_datafusion/explain.txt | 340 ---
.../q29.native_datafusion/simplified.txt | 86 -
.../q29.native_iceberg_compat/explain.txt | 366 ---
.../q29.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark3_5/q29/explain.txt | 366 ---
.../approved-plans-v1_4-spark3_5/q29/extended.txt | 67 -
.../q29/simplified.txt | 73 -
.../q3.native_datafusion/explain.txt | 111 -
.../q3.native_datafusion/simplified.txt | 21 -
.../q3.native_iceberg_compat/explain.txt | 111 -
.../q3.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark3_5/q3/explain.txt | 111 -
.../approved-plans-v1_4-spark3_5/q3/extended.txt | 21 -
.../approved-plans-v1_4-spark3_5/q3/simplified.txt | 21 -
.../q30.native_datafusion/explain.txt | 346 ---
.../q30.native_datafusion/simplified.txt | 86 -
.../q30.native_iceberg_compat/explain.txt | 318 ---
.../q30.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark3_5/q30/explain.txt | 318 ---
.../approved-plans-v1_4-spark3_5/q30/extended.txt | 65 -
.../q30/simplified.txt | 61 -
.../q31.native_datafusion/explain.txt | 644 ------
.../q31.native_datafusion/simplified.txt | 166 --
.../q31.native_iceberg_compat/explain.txt | 593 -----
.../q31.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v1_4-spark3_5/q31/explain.txt | 593 -----
.../approved-plans-v1_4-spark3_5/q31/extended.txt | 126 --
.../q31/simplified.txt | 116 -
.../q32.native_datafusion/explain.txt | 217 --
.../q32.native_datafusion/simplified.txt | 54 -
.../q32.native_iceberg_compat/explain.txt | 208 --
.../q32.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q32/explain.txt | 208 --
.../approved-plans-v1_4-spark3_5/q32/extended.txt | 42 -
.../q32/simplified.txt | 41 -
.../q33.native_datafusion/explain.txt | 415 ----
.../q33.native_datafusion/simplified.txt | 105 -
.../q33.native_iceberg_compat/explain.txt | 380 ----
.../q33.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark3_5/q33/explain.txt | 380 ----
.../approved-plans-v1_4-spark3_5/q33/extended.txt | 97 -
.../q33/simplified.txt | 73 -
.../q34.native_datafusion/explain.txt | 231 --
.../q34.native_datafusion/simplified.txt | 59 -
.../q34.native_iceberg_compat/explain.txt | 222 --
.../q34.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v1_4-spark3_5/q34/explain.txt | 222 --
.../approved-plans-v1_4-spark3_5/q34/extended.txt | 41 -
.../q34/simplified.txt | 43 -
.../q35.native_datafusion/explain.txt | 295 ---
.../q35.native_datafusion/simplified.txt | 77 -
.../q35.native_iceberg_compat/explain.txt | 306 ---
.../q35.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark3_5/q35/explain.txt | 306 ---
.../approved-plans-v1_4-spark3_5/q35/extended.txt | 63 -
.../q35/simplified.txt | 73 -
.../q36.native_datafusion/explain.txt | 207 --
.../q36.native_datafusion/simplified.txt | 54 -
.../q36.native_iceberg_compat/explain.txt | 203 --
.../q36.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4-spark3_5/q36/explain.txt | 203 --
.../approved-plans-v1_4-spark3_5/q36/extended.txt | 38 -
.../q36/simplified.txt | 42 -
.../q37.native_datafusion/explain.txt | 181 --
.../q37.native_datafusion/simplified.txt | 45 -
.../q37.native_iceberg_compat/explain.txt | 183 --
.../q37.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark3_5/q37/explain.txt | 183 --
.../approved-plans-v1_4-spark3_5/q37/extended.txt | 34 -
.../q37/simplified.txt | 36 -
.../q38.native_datafusion/explain.txt | 317 ---
.../q38.native_datafusion/simplified.txt | 75 -
.../q38.native_iceberg_compat/explain.txt | 308 ---
.../q38.native_iceberg_compat/simplified.txt | 60 -
.../approved-plans-v1_4-spark3_5/q38/explain.txt | 308 ---
.../approved-plans-v1_4-spark3_5/q38/extended.txt | 70 -
.../q38/simplified.txt | 60 -
.../q39a.native_datafusion/explain.txt | 330 ---
.../q39a.native_datafusion/simplified.txt | 84 -
.../q39a.native_iceberg_compat/explain.txt | 329 ---
.../q39a.native_iceberg_compat/simplified.txt | 65 -
.../approved-plans-v1_4-spark3_5/q39a/explain.txt | 329 ---
.../approved-plans-v1_4-spark3_5/q39a/extended.txt | 65 -
.../q39a/simplified.txt | 65 -
.../q39b.native_datafusion/explain.txt | 330 ---
.../q39b.native_datafusion/simplified.txt | 84 -
.../q39b.native_iceberg_compat/explain.txt | 329 ---
.../q39b.native_iceberg_compat/simplified.txt | 65 -
.../approved-plans-v1_4-spark3_5/q39b/explain.txt | 329 ---
.../approved-plans-v1_4-spark3_5/q39b/extended.txt | 65 -
.../q39b/simplified.txt | 65 -
.../q4.native_datafusion/explain.txt | 752 -------
.../q4.native_datafusion/simplified.txt | 191 --
.../q4.native_iceberg_compat/explain.txt | 671 ------
.../q4.native_iceberg_compat/simplified.txt | 127 --
.../approved-plans-v1_4-spark3_5/q4/explain.txt | 671 ------
.../approved-plans-v1_4-spark3_5/q4/extended.txt | 131 --
.../approved-plans-v1_4-spark3_5/q4/simplified.txt | 127 --
.../q40.native_datafusion/explain.txt | 221 --
.../q40.native_datafusion/simplified.txt | 45 -
.../q40.native_iceberg_compat/explain.txt | 217 --
.../q40.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4-spark3_5/q40/explain.txt | 217 --
.../approved-plans-v1_4-spark3_5/q40/extended.txt | 40 -
.../q40/simplified.txt | 42 -
.../q41.native_datafusion/explain.txt | 107 -
.../q41.native_datafusion/simplified.txt | 21 -
.../q41.native_iceberg_compat/explain.txt | 107 -
.../q41.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark3_5/q41/explain.txt | 107 -
.../approved-plans-v1_4-spark3_5/q41/extended.txt | 21 -
.../q41/simplified.txt | 21 -
.../q42.native_datafusion/explain.txt | 111 -
.../q42.native_datafusion/simplified.txt | 21 -
.../q42.native_iceberg_compat/explain.txt | 111 -
.../q42.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark3_5/q42/explain.txt | 111 -
.../approved-plans-v1_4-spark3_5/q42/extended.txt | 21 -
.../q42/simplified.txt | 21 -
.../q43.native_datafusion/explain.txt | 111 -
.../q43.native_datafusion/simplified.txt | 21 -
.../q43.native_iceberg_compat/explain.txt | 111 -
.../q43.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark3_5/q43/explain.txt | 111 -
.../approved-plans-v1_4-spark3_5/q43/extended.txt | 21 -
.../q43/simplified.txt | 21 -
.../q44.native_datafusion/explain.txt | 283 ---
.../q44.native_datafusion/simplified.txt | 75 -
.../q44.native_iceberg_compat/explain.txt | 283 ---
.../q44.native_iceberg_compat/simplified.txt | 75 -
.../approved-plans-v1_4-spark3_5/q44/explain.txt | 283 ---
.../approved-plans-v1_4-spark3_5/q44/extended.txt | 64 -
.../q44/simplified.txt | 75 -
.../q45.native_datafusion/explain.txt | 256 ---
.../q45.native_datafusion/simplified.txt | 64 -
.../q45.native_iceberg_compat/explain.txt | 259 ---
.../q45.native_iceberg_compat/simplified.txt | 54 -
.../approved-plans-v1_4-spark3_5/q45/explain.txt | 259 ---
.../approved-plans-v1_4-spark3_5/q45/extended.txt | 47 -
.../q45/simplified.txt | 54 -
.../q46.native_datafusion/explain.txt | 267 ---
.../q46.native_datafusion/simplified.txt | 67 -
.../q46.native_iceberg_compat/explain.txt | 256 ---
.../q46.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4-spark3_5/q46/explain.txt | 256 ---
.../approved-plans-v1_4-spark3_5/q46/extended.txt | 49 -
.../q46/simplified.txt | 49 -
.../q47.native_datafusion/explain.txt | 304 ---
.../q47.native_datafusion/simplified.txt | 87 -
.../q47.native_iceberg_compat/explain.txt | 289 ---
.../q47.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark3_5/q47/explain.txt | 289 ---
.../approved-plans-v1_4-spark3_5/q47/extended.txt | 105 -
.../q47/simplified.txt | 71 -
.../q48.native_datafusion/explain.txt | 207 --
.../q48.native_datafusion/simplified.txt | 52 -
.../q48.native_iceberg_compat/explain.txt | 202 --
.../q48.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v1_4-spark3_5/q48/explain.txt | 202 --
.../approved-plans-v1_4-spark3_5/q48/extended.txt | 37 -
.../q48/simplified.txt | 39 -
.../q49.native_datafusion/explain.txt | 497 -----
.../q49.native_datafusion/simplified.txt | 140 --
.../q49.native_iceberg_compat/explain.txt | 462 ----
.../q49.native_iceberg_compat/simplified.txt | 110 -
.../approved-plans-v1_4-spark3_5/q49/explain.txt | 462 ----
.../approved-plans-v1_4-spark3_5/q49/extended.txt | 94 -
.../q49/simplified.txt | 110 -
.../q5.native_datafusion/explain.txt | 499 -----
.../q5.native_datafusion/simplified.txt | 137 --
.../q5.native_iceberg_compat/explain.txt | 452 ----
.../q5.native_iceberg_compat/simplified.txt | 86 -
.../approved-plans-v1_4-spark3_5/q5/explain.txt | 452 ----
.../approved-plans-v1_4-spark3_5/q5/extended.txt | 90 -
.../approved-plans-v1_4-spark3_5/q5/simplified.txt | 86 -
.../q50.native_datafusion/explain.txt | 208 --
.../q50.native_datafusion/simplified.txt | 52 -
.../q50.native_iceberg_compat/explain.txt | 203 --
.../q50.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v1_4-spark3_5/q50/explain.txt | 203 --
.../approved-plans-v1_4-spark3_5/q50/extended.txt | 37 -
.../q50/simplified.txt | 39 -
.../q51.native_datafusion/explain.txt | 264 ---
.../q51.native_datafusion/simplified.txt | 73 -
.../q51.native_iceberg_compat/explain.txt | 257 ---
.../q51.native_iceberg_compat/simplified.txt | 62 -
.../approved-plans-v1_4-spark3_5/q51/explain.txt | 257 ---
.../approved-plans-v1_4-spark3_5/q51/extended.txt | 53 -
.../q51/simplified.txt | 62 -
.../q52.native_datafusion/explain.txt | 111 -
.../q52.native_datafusion/simplified.txt | 21 -
.../q52.native_iceberg_compat/explain.txt | 111 -
.../q52.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark3_5/q52/explain.txt | 111 -
.../approved-plans-v1_4-spark3_5/q52/extended.txt | 21 -
.../q52/simplified.txt | 21 -
.../q53.native_datafusion/explain.txt | 202 --
.../q53.native_datafusion/simplified.txt | 53 -
.../q53.native_iceberg_compat/explain.txt | 198 --
.../q53.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q53/explain.txt | 198 --
.../approved-plans-v1_4-spark3_5/q53/extended.txt | 37 -
.../q53/simplified.txt | 41 -
.../q54.native_datafusion/explain.txt | 497 -----
.../q54.native_datafusion/simplified.txt | 127 --
.../q54.native_iceberg_compat/explain.txt | 488 ----
.../q54.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v1_4-spark3_5/q54/explain.txt | 488 ----
.../approved-plans-v1_4-spark3_5/q54/extended.txt | 91 -
.../q54/simplified.txt | 99 -
.../q55.native_datafusion/explain.txt | 111 -
.../q55.native_datafusion/simplified.txt | 21 -
.../q55.native_iceberg_compat/explain.txt | 111 -
.../q55.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark3_5/q55/explain.txt | 111 -
.../approved-plans-v1_4-spark3_5/q55/extended.txt | 21 -
.../q55/simplified.txt | 21 -
.../q56.native_datafusion/explain.txt | 420 ----
.../q56.native_datafusion/simplified.txt | 106 -
.../q56.native_iceberg_compat/explain.txt | 385 ----
.../q56.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark3_5/q56/explain.txt | 385 ----
.../approved-plans-v1_4-spark3_5/q56/extended.txt | 100 -
.../q56/simplified.txt | 74 -
.../q57.native_datafusion/explain.txt | 304 ---
.../q57.native_datafusion/simplified.txt | 87 -
.../q57.native_iceberg_compat/explain.txt | 289 ---
.../q57.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark3_5/q57/explain.txt | 289 ---
.../approved-plans-v1_4-spark3_5/q57/extended.txt | 105 -
.../q57/simplified.txt | 71 -
.../q58.native_datafusion/explain.txt | 396 ----
.../q58.native_datafusion/simplified.txt | 97 -
.../q58.native_iceberg_compat/explain.txt | 381 ----
.../q58.native_iceberg_compat/simplified.txt | 76 -
.../approved-plans-v1_4-spark3_5/q58/explain.txt | 381 ----
.../approved-plans-v1_4-spark3_5/q58/extended.txt | 112 -
.../q58/simplified.txt | 76 -
.../q59.native_datafusion/explain.txt | 239 --
.../q59.native_datafusion/simplified.txt | 44 -
.../q59.native_iceberg_compat/explain.txt | 239 --
.../q59.native_iceberg_compat/simplified.txt | 44 -
.../approved-plans-v1_4-spark3_5/q59/explain.txt | 239 --
.../approved-plans-v1_4-spark3_5/q59/extended.txt | 53 -
.../q59/simplified.txt | 44 -
.../q6.native_datafusion/explain.txt | 304 ---
.../q6.native_datafusion/simplified.txt | 69 -
.../q6.native_iceberg_compat/explain.txt | 306 ---
.../q6.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark3_5/q6/explain.txt | 306 ---
.../approved-plans-v1_4-spark3_5/q6/extended.txt | 57 -
.../approved-plans-v1_4-spark3_5/q6/simplified.txt | 61 -
.../q60.native_datafusion/explain.txt | 420 ----
.../q60.native_datafusion/simplified.txt | 106 -
.../q60.native_iceberg_compat/explain.txt | 385 ----
.../q60.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark3_5/q60/explain.txt | 385 ----
.../approved-plans-v1_4-spark3_5/q60/extended.txt | 100 -
.../q60/simplified.txt | 74 -
.../q61.native_datafusion/explain.txt | 425 ----
.../q61.native_datafusion/simplified.txt | 108 -
.../q61.native_iceberg_compat/explain.txt | 397 ----
.../q61.native_iceberg_compat/simplified.txt | 79 -
.../approved-plans-v1_4-spark3_5/q61/explain.txt | 397 ----
.../approved-plans-v1_4-spark3_5/q61/extended.txt | 88 -
.../q61/simplified.txt | 79 -
.../q62.native_datafusion/explain.txt | 168 --
.../q62.native_datafusion/simplified.txt | 31 -
.../q62.native_iceberg_compat/explain.txt | 168 --
.../q62.native_iceberg_compat/simplified.txt | 31 -
.../approved-plans-v1_4-spark3_5/q62/explain.txt | 168 --
.../approved-plans-v1_4-spark3_5/q62/extended.txt | 31 -
.../q62/simplified.txt | 31 -
.../q63.native_datafusion/explain.txt | 202 --
.../q63.native_datafusion/simplified.txt | 53 -
.../q63.native_iceberg_compat/explain.txt | 198 --
.../q63.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q63/explain.txt | 198 --
.../approved-plans-v1_4-spark3_5/q63/extended.txt | 37 -
.../q63/simplified.txt | 41 -
.../q64.native_datafusion/explain.txt | 1029 ---------
.../q64.native_datafusion/simplified.txt | 206 --
.../q64.native_iceberg_compat/explain.txt | 1011 ---------
.../q64.native_iceberg_compat/simplified.txt | 192 --
.../approved-plans-v1_4-spark3_5/q64/explain.txt | 1011 ---------
.../approved-plans-v1_4-spark3_5/q64/extended.txt | 247 --
.../q64/simplified.txt | 192 --
.../q65.native_datafusion/explain.txt | 286 ---
.../q65.native_datafusion/simplified.txt | 71 -
.../q65.native_iceberg_compat/explain.txt | 264 ---
.../q65.native_iceberg_compat/simplified.txt | 51 -
.../approved-plans-v1_4-spark3_5/q65/explain.txt | 264 ---
.../approved-plans-v1_4-spark3_5/q65/extended.txt | 52 -
.../q65/simplified.txt | 51 -
.../q66.native_datafusion/explain.txt | 349 ---
.../q66.native_datafusion/simplified.txt | 90 -
.../q66.native_iceberg_compat/explain.txt | 317 ---
.../q66.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark3_5/q66/explain.txt | 317 ---
.../approved-plans-v1_4-spark3_5/q66/extended.txt | 70 -
.../q66/simplified.txt | 61 -
.../q67.native_datafusion/explain.txt | 222 --
.../q67.native_datafusion/simplified.txt | 57 -
.../q67.native_iceberg_compat/explain.txt | 222 --
.../q67.native_iceberg_compat/simplified.txt | 48 -
.../approved-plans-v1_4-spark3_5/q67/explain.txt | 222 --
.../approved-plans-v1_4-spark3_5/q67/extended.txt | 42 -
.../q67/simplified.txt | 48 -
.../q68.native_datafusion/explain.txt | 267 ---
.../q68.native_datafusion/simplified.txt | 67 -
.../q68.native_iceberg_compat/explain.txt | 256 ---
.../q68.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4-spark3_5/q68/explain.txt | 256 ---
.../approved-plans-v1_4-spark3_5/q68/extended.txt | 49 -
.../q68/simplified.txt | 49 -
.../q69.native_datafusion/explain.txt | 290 ---
.../q69.native_datafusion/simplified.txt | 76 -
.../q69.native_iceberg_compat/explain.txt | 301 ---
.../q69.native_iceberg_compat/simplified.txt | 72 -
.../approved-plans-v1_4-spark3_5/q69/explain.txt | 301 ---
.../approved-plans-v1_4-spark3_5/q69/extended.txt | 62 -
.../q69/simplified.txt | 72 -
.../q7.native_datafusion/explain.txt | 217 --
.../q7.native_datafusion/simplified.txt | 54 -
.../q7.native_iceberg_compat/explain.txt | 212 --
.../q7.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q7/explain.txt | 212 --
.../approved-plans-v1_4-spark3_5/q7/extended.txt | 39 -
.../approved-plans-v1_4-spark3_5/q7/simplified.txt | 41 -
.../q70.native_datafusion/explain.txt | 305 ---
.../q70.native_datafusion/simplified.txt | 80 -
.../q70.native_iceberg_compat/explain.txt | 309 ---
.../q70.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark3_5/q70/explain.txt | 309 ---
.../approved-plans-v1_4-spark3_5/q70/extended.txt | 61 -
.../q70/simplified.txt | 74 -
.../q71.native_datafusion/explain.txt | 262 ---
.../q71.native_datafusion/simplified.txt | 71 -
.../q71.native_iceberg_compat/explain.txt | 251 ---
.../q71.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4-spark3_5/q71/explain.txt | 251 ---
.../approved-plans-v1_4-spark3_5/q71/extended.txt | 53 -
.../q71/simplified.txt | 49 -
.../q72.native_datafusion/explain.txt | 428 ----
.../q72.native_datafusion/simplified.txt | 107 -
.../q72.native_iceberg_compat/explain.txt | 402 ----
.../q72.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark3_5/q72/explain.txt | 402 ----
.../approved-plans-v1_4-spark3_5/q72/extended.txt | 72 -
.../q72/simplified.txt | 74 -
.../q73.native_datafusion/explain.txt | 231 --
.../q73.native_datafusion/simplified.txt | 59 -
.../q73.native_iceberg_compat/explain.txt | 222 --
.../q73.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v1_4-spark3_5/q73/explain.txt | 222 --
.../approved-plans-v1_4-spark3_5/q73/extended.txt | 41 -
.../q73/simplified.txt | 43 -
.../q74.native_datafusion/explain.txt | 513 -----
.../q74.native_datafusion/simplified.txt | 130 --
.../q74.native_iceberg_compat/explain.txt | 470 ----
.../q74.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v1_4-spark3_5/q74/explain.txt | 470 ----
.../approved-plans-v1_4-spark3_5/q74/extended.txt | 90 -
.../q74/simplified.txt | 90 -
.../q75.native_datafusion/explain.txt | 754 -------
.../q75.native_datafusion/simplified.txt | 173 --
.../q75.native_iceberg_compat/explain.txt | 742 ------
.../q75.native_iceberg_compat/simplified.txt | 144 --
.../approved-plans-v1_4-spark3_5/q75/explain.txt | 742 ------
.../approved-plans-v1_4-spark3_5/q75/extended.txt | 172 --
.../q75/simplified.txt | 144 --
.../q76.native_datafusion/explain.txt | 200 --
.../q76.native_datafusion/simplified.txt | 37 -
.../q76.native_iceberg_compat/explain.txt | 200 --
.../q76.native_iceberg_compat/simplified.txt | 37 -
.../approved-plans-v1_4-spark3_5/q76/explain.txt | 200 --
.../approved-plans-v1_4-spark3_5/q76/extended.txt | 47 -
.../q76/simplified.txt | 37 -
.../q77.native_datafusion/explain.txt | 575 -----
.../q77.native_datafusion/simplified.txt | 150 --
.../q77.native_iceberg_compat/explain.txt | 518 -----
.../q77.native_iceberg_compat/simplified.txt | 111 -
.../approved-plans-v1_4-spark3_5/q77/explain.txt | 518 -----
.../approved-plans-v1_4-spark3_5/q77/extended.txt | 117 -
.../q77/simplified.txt | 111 -
.../q78.native_datafusion/explain.txt | 417 ----
.../q78.native_datafusion/simplified.txt | 87 -
.../q78.native_iceberg_compat/explain.txt | 405 ----
.../q78.native_iceberg_compat/simplified.txt | 78 -
.../approved-plans-v1_4-spark3_5/q78/explain.txt | 405 ----
.../approved-plans-v1_4-spark3_5/q78/extended.txt | 80 -
.../q78/simplified.txt | 78 -
.../q79.native_datafusion/explain.txt | 217 --
.../q79.native_datafusion/simplified.txt | 54 -
.../q79.native_iceberg_compat/explain.txt | 212 --
.../q79.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q79/explain.txt | 212 --
.../approved-plans-v1_4-spark3_5/q79/extended.txt | 39 -
.../q79/simplified.txt | 41 -
.../q8.native_datafusion/explain.txt | 284 ---
.../q8.native_datafusion/simplified.txt | 63 -
.../q8.native_iceberg_compat/explain.txt | 284 ---
.../q8.native_iceberg_compat/simplified.txt | 54 -
.../approved-plans-v1_4-spark3_5/q8/explain.txt | 284 ---
.../approved-plans-v1_4-spark3_5/q8/extended.txt | 52 -
.../approved-plans-v1_4-spark3_5/q8/simplified.txt | 54 -
.../q80.native_datafusion/explain.txt | 623 ------
.../q80.native_datafusion/simplified.txt | 124 --
.../q80.native_iceberg_compat/explain.txt | 611 -----
.../q80.native_iceberg_compat/simplified.txt | 115 -
.../approved-plans-v1_4-spark3_5/q80/explain.txt | 611 -----
.../approved-plans-v1_4-spark3_5/q80/extended.txt | 131 --
.../q80/simplified.txt | 115 -
.../q81.native_datafusion/explain.txt | 346 ---
.../q81.native_datafusion/simplified.txt | 86 -
.../q81.native_iceberg_compat/explain.txt | 318 ---
.../q81.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark3_5/q81/explain.txt | 318 ---
.../approved-plans-v1_4-spark3_5/q81/extended.txt | 65 -
.../q81/simplified.txt | 61 -
.../q82.native_datafusion/explain.txt | 181 --
.../q82.native_datafusion/simplified.txt | 45 -
.../q82.native_iceberg_compat/explain.txt | 183 --
.../q82.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark3_5/q82/explain.txt | 183 --
.../approved-plans-v1_4-spark3_5/q82/extended.txt | 34 -
.../q82/simplified.txt | 36 -
.../q83.native_datafusion/explain.txt | 378 ----
.../q83.native_datafusion/simplified.txt | 91 -
.../q83.native_iceberg_compat/explain.txt | 363 ---
.../q83.native_iceberg_compat/simplified.txt | 70 -
.../approved-plans-v1_4-spark3_5/q83/explain.txt | 363 ---
.../approved-plans-v1_4-spark3_5/q83/extended.txt | 105 -
.../q83/simplified.txt | 70 -
.../q84.native_datafusion/explain.txt | 190 --
.../q84.native_datafusion/simplified.txt | 35 -
.../q84.native_iceberg_compat/explain.txt | 190 --
.../q84.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark3_5/q84/explain.txt | 190 --
.../approved-plans-v1_4-spark3_5/q84/extended.txt | 35 -
.../q84/simplified.txt | 35 -
.../q85.native_datafusion/explain.txt | 329 ---
.../q85.native_datafusion/simplified.txt | 83 -
.../q85.native_iceberg_compat/explain.txt | 309 ---
.../q85.native_iceberg_compat/simplified.txt | 58 -
.../approved-plans-v1_4-spark3_5/q85/explain.txt | 309 ---
.../approved-plans-v1_4-spark3_5/q85/extended.txt | 56 -
.../q85/simplified.txt | 58 -
.../q86.native_datafusion/explain.txt | 168 --
.../q86.native_datafusion/simplified.txt | 44 -
.../q86.native_iceberg_compat/explain.txt | 169 --
.../q86.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark3_5/q86/explain.txt | 169 --
.../approved-plans-v1_4-spark3_5/q86/extended.txt | 32 -
.../q86/simplified.txt | 36 -
.../q87.native_datafusion/explain.txt | 336 ---
.../q87.native_datafusion/simplified.txt | 86 -
.../q87.native_iceberg_compat/explain.txt | 327 ---
.../q87.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark3_5/q87/explain.txt | 327 ---
.../approved-plans-v1_4-spark3_5/q87/extended.txt | 73 -
.../q87/simplified.txt | 71 -
.../q88.native_datafusion/explain.txt | 927 --------
.../q88.native_datafusion/simplified.txt | 195 --
.../q88.native_iceberg_compat/explain.txt | 927 --------
.../q88.native_iceberg_compat/simplified.txt | 195 --
.../approved-plans-v1_4-spark3_5/q88/explain.txt | 927 --------
.../approved-plans-v1_4-spark3_5/q88/extended.txt | 216 --
.../q88/simplified.txt | 195 --
.../q89.native_datafusion/explain.txt | 202 --
.../q89.native_datafusion/simplified.txt | 53 -
.../q89.native_iceberg_compat/explain.txt | 198 --
.../q89.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q89/explain.txt | 198 --
.../approved-plans-v1_4-spark3_5/q89/extended.txt | 37 -
.../q89/simplified.txt | 41 -
.../q9.native_datafusion/explain.txt | 283 ---
.../q9.native_datafusion/simplified.txt | 71 -
.../q9.native_iceberg_compat/explain.txt | 283 ---
.../q9.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark3_5/q9/explain.txt | 283 ---
.../approved-plans-v1_4-spark3_5/q9/extended.txt | 61 -
.../approved-plans-v1_4-spark3_5/q9/simplified.txt | 71 -
.../q90.native_datafusion/explain.txt | 260 ---
.../q90.native_datafusion/simplified.txt | 52 -
.../q90.native_iceberg_compat/explain.txt | 260 ---
.../q90.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v1_4-spark3_5/q90/explain.txt | 260 ---
.../approved-plans-v1_4-spark3_5/q90/extended.txt | 55 -
.../q90/simplified.txt | 52 -
.../q91.native_datafusion/explain.txt | 299 ---
.../q91.native_datafusion/simplified.txt | 77 -
.../q91.native_iceberg_compat/explain.txt | 280 ---
.../q91.native_iceberg_compat/simplified.txt | 53 -
.../approved-plans-v1_4-spark3_5/q91/explain.txt | 280 ---
.../approved-plans-v1_4-spark3_5/q91/extended.txt | 51 -
.../q91/simplified.txt | 53 -
.../q92.native_datafusion/explain.txt | 217 --
.../q92.native_datafusion/simplified.txt | 54 -
.../q92.native_iceberg_compat/explain.txt | 208 --
.../q92.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark3_5/q92/explain.txt | 208 --
.../approved-plans-v1_4-spark3_5/q92/extended.txt | 42 -
.../q92/simplified.txt | 41 -
.../q93.native_datafusion/explain.txt | 124 --
.../q93.native_datafusion/simplified.txt | 24 -
.../q93.native_iceberg_compat/explain.txt | 124 --
.../q93.native_iceberg_compat/simplified.txt | 24 -
.../approved-plans-v1_4-spark3_5/q93/explain.txt | 124 --
.../approved-plans-v1_4-spark3_5/q93/extended.txt | 24 -
.../q93/simplified.txt | 24 -
.../q94.native_datafusion/explain.txt | 235 --
.../q94.native_datafusion/simplified.txt | 45 -
.../q94.native_iceberg_compat/explain.txt | 235 --
.../q94.native_iceberg_compat/simplified.txt | 45 -
.../approved-plans-v1_4-spark3_5/q94/explain.txt | 235 --
.../approved-plans-v1_4-spark3_5/q94/extended.txt | 43 -
.../q94/simplified.txt | 45 -
.../q95.native_datafusion/explain.txt | 302 ---
.../q95.native_datafusion/simplified.txt | 58 -
.../q95.native_iceberg_compat/explain.txt | 302 ---
.../q95.native_iceberg_compat/simplified.txt | 58 -
.../approved-plans-v1_4-spark3_5/q95/explain.txt | 302 ---
.../approved-plans-v1_4-spark3_5/q95/extended.txt | 65 -
.../q95/simplified.txt | 58 -
.../q96.native_datafusion/explain.txt | 143 --
.../q96.native_datafusion/simplified.txt | 27 -
.../q96.native_iceberg_compat/explain.txt | 143 --
.../q96.native_iceberg_compat/simplified.txt | 27 -
.../approved-plans-v1_4-spark3_5/q96/explain.txt | 143 --
.../approved-plans-v1_4-spark3_5/q96/extended.txt | 27 -
.../q96/simplified.txt | 27 -
.../q97.native_datafusion/explain.txt | 174 --
.../q97.native_datafusion/simplified.txt | 41 -
.../q97.native_iceberg_compat/explain.txt | 179 --
.../q97.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark3_5/q97/explain.txt | 179 --
.../approved-plans-v1_4-spark3_5/q97/extended.txt | 37 -
.../q97/simplified.txt | 36 -
.../q98.native_datafusion/explain.txt | 177 --
.../q98.native_datafusion/simplified.txt | 48 -
.../q98.native_iceberg_compat/explain.txt | 178 --
.../q98.native_iceberg_compat/simplified.txt | 40 -
.../approved-plans-v1_4-spark3_5/q98/explain.txt | 178 --
.../approved-plans-v1_4-spark3_5/q98/extended.txt | 34 -
.../q98/simplified.txt | 40 -
.../q99.native_datafusion/explain.txt | 168 --
.../q99.native_datafusion/simplified.txt | 31 -
.../q99.native_iceberg_compat/explain.txt | 168 --
.../q99.native_iceberg_compat/simplified.txt | 31 -
.../approved-plans-v1_4-spark3_5/q99/explain.txt | 168 --
.../approved-plans-v1_4-spark3_5/q99/extended.txt | 31 -
.../q99/simplified.txt | 31 -
.../q1.native_datafusion/explain.txt | 291 ---
.../q1.native_datafusion/simplified.txt | 72 -
.../q1.native_iceberg_compat/explain.txt | 269 ---
.../q1.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v1_4-spark4_0/q1/explain.txt | 269 ---
.../approved-plans-v1_4-spark4_0/q1/extended.txt | 53 -
.../approved-plans-v1_4-spark4_0/q1/simplified.txt | 52 -
.../q10.native_datafusion/explain.txt | 295 ---
.../q10.native_datafusion/simplified.txt | 77 -
.../q10.native_iceberg_compat/explain.txt | 306 ---
.../q10.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark4_0/q10/explain.txt | 306 ---
.../approved-plans-v1_4-spark4_0/q10/extended.txt | 63 -
.../q10/simplified.txt | 73 -
.../q11.native_datafusion/explain.txt | 518 -----
.../q11.native_datafusion/simplified.txt | 131 --
.../q11.native_iceberg_compat/explain.txt | 475 ----
.../q11.native_iceberg_compat/simplified.txt | 91 -
.../approved-plans-v1_4-spark4_0/q11/explain.txt | 475 ----
.../approved-plans-v1_4-spark4_0/q11/extended.txt | 91 -
.../q11/simplified.txt | 91 -
.../q12.native_datafusion/explain.txt | 163 --
.../q12.native_datafusion/simplified.txt | 43 -
.../q12.native_iceberg_compat/explain.txt | 164 --
.../q12.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark4_0/q12/explain.txt | 164 --
.../approved-plans-v1_4-spark4_0/q12/extended.txt | 31 -
.../q12/simplified.txt | 35 -
.../q13.native_datafusion/explain.txt | 241 --
.../q13.native_datafusion/simplified.txt | 61 -
.../q13.native_iceberg_compat/explain.txt | 231 --
.../q13.native_iceberg_compat/simplified.txt | 44 -
.../approved-plans-v1_4-spark4_0/q13/explain.txt | 231 --
.../approved-plans-v1_4-spark4_0/q13/extended.txt | 42 -
.../q13/simplified.txt | 44 -
.../q14a.native_datafusion/explain.txt | 822 -------
.../q14a.native_datafusion/simplified.txt | 220 --
.../q14a.native_iceberg_compat/explain.txt | 754 -------
.../q14a.native_iceberg_compat/simplified.txt | 149 --
.../approved-plans-v1_4-spark4_0/q14a/explain.txt | 754 -------
.../approved-plans-v1_4-spark4_0/q14a/extended.txt | 469 ----
.../q14a/simplified.txt | 149 --
.../q14b.native_datafusion/explain.txt | 773 -------
.../q14b.native_datafusion/simplified.txt | 208 --
.../q14b.native_iceberg_compat/explain.txt | 751 -------
.../q14b.native_iceberg_compat/simplified.txt | 157 --
.../approved-plans-v1_4-spark4_0/q14b/explain.txt | 751 -------
.../approved-plans-v1_4-spark4_0/q14b/extended.txt | 343 ---
.../q14b/simplified.txt | 157 --
.../q15.native_datafusion/explain.txt | 173 --
.../q15.native_datafusion/simplified.txt | 43 -
.../q15.native_iceberg_compat/explain.txt | 173 --
.../q15.native_iceberg_compat/simplified.txt | 34 -
.../approved-plans-v1_4-spark4_0/q15/explain.txt | 173 --
.../approved-plans-v1_4-spark4_0/q15/extended.txt | 32 -
.../q15/simplified.txt | 34 -
.../q16.native_datafusion/explain.txt | 235 --
.../q16.native_datafusion/simplified.txt | 45 -
.../q16.native_iceberg_compat/explain.txt | 235 --
.../q16.native_iceberg_compat/simplified.txt | 45 -
.../approved-plans-v1_4-spark4_0/q16/explain.txt | 235 --
.../approved-plans-v1_4-spark4_0/q16/extended.txt | 43 -
.../q16/simplified.txt | 45 -
.../q17.native_datafusion/explain.txt | 312 ---
.../q17.native_datafusion/simplified.txt | 79 -
.../q17.native_iceberg_compat/explain.txt | 319 ---
.../q17.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4-spark4_0/q17/explain.txt | 319 ---
.../approved-plans-v1_4-spark4_0/q17/extended.txt | 62 -
.../q17/simplified.txt | 63 -
.../q18.native_datafusion/explain.txt | 295 ---
.../q18.native_datafusion/simplified.txt | 74 -
.../q18.native_iceberg_compat/explain.txt | 280 ---
.../q18.native_iceberg_compat/simplified.txt | 53 -
.../approved-plans-v1_4-spark4_0/q18/explain.txt | 280 ---
.../approved-plans-v1_4-spark4_0/q18/extended.txt | 51 -
.../q18/simplified.txt | 53 -
.../q19.native_datafusion/explain.txt | 208 --
.../q19.native_datafusion/simplified.txt | 38 -
.../q19.native_iceberg_compat/explain.txt | 208 --
.../q19.native_iceberg_compat/simplified.txt | 38 -
.../approved-plans-v1_4-spark4_0/q19/explain.txt | 208 --
.../approved-plans-v1_4-spark4_0/q19/extended.txt | 38 -
.../q19/simplified.txt | 38 -
.../q2.native_datafusion/explain.txt | 193 --
.../q2.native_datafusion/simplified.txt | 36 -
.../q2.native_iceberg_compat/explain.txt | 193 --
.../q2.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark4_0/q2/explain.txt | 193 --
.../approved-plans-v1_4-spark4_0/q2/extended.txt | 48 -
.../approved-plans-v1_4-spark4_0/q2/simplified.txt | 36 -
.../q20.native_datafusion/explain.txt | 163 --
.../q20.native_datafusion/simplified.txt | 43 -
.../q20.native_iceberg_compat/explain.txt | 164 --
.../q20.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark4_0/q20/explain.txt | 164 --
.../approved-plans-v1_4-spark4_0/q20/extended.txt | 31 -
.../q20/simplified.txt | 35 -
.../q21.native_datafusion/explain.txt | 173 --
.../q21.native_datafusion/simplified.txt | 43 -
.../q21.native_iceberg_compat/explain.txt | 168 --
.../q21.native_iceberg_compat/simplified.txt | 33 -
.../approved-plans-v1_4-spark4_0/q21/explain.txt | 168 --
.../approved-plans-v1_4-spark4_0/q21/extended.txt | 31 -
.../q21/simplified.txt | 33 -
.../q22.native_datafusion/explain.txt | 178 --
.../q22.native_datafusion/simplified.txt | 44 -
.../q22.native_iceberg_compat/explain.txt | 178 --
.../q22.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark4_0/q22/explain.txt | 178 --
.../approved-plans-v1_4-spark4_0/q22/extended.txt | 33 -
.../q22/simplified.txt | 35 -
.../q23a.native_datafusion/explain.txt | 602 -----
.../q23a.native_datafusion/simplified.txt | 142 --
.../q23a.native_iceberg_compat/explain.txt | 576 -----
.../q23a.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v1_4-spark4_0/q23a/explain.txt | 576 -----
.../approved-plans-v1_4-spark4_0/q23a/extended.txt | 146 --
.../q23a/simplified.txt | 116 -
.../q23b.native_datafusion/explain.txt | 718 ------
.../q23b.native_datafusion/simplified.txt | 164 --
.../q23b.native_iceberg_compat/explain.txt | 692 ------
.../q23b.native_iceberg_compat/simplified.txt | 138 --
.../approved-plans-v1_4-spark4_0/q23b/explain.txt | 692 ------
.../approved-plans-v1_4-spark4_0/q23b/extended.txt | 198 --
.../q23b/simplified.txt | 138 --
.../q24a.native_datafusion/explain.txt | 439 ----
.../q24a.native_datafusion/simplified.txt | 94 -
.../q24a.native_iceberg_compat/explain.txt | 439 ----
.../q24a.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4-spark4_0/q24a/explain.txt | 439 ----
.../approved-plans-v1_4-spark4_0/q24a/extended.txt | 96 -
.../q24a/simplified.txt | 94 -
.../q24b.native_datafusion/explain.txt | 439 ----
.../q24b.native_datafusion/simplified.txt | 94 -
.../q24b.native_iceberg_compat/explain.txt | 439 ----
.../q24b.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4-spark4_0/q24b/explain.txt | 439 ----
.../approved-plans-v1_4-spark4_0/q24b/extended.txt | 96 -
.../q24b/simplified.txt | 94 -
.../q25.native_datafusion/explain.txt | 312 ---
.../q25.native_datafusion/simplified.txt | 79 -
.../q25.native_iceberg_compat/explain.txt | 319 ---
.../q25.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4-spark4_0/q25/explain.txt | 319 ---
.../approved-plans-v1_4-spark4_0/q25/extended.txt | 62 -
.../q25/simplified.txt | 63 -
.../q26.native_datafusion/explain.txt | 217 --
.../q26.native_datafusion/simplified.txt | 54 -
.../q26.native_iceberg_compat/explain.txt | 212 --
.../q26.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q26/explain.txt | 212 --
.../approved-plans-v1_4-spark4_0/q26/extended.txt | 39 -
.../q26/simplified.txt | 41 -
.../q27.native_datafusion/explain.txt | 222 --
.../q27.native_datafusion/simplified.txt | 55 -
.../q27.native_iceberg_compat/explain.txt | 217 --
.../q27.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4-spark4_0/q27/explain.txt | 217 --
.../approved-plans-v1_4-spark4_0/q27/extended.txt | 40 -
.../q27/simplified.txt | 42 -
.../q28.native_datafusion/explain.txt | 437 ----
.../q28.native_datafusion/simplified.txt | 105 -
.../q28.native_iceberg_compat/explain.txt | 437 ----
.../q28.native_iceberg_compat/simplified.txt | 105 -
.../approved-plans-v1_4-spark4_0/q28/explain.txt | 437 ----
.../approved-plans-v1_4-spark4_0/q28/extended.txt | 78 -
.../q28/simplified.txt | 105 -
.../q29.native_datafusion/explain.txt | 340 ---
.../q29.native_datafusion/simplified.txt | 86 -
.../q29.native_iceberg_compat/explain.txt | 366 ---
.../q29.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark4_0/q29/explain.txt | 366 ---
.../approved-plans-v1_4-spark4_0/q29/extended.txt | 67 -
.../q29/simplified.txt | 73 -
.../q3.native_datafusion/explain.txt | 111 -
.../q3.native_datafusion/simplified.txt | 21 -
.../q3.native_iceberg_compat/explain.txt | 111 -
.../q3.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark4_0/q3/explain.txt | 111 -
.../approved-plans-v1_4-spark4_0/q3/extended.txt | 21 -
.../approved-plans-v1_4-spark4_0/q3/simplified.txt | 21 -
.../q30.native_datafusion/explain.txt | 346 ---
.../q30.native_datafusion/simplified.txt | 86 -
.../q30.native_iceberg_compat/explain.txt | 318 ---
.../q30.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark4_0/q30/explain.txt | 318 ---
.../approved-plans-v1_4-spark4_0/q30/extended.txt | 65 -
.../q30/simplified.txt | 61 -
.../q31.native_datafusion/explain.txt | 644 ------
.../q31.native_datafusion/simplified.txt | 166 --
.../q31.native_iceberg_compat/explain.txt | 593 -----
.../q31.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v1_4-spark4_0/q31/explain.txt | 593 -----
.../approved-plans-v1_4-spark4_0/q31/extended.txt | 126 --
.../q31/simplified.txt | 116 -
.../q32.native_datafusion/explain.txt | 217 --
.../q32.native_datafusion/simplified.txt | 54 -
.../q32.native_iceberg_compat/explain.txt | 208 --
.../q32.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q32/explain.txt | 208 --
.../approved-plans-v1_4-spark4_0/q32/extended.txt | 42 -
.../q32/simplified.txt | 41 -
.../q33.native_datafusion/explain.txt | 416 ----
.../q33.native_datafusion/simplified.txt | 105 -
.../q33.native_iceberg_compat/explain.txt | 381 ----
.../q33.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark4_0/q33/explain.txt | 381 ----
.../approved-plans-v1_4-spark4_0/q33/extended.txt | 97 -
.../q33/simplified.txt | 73 -
.../q34.native_datafusion/explain.txt | 231 --
.../q34.native_datafusion/simplified.txt | 59 -
.../q34.native_iceberg_compat/explain.txt | 222 --
.../q34.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v1_4-spark4_0/q34/explain.txt | 222 --
.../approved-plans-v1_4-spark4_0/q34/extended.txt | 41 -
.../q34/simplified.txt | 43 -
.../q35.native_datafusion/explain.txt | 295 ---
.../q35.native_datafusion/simplified.txt | 77 -
.../q35.native_iceberg_compat/explain.txt | 306 ---
.../q35.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4-spark4_0/q35/explain.txt | 306 ---
.../approved-plans-v1_4-spark4_0/q35/extended.txt | 63 -
.../q35/simplified.txt | 73 -
.../q36.native_datafusion/explain.txt | 207 --
.../q36.native_datafusion/simplified.txt | 54 -
.../q36.native_iceberg_compat/explain.txt | 203 --
.../q36.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4-spark4_0/q36/explain.txt | 203 --
.../approved-plans-v1_4-spark4_0/q36/extended.txt | 38 -
.../q36/simplified.txt | 42 -
.../q37.native_datafusion/explain.txt | 181 --
.../q37.native_datafusion/simplified.txt | 45 -
.../q37.native_iceberg_compat/explain.txt | 183 --
.../q37.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark4_0/q37/explain.txt | 183 --
.../approved-plans-v1_4-spark4_0/q37/extended.txt | 34 -
.../q37/simplified.txt | 36 -
.../q38.native_datafusion/explain.txt | 317 ---
.../q38.native_datafusion/simplified.txt | 75 -
.../q38.native_iceberg_compat/explain.txt | 308 ---
.../q38.native_iceberg_compat/simplified.txt | 60 -
.../approved-plans-v1_4-spark4_0/q38/explain.txt | 308 ---
.../approved-plans-v1_4-spark4_0/q38/extended.txt | 70 -
.../q38/simplified.txt | 60 -
.../q39a.native_datafusion/explain.txt | 330 ---
.../q39a.native_datafusion/simplified.txt | 84 -
.../q39a.native_iceberg_compat/explain.txt | 329 ---
.../q39a.native_iceberg_compat/simplified.txt | 65 -
.../approved-plans-v1_4-spark4_0/q39a/explain.txt | 329 ---
.../approved-plans-v1_4-spark4_0/q39a/extended.txt | 65 -
.../q39a/simplified.txt | 65 -
.../q39b.native_datafusion/explain.txt | 330 ---
.../q39b.native_datafusion/simplified.txt | 84 -
.../q39b.native_iceberg_compat/explain.txt | 329 ---
.../q39b.native_iceberg_compat/simplified.txt | 65 -
.../approved-plans-v1_4-spark4_0/q39b/explain.txt | 329 ---
.../approved-plans-v1_4-spark4_0/q39b/extended.txt | 65 -
.../q39b/simplified.txt | 65 -
.../q4.native_datafusion/explain.txt | 752 -------
.../q4.native_datafusion/simplified.txt | 191 --
.../q4.native_iceberg_compat/explain.txt | 671 ------
.../q4.native_iceberg_compat/simplified.txt | 127 --
.../approved-plans-v1_4-spark4_0/q4/explain.txt | 671 ------
.../approved-plans-v1_4-spark4_0/q4/extended.txt | 131 --
.../approved-plans-v1_4-spark4_0/q4/simplified.txt | 127 --
.../q40.native_datafusion/explain.txt | 221 --
.../q40.native_datafusion/simplified.txt | 45 -
.../q40.native_iceberg_compat/explain.txt | 217 --
.../q40.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4-spark4_0/q40/explain.txt | 217 --
.../approved-plans-v1_4-spark4_0/q40/extended.txt | 40 -
.../q40/simplified.txt | 42 -
.../q41.native_datafusion/explain.txt | 107 -
.../q41.native_datafusion/simplified.txt | 21 -
.../q41.native_iceberg_compat/explain.txt | 107 -
.../q41.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark4_0/q41/explain.txt | 107 -
.../approved-plans-v1_4-spark4_0/q41/extended.txt | 21 -
.../q41/simplified.txt | 21 -
.../q42.native_datafusion/explain.txt | 111 -
.../q42.native_datafusion/simplified.txt | 21 -
.../q42.native_iceberg_compat/explain.txt | 111 -
.../q42.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark4_0/q42/explain.txt | 111 -
.../approved-plans-v1_4-spark4_0/q42/extended.txt | 21 -
.../q42/simplified.txt | 21 -
.../q43.native_datafusion/explain.txt | 111 -
.../q43.native_datafusion/simplified.txt | 21 -
.../q43.native_iceberg_compat/explain.txt | 111 -
.../q43.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark4_0/q43/explain.txt | 111 -
.../approved-plans-v1_4-spark4_0/q43/extended.txt | 21 -
.../q43/simplified.txt | 21 -
.../q44.native_datafusion/explain.txt | 290 ---
.../q44.native_datafusion/simplified.txt | 72 -
.../q44.native_iceberg_compat/explain.txt | 290 ---
.../q44.native_iceberg_compat/simplified.txt | 72 -
.../approved-plans-v1_4-spark4_0/q44/explain.txt | 290 ---
.../approved-plans-v1_4-spark4_0/q44/extended.txt | 65 -
.../q44/simplified.txt | 72 -
.../q45.native_datafusion/explain.txt | 256 ---
.../q45.native_datafusion/simplified.txt | 64 -
.../q45.native_iceberg_compat/explain.txt | 259 ---
.../q45.native_iceberg_compat/simplified.txt | 54 -
.../approved-plans-v1_4-spark4_0/q45/explain.txt | 259 ---
.../approved-plans-v1_4-spark4_0/q45/extended.txt | 47 -
.../q45/simplified.txt | 54 -
.../q46.native_datafusion/explain.txt | 267 ---
.../q46.native_datafusion/simplified.txt | 67 -
.../q46.native_iceberg_compat/explain.txt | 256 ---
.../q46.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4-spark4_0/q46/explain.txt | 256 ---
.../approved-plans-v1_4-spark4_0/q46/extended.txt | 49 -
.../q46/simplified.txt | 49 -
.../q47.native_datafusion/explain.txt | 304 ---
.../q47.native_datafusion/simplified.txt | 87 -
.../q47.native_iceberg_compat/explain.txt | 289 ---
.../q47.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark4_0/q47/explain.txt | 289 ---
.../approved-plans-v1_4-spark4_0/q47/extended.txt | 105 -
.../q47/simplified.txt | 71 -
.../q48.native_datafusion/explain.txt | 207 --
.../q48.native_datafusion/simplified.txt | 52 -
.../q48.native_iceberg_compat/explain.txt | 202 --
.../q48.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v1_4-spark4_0/q48/explain.txt | 202 --
.../approved-plans-v1_4-spark4_0/q48/extended.txt | 37 -
.../q48/simplified.txt | 39 -
.../q49.native_datafusion/explain.txt | 497 -----
.../q49.native_datafusion/simplified.txt | 140 --
.../q49.native_iceberg_compat/explain.txt | 462 ----
.../q49.native_iceberg_compat/simplified.txt | 110 -
.../approved-plans-v1_4-spark4_0/q49/explain.txt | 462 ----
.../approved-plans-v1_4-spark4_0/q49/extended.txt | 94 -
.../q49/simplified.txt | 110 -
.../q5.native_datafusion/explain.txt | 499 -----
.../q5.native_datafusion/simplified.txt | 137 --
.../q5.native_iceberg_compat/explain.txt | 452 ----
.../q5.native_iceberg_compat/simplified.txt | 86 -
.../approved-plans-v1_4-spark4_0/q5/explain.txt | 452 ----
.../approved-plans-v1_4-spark4_0/q5/extended.txt | 90 -
.../approved-plans-v1_4-spark4_0/q5/simplified.txt | 86 -
.../q50.native_datafusion/explain.txt | 208 --
.../q50.native_datafusion/simplified.txt | 52 -
.../q50.native_iceberg_compat/explain.txt | 203 --
.../q50.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v1_4-spark4_0/q50/explain.txt | 203 --
.../approved-plans-v1_4-spark4_0/q50/extended.txt | 37 -
.../q50/simplified.txt | 39 -
.../q51.native_datafusion/explain.txt | 264 ---
.../q51.native_datafusion/simplified.txt | 73 -
.../q51.native_iceberg_compat/explain.txt | 257 ---
.../q51.native_iceberg_compat/simplified.txt | 62 -
.../approved-plans-v1_4-spark4_0/q51/explain.txt | 257 ---
.../approved-plans-v1_4-spark4_0/q51/extended.txt | 53 -
.../q51/simplified.txt | 62 -
.../q52.native_datafusion/explain.txt | 111 -
.../q52.native_datafusion/simplified.txt | 21 -
.../q52.native_iceberg_compat/explain.txt | 111 -
.../q52.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark4_0/q52/explain.txt | 111 -
.../approved-plans-v1_4-spark4_0/q52/extended.txt | 21 -
.../q52/simplified.txt | 21 -
.../q53.native_datafusion/explain.txt | 202 --
.../q53.native_datafusion/simplified.txt | 53 -
.../q53.native_iceberg_compat/explain.txt | 198 --
.../q53.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q53/explain.txt | 198 --
.../approved-plans-v1_4-spark4_0/q53/extended.txt | 37 -
.../q53/simplified.txt | 41 -
.../q54.native_datafusion/explain.txt | 501 -----
.../q54.native_datafusion/simplified.txt | 129 --
.../q54.native_iceberg_compat/explain.txt | 496 -----
.../q54.native_iceberg_compat/simplified.txt | 103 -
.../approved-plans-v1_4-spark4_0/q54/explain.txt | 496 -----
.../approved-plans-v1_4-spark4_0/q54/extended.txt | 95 -
.../q54/simplified.txt | 103 -
.../q55.native_datafusion/explain.txt | 111 -
.../q55.native_datafusion/simplified.txt | 21 -
.../q55.native_iceberg_compat/explain.txt | 111 -
.../q55.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4-spark4_0/q55/explain.txt | 111 -
.../approved-plans-v1_4-spark4_0/q55/extended.txt | 21 -
.../q55/simplified.txt | 21 -
.../q56.native_datafusion/explain.txt | 420 ----
.../q56.native_datafusion/simplified.txt | 106 -
.../q56.native_iceberg_compat/explain.txt | 385 ----
.../q56.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark4_0/q56/explain.txt | 385 ----
.../approved-plans-v1_4-spark4_0/q56/extended.txt | 100 -
.../q56/simplified.txt | 74 -
.../q57.native_datafusion/explain.txt | 304 ---
.../q57.native_datafusion/simplified.txt | 87 -
.../q57.native_iceberg_compat/explain.txt | 289 ---
.../q57.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark4_0/q57/explain.txt | 289 ---
.../approved-plans-v1_4-spark4_0/q57/extended.txt | 105 -
.../q57/simplified.txt | 71 -
.../q58.native_datafusion/explain.txt | 398 ----
.../q58.native_datafusion/simplified.txt | 98 -
.../q58.native_iceberg_compat/explain.txt | 383 ----
.../q58.native_iceberg_compat/simplified.txt | 77 -
.../approved-plans-v1_4-spark4_0/q58/explain.txt | 383 ----
.../approved-plans-v1_4-spark4_0/q58/extended.txt | 116 -
.../q58/simplified.txt | 77 -
.../q59.native_datafusion/explain.txt | 239 --
.../q59.native_datafusion/simplified.txt | 44 -
.../q59.native_iceberg_compat/explain.txt | 239 --
.../q59.native_iceberg_compat/simplified.txt | 44 -
.../approved-plans-v1_4-spark4_0/q59/explain.txt | 239 --
.../approved-plans-v1_4-spark4_0/q59/extended.txt | 53 -
.../q59/simplified.txt | 44 -
.../q6.native_datafusion/explain.txt | 306 ---
.../q6.native_datafusion/simplified.txt | 70 -
.../q6.native_iceberg_compat/explain.txt | 310 ---
.../q6.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4-spark4_0/q6/explain.txt | 310 ---
.../approved-plans-v1_4-spark4_0/q6/extended.txt | 59 -
.../approved-plans-v1_4-spark4_0/q6/simplified.txt | 63 -
.../q60.native_datafusion/explain.txt | 421 ----
.../q60.native_datafusion/simplified.txt | 106 -
.../q60.native_iceberg_compat/explain.txt | 386 ----
.../q60.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark4_0/q60/explain.txt | 386 ----
.../approved-plans-v1_4-spark4_0/q60/extended.txt | 100 -
.../q60/simplified.txt | 74 -
.../q61.native_datafusion/explain.txt | 425 ----
.../q61.native_datafusion/simplified.txt | 108 -
.../q61.native_iceberg_compat/explain.txt | 397 ----
.../q61.native_iceberg_compat/simplified.txt | 79 -
.../approved-plans-v1_4-spark4_0/q61/explain.txt | 397 ----
.../approved-plans-v1_4-spark4_0/q61/extended.txt | 88 -
.../q61/simplified.txt | 79 -
.../q62.native_datafusion/explain.txt | 168 --
.../q62.native_datafusion/simplified.txt | 31 -
.../q62.native_iceberg_compat/explain.txt | 168 --
.../q62.native_iceberg_compat/simplified.txt | 31 -
.../approved-plans-v1_4-spark4_0/q62/explain.txt | 168 --
.../approved-plans-v1_4-spark4_0/q62/extended.txt | 31 -
.../q62/simplified.txt | 31 -
.../q63.native_datafusion/explain.txt | 202 --
.../q63.native_datafusion/simplified.txt | 53 -
.../q63.native_iceberg_compat/explain.txt | 198 --
.../q63.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q63/explain.txt | 198 --
.../approved-plans-v1_4-spark4_0/q63/extended.txt | 37 -
.../q63/simplified.txt | 41 -
.../q64.native_datafusion/explain.txt | 1029 ---------
.../q64.native_datafusion/simplified.txt | 206 --
.../q64.native_iceberg_compat/explain.txt | 1011 ---------
.../q64.native_iceberg_compat/simplified.txt | 192 --
.../approved-plans-v1_4-spark4_0/q64/explain.txt | 1011 ---------
.../approved-plans-v1_4-spark4_0/q64/extended.txt | 247 --
.../q64/simplified.txt | 192 --
.../q65.native_datafusion/explain.txt | 286 ---
.../q65.native_datafusion/simplified.txt | 71 -
.../q65.native_iceberg_compat/explain.txt | 264 ---
.../q65.native_iceberg_compat/simplified.txt | 51 -
.../approved-plans-v1_4-spark4_0/q65/explain.txt | 264 ---
.../approved-plans-v1_4-spark4_0/q65/extended.txt | 52 -
.../q65/simplified.txt | 51 -
.../q66.native_datafusion/explain.txt | 349 ---
.../q66.native_datafusion/simplified.txt | 90 -
.../q66.native_iceberg_compat/explain.txt | 317 ---
.../q66.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark4_0/q66/explain.txt | 317 ---
.../approved-plans-v1_4-spark4_0/q66/extended.txt | 70 -
.../q66/simplified.txt | 61 -
.../q67.native_datafusion/explain.txt | 222 --
.../q67.native_datafusion/simplified.txt | 57 -
.../q67.native_iceberg_compat/explain.txt | 222 --
.../q67.native_iceberg_compat/simplified.txt | 48 -
.../approved-plans-v1_4-spark4_0/q67/explain.txt | 222 --
.../approved-plans-v1_4-spark4_0/q67/extended.txt | 42 -
.../q67/simplified.txt | 48 -
.../q68.native_datafusion/explain.txt | 267 ---
.../q68.native_datafusion/simplified.txt | 67 -
.../q68.native_iceberg_compat/explain.txt | 256 ---
.../q68.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4-spark4_0/q68/explain.txt | 256 ---
.../approved-plans-v1_4-spark4_0/q68/extended.txt | 49 -
.../q68/simplified.txt | 49 -
.../q69.native_datafusion/explain.txt | 290 ---
.../q69.native_datafusion/simplified.txt | 76 -
.../q69.native_iceberg_compat/explain.txt | 301 ---
.../q69.native_iceberg_compat/simplified.txt | 72 -
.../approved-plans-v1_4-spark4_0/q69/explain.txt | 301 ---
.../approved-plans-v1_4-spark4_0/q69/extended.txt | 62 -
.../q69/simplified.txt | 72 -
.../q7.native_datafusion/explain.txt | 217 --
.../q7.native_datafusion/simplified.txt | 54 -
.../q7.native_iceberg_compat/explain.txt | 212 --
.../q7.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q7/explain.txt | 212 --
.../approved-plans-v1_4-spark4_0/q7/extended.txt | 39 -
.../approved-plans-v1_4-spark4_0/q7/simplified.txt | 41 -
.../q70.native_datafusion/explain.txt | 305 ---
.../q70.native_datafusion/simplified.txt | 80 -
.../q70.native_iceberg_compat/explain.txt | 309 ---
.../q70.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark4_0/q70/explain.txt | 309 ---
.../approved-plans-v1_4-spark4_0/q70/extended.txt | 61 -
.../q70/simplified.txt | 74 -
.../q71.native_datafusion/explain.txt | 262 ---
.../q71.native_datafusion/simplified.txt | 71 -
.../q71.native_iceberg_compat/explain.txt | 251 ---
.../q71.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4-spark4_0/q71/explain.txt | 251 ---
.../approved-plans-v1_4-spark4_0/q71/extended.txt | 53 -
.../q71/simplified.txt | 49 -
.../q72.native_datafusion/explain.txt | 428 ----
.../q72.native_datafusion/simplified.txt | 107 -
.../q72.native_iceberg_compat/explain.txt | 402 ----
.../q72.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4-spark4_0/q72/explain.txt | 402 ----
.../approved-plans-v1_4-spark4_0/q72/extended.txt | 72 -
.../q72/simplified.txt | 74 -
.../q73.native_datafusion/explain.txt | 231 --
.../q73.native_datafusion/simplified.txt | 59 -
.../q73.native_iceberg_compat/explain.txt | 222 --
.../q73.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v1_4-spark4_0/q73/explain.txt | 222 --
.../approved-plans-v1_4-spark4_0/q73/extended.txt | 41 -
.../q73/simplified.txt | 43 -
.../q74.native_datafusion/explain.txt | 513 -----
.../q74.native_datafusion/simplified.txt | 130 --
.../q74.native_iceberg_compat/explain.txt | 470 ----
.../q74.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v1_4-spark4_0/q74/explain.txt | 470 ----
.../approved-plans-v1_4-spark4_0/q74/extended.txt | 90 -
.../q74/simplified.txt | 90 -
.../q75.native_datafusion/explain.txt | 754 -------
.../q75.native_datafusion/simplified.txt | 173 --
.../q75.native_iceberg_compat/explain.txt | 742 ------
.../q75.native_iceberg_compat/simplified.txt | 144 --
.../approved-plans-v1_4-spark4_0/q75/explain.txt | 742 ------
.../approved-plans-v1_4-spark4_0/q75/extended.txt | 172 --
.../q75/simplified.txt | 144 --
.../q76.native_datafusion/explain.txt | 200 --
.../q76.native_datafusion/simplified.txt | 37 -
.../q76.native_iceberg_compat/explain.txt | 200 --
.../q76.native_iceberg_compat/simplified.txt | 37 -
.../approved-plans-v1_4-spark4_0/q76/explain.txt | 200 --
.../approved-plans-v1_4-spark4_0/q76/extended.txt | 47 -
.../q76/simplified.txt | 37 -
.../q77.native_datafusion/explain.txt | 575 -----
.../q77.native_datafusion/simplified.txt | 150 --
.../q77.native_iceberg_compat/explain.txt | 518 -----
.../q77.native_iceberg_compat/simplified.txt | 111 -
.../approved-plans-v1_4-spark4_0/q77/explain.txt | 518 -----
.../approved-plans-v1_4-spark4_0/q77/extended.txt | 117 -
.../q77/simplified.txt | 111 -
.../q78.native_datafusion/explain.txt | 417 ----
.../q78.native_datafusion/simplified.txt | 87 -
.../q78.native_iceberg_compat/explain.txt | 405 ----
.../q78.native_iceberg_compat/simplified.txt | 78 -
.../approved-plans-v1_4-spark4_0/q78/explain.txt | 405 ----
.../approved-plans-v1_4-spark4_0/q78/extended.txt | 80 -
.../q78/simplified.txt | 78 -
.../q79.native_datafusion/explain.txt | 217 --
.../q79.native_datafusion/simplified.txt | 54 -
.../q79.native_iceberg_compat/explain.txt | 212 --
.../q79.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q79/explain.txt | 212 --
.../approved-plans-v1_4-spark4_0/q79/extended.txt | 39 -
.../q79/simplified.txt | 41 -
.../q8.native_datafusion/explain.txt | 284 ---
.../q8.native_datafusion/simplified.txt | 63 -
.../q8.native_iceberg_compat/explain.txt | 284 ---
.../q8.native_iceberg_compat/simplified.txt | 54 -
.../approved-plans-v1_4-spark4_0/q8/explain.txt | 284 ---
.../approved-plans-v1_4-spark4_0/q8/extended.txt | 52 -
.../approved-plans-v1_4-spark4_0/q8/simplified.txt | 54 -
.../q80.native_datafusion/explain.txt | 623 ------
.../q80.native_datafusion/simplified.txt | 124 --
.../q80.native_iceberg_compat/explain.txt | 611 -----
.../q80.native_iceberg_compat/simplified.txt | 115 -
.../approved-plans-v1_4-spark4_0/q80/explain.txt | 611 -----
.../approved-plans-v1_4-spark4_0/q80/extended.txt | 131 --
.../q80/simplified.txt | 115 -
.../q81.native_datafusion/explain.txt | 346 ---
.../q81.native_datafusion/simplified.txt | 86 -
.../q81.native_iceberg_compat/explain.txt | 318 ---
.../q81.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4-spark4_0/q81/explain.txt | 318 ---
.../approved-plans-v1_4-spark4_0/q81/extended.txt | 65 -
.../q81/simplified.txt | 61 -
.../q82.native_datafusion/explain.txt | 181 --
.../q82.native_datafusion/simplified.txt | 45 -
.../q82.native_iceberg_compat/explain.txt | 183 --
.../q82.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark4_0/q82/explain.txt | 183 --
.../approved-plans-v1_4-spark4_0/q82/extended.txt | 34 -
.../q82/simplified.txt | 36 -
.../q83.ansi.native_datafusion/explain.txt | 379 ----
.../q83.ansi.native_datafusion/simplified.txt | 91 -
.../q83.ansi.native_iceberg_compat/explain.txt | 364 ---
.../q83.ansi.native_iceberg_compat/simplified.txt | 70 -
.../q83.ansi/explain.txt | 364 ---
.../q83.ansi/extended.txt | 105 -
.../q83.ansi/simplified.txt | 70 -
.../q84.native_datafusion/explain.txt | 190 --
.../q84.native_datafusion/simplified.txt | 35 -
.../q84.native_iceberg_compat/explain.txt | 190 --
.../q84.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4-spark4_0/q84/explain.txt | 190 --
.../approved-plans-v1_4-spark4_0/q84/extended.txt | 35 -
.../q84/simplified.txt | 35 -
.../q85.native_datafusion/explain.txt | 329 ---
.../q85.native_datafusion/simplified.txt | 83 -
.../q85.native_iceberg_compat/explain.txt | 309 ---
.../q85.native_iceberg_compat/simplified.txt | 58 -
.../approved-plans-v1_4-spark4_0/q85/explain.txt | 309 ---
.../approved-plans-v1_4-spark4_0/q85/extended.txt | 56 -
.../q85/simplified.txt | 58 -
.../q86.native_datafusion/explain.txt | 168 --
.../q86.native_datafusion/simplified.txt | 44 -
.../q86.native_iceberg_compat/explain.txt | 169 --
.../q86.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark4_0/q86/explain.txt | 169 --
.../approved-plans-v1_4-spark4_0/q86/extended.txt | 32 -
.../q86/simplified.txt | 36 -
.../q87.native_datafusion/explain.txt | 336 ---
.../q87.native_datafusion/simplified.txt | 86 -
.../q87.native_iceberg_compat/explain.txt | 327 ---
.../q87.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark4_0/q87/explain.txt | 327 ---
.../approved-plans-v1_4-spark4_0/q87/extended.txt | 73 -
.../q87/simplified.txt | 71 -
.../q88.native_datafusion/explain.txt | 927 --------
.../q88.native_datafusion/simplified.txt | 195 --
.../q88.native_iceberg_compat/explain.txt | 927 --------
.../q88.native_iceberg_compat/simplified.txt | 195 --
.../approved-plans-v1_4-spark4_0/q88/explain.txt | 927 --------
.../approved-plans-v1_4-spark4_0/q88/extended.txt | 216 --
.../q88/simplified.txt | 195 --
.../q89.native_datafusion/explain.txt | 202 --
.../q89.native_datafusion/simplified.txt | 53 -
.../q89.native_iceberg_compat/explain.txt | 198 --
.../q89.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q89/explain.txt | 198 --
.../approved-plans-v1_4-spark4_0/q89/extended.txt | 37 -
.../q89/simplified.txt | 41 -
.../q9.native_datafusion/explain.txt | 283 ---
.../q9.native_datafusion/simplified.txt | 71 -
.../q9.native_iceberg_compat/explain.txt | 283 ---
.../q9.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4-spark4_0/q9/explain.txt | 283 ---
.../approved-plans-v1_4-spark4_0/q9/extended.txt | 61 -
.../approved-plans-v1_4-spark4_0/q9/simplified.txt | 71 -
.../q90.native_datafusion/explain.txt | 260 ---
.../q90.native_datafusion/simplified.txt | 52 -
.../q90.native_iceberg_compat/explain.txt | 260 ---
.../q90.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v1_4-spark4_0/q90/explain.txt | 260 ---
.../approved-plans-v1_4-spark4_0/q90/extended.txt | 55 -
.../q90/simplified.txt | 52 -
.../q91.native_datafusion/explain.txt | 299 ---
.../q91.native_datafusion/simplified.txt | 77 -
.../q91.native_iceberg_compat/explain.txt | 280 ---
.../q91.native_iceberg_compat/simplified.txt | 53 -
.../approved-plans-v1_4-spark4_0/q91/explain.txt | 280 ---
.../approved-plans-v1_4-spark4_0/q91/extended.txt | 51 -
.../q91/simplified.txt | 53 -
.../q92.native_datafusion/explain.txt | 217 --
.../q92.native_datafusion/simplified.txt | 54 -
.../q92.native_iceberg_compat/explain.txt | 208 --
.../q92.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4-spark4_0/q92/explain.txt | 208 --
.../approved-plans-v1_4-spark4_0/q92/extended.txt | 42 -
.../q92/simplified.txt | 41 -
.../q93.native_datafusion/explain.txt | 124 --
.../q93.native_datafusion/simplified.txt | 24 -
.../q93.native_iceberg_compat/explain.txt | 124 --
.../q93.native_iceberg_compat/simplified.txt | 24 -
.../approved-plans-v1_4-spark4_0/q93/explain.txt | 124 --
.../approved-plans-v1_4-spark4_0/q93/extended.txt | 24 -
.../q93/simplified.txt | 24 -
.../q94.native_datafusion/explain.txt | 235 --
.../q94.native_datafusion/simplified.txt | 45 -
.../q94.native_iceberg_compat/explain.txt | 235 --
.../q94.native_iceberg_compat/simplified.txt | 45 -
.../approved-plans-v1_4-spark4_0/q94/explain.txt | 235 --
.../approved-plans-v1_4-spark4_0/q94/extended.txt | 43 -
.../q94/simplified.txt | 45 -
.../q95.native_datafusion/explain.txt | 302 ---
.../q95.native_datafusion/simplified.txt | 58 -
.../q95.native_iceberg_compat/explain.txt | 302 ---
.../q95.native_iceberg_compat/simplified.txt | 58 -
.../approved-plans-v1_4-spark4_0/q95/explain.txt | 302 ---
.../approved-plans-v1_4-spark4_0/q95/extended.txt | 65 -
.../q95/simplified.txt | 58 -
.../q96.native_datafusion/explain.txt | 143 --
.../q96.native_datafusion/simplified.txt | 27 -
.../q96.native_iceberg_compat/explain.txt | 143 --
.../q96.native_iceberg_compat/simplified.txt | 27 -
.../approved-plans-v1_4-spark4_0/q96/explain.txt | 143 --
.../approved-plans-v1_4-spark4_0/q96/extended.txt | 27 -
.../q96/simplified.txt | 27 -
.../q97.native_datafusion/explain.txt | 174 --
.../q97.native_datafusion/simplified.txt | 41 -
.../q97.native_iceberg_compat/explain.txt | 179 --
.../q97.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4-spark4_0/q97/explain.txt | 179 --
.../approved-plans-v1_4-spark4_0/q97/extended.txt | 37 -
.../q97/simplified.txt | 36 -
.../q98.native_datafusion/explain.txt | 177 --
.../q98.native_datafusion/simplified.txt | 48 -
.../q98.native_iceberg_compat/explain.txt | 178 --
.../q98.native_iceberg_compat/simplified.txt | 40 -
.../approved-plans-v1_4-spark4_0/q98/explain.txt | 178 --
.../approved-plans-v1_4-spark4_0/q98/extended.txt | 34 -
.../q98/simplified.txt | 40 -
.../q99.native_datafusion/explain.txt | 168 --
.../q99.native_datafusion/simplified.txt | 31 -
.../q99.native_iceberg_compat/explain.txt | 168 --
.../q99.native_iceberg_compat/simplified.txt | 31 -
.../approved-plans-v1_4-spark4_0/q99/explain.txt | 168 --
.../approved-plans-v1_4-spark4_0/q99/extended.txt | 31 -
.../q99/simplified.txt | 31 -
.../q1.native_datafusion/explain.txt | 291 ---
.../q1.native_datafusion/simplified.txt | 72 -
.../q1.native_iceberg_compat/explain.txt | 269 ---
.../q1.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v1_4/q1/explain.txt | 269 ---
.../approved-plans-v1_4/q1/extended.txt | 53 -
.../approved-plans-v1_4/q1/simplified.txt | 52 -
.../q10.native_datafusion/explain.txt | 295 ---
.../q10.native_datafusion/simplified.txt | 77 -
.../q10.native_iceberg_compat/explain.txt | 306 ---
.../q10.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4/q10/explain.txt | 306 ---
.../approved-plans-v1_4/q10/extended.txt | 63 -
.../approved-plans-v1_4/q10/simplified.txt | 73 -
.../q11.native_datafusion/explain.txt | 518 -----
.../q11.native_datafusion/simplified.txt | 131 --
.../q11.native_iceberg_compat/explain.txt | 475 ----
.../q11.native_iceberg_compat/simplified.txt | 91 -
.../approved-plans-v1_4/q11/explain.txt | 475 ----
.../approved-plans-v1_4/q11/extended.txt | 91 -
.../approved-plans-v1_4/q11/simplified.txt | 91 -
.../q12.native_datafusion/explain.txt | 163 --
.../q12.native_datafusion/simplified.txt | 43 -
.../q12.native_iceberg_compat/explain.txt | 164 --
.../q12.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4/q12/explain.txt | 164 --
.../approved-plans-v1_4/q12/extended.txt | 31 -
.../approved-plans-v1_4/q12/simplified.txt | 35 -
.../q13.native_datafusion/explain.txt | 241 --
.../q13.native_datafusion/simplified.txt | 61 -
.../q13.native_iceberg_compat/explain.txt | 231 --
.../q13.native_iceberg_compat/simplified.txt | 44 -
.../approved-plans-v1_4/q13/explain.txt | 231 --
.../approved-plans-v1_4/q13/extended.txt | 42 -
.../approved-plans-v1_4/q13/simplified.txt | 44 -
.../q14a.native_datafusion/explain.txt | 822 -------
.../q14a.native_datafusion/simplified.txt | 220 --
.../q14a.native_iceberg_compat/explain.txt | 754 -------
.../q14a.native_iceberg_compat/simplified.txt | 149 --
.../approved-plans-v1_4/q14a/explain.txt | 754 -------
.../approved-plans-v1_4/q14a/extended.txt | 469 ----
.../approved-plans-v1_4/q14a/simplified.txt | 149 --
.../q14b.native_datafusion/explain.txt | 769 -------
.../q14b.native_datafusion/simplified.txt | 206 --
.../q14b.native_iceberg_compat/explain.txt | 743 -------
.../q14b.native_iceberg_compat/simplified.txt | 153 --
.../approved-plans-v1_4/q14b/explain.txt | 743 -------
.../approved-plans-v1_4/q14b/extended.txt | 339 ---
.../approved-plans-v1_4/q14b/simplified.txt | 153 --
.../q15.native_datafusion/explain.txt | 173 --
.../q15.native_datafusion/simplified.txt | 43 -
.../q15.native_iceberg_compat/explain.txt | 173 --
.../q15.native_iceberg_compat/simplified.txt | 34 -
.../approved-plans-v1_4/q15/explain.txt | 173 --
.../approved-plans-v1_4/q15/extended.txt | 32 -
.../approved-plans-v1_4/q15/simplified.txt | 34 -
.../q16.native_datafusion/explain.txt | 235 --
.../q16.native_datafusion/simplified.txt | 45 -
.../q16.native_iceberg_compat/explain.txt | 235 --
.../q16.native_iceberg_compat/simplified.txt | 45 -
.../approved-plans-v1_4/q16/explain.txt | 235 --
.../approved-plans-v1_4/q16/extended.txt | 43 -
.../approved-plans-v1_4/q16/simplified.txt | 45 -
.../q17.native_datafusion/explain.txt | 312 ---
.../q17.native_datafusion/simplified.txt | 79 -
.../q17.native_iceberg_compat/explain.txt | 319 ---
.../q17.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4/q17/explain.txt | 319 ---
.../approved-plans-v1_4/q17/extended.txt | 62 -
.../approved-plans-v1_4/q17/simplified.txt | 63 -
.../q18.native_datafusion/explain.txt | 295 ---
.../q18.native_datafusion/simplified.txt | 74 -
.../q18.native_iceberg_compat/explain.txt | 280 ---
.../q18.native_iceberg_compat/simplified.txt | 53 -
.../approved-plans-v1_4/q18/explain.txt | 280 ---
.../approved-plans-v1_4/q18/extended.txt | 51 -
.../approved-plans-v1_4/q18/simplified.txt | 53 -
.../q19.native_datafusion/explain.txt | 208 --
.../q19.native_datafusion/simplified.txt | 38 -
.../q19.native_iceberg_compat/explain.txt | 208 --
.../q19.native_iceberg_compat/simplified.txt | 38 -
.../approved-plans-v1_4/q19/explain.txt | 208 --
.../approved-plans-v1_4/q19/extended.txt | 38 -
.../approved-plans-v1_4/q19/simplified.txt | 38 -
.../q2.native_datafusion/explain.txt | 193 --
.../q2.native_datafusion/simplified.txt | 36 -
.../q2.native_iceberg_compat/explain.txt | 193 --
.../q2.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4/q2/explain.txt | 193 --
.../approved-plans-v1_4/q2/extended.txt | 48 -
.../approved-plans-v1_4/q2/simplified.txt | 36 -
.../q20.native_datafusion/explain.txt | 163 --
.../q20.native_datafusion/simplified.txt | 43 -
.../q20.native_iceberg_compat/explain.txt | 164 --
.../q20.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4/q20/explain.txt | 164 --
.../approved-plans-v1_4/q20/extended.txt | 31 -
.../approved-plans-v1_4/q20/simplified.txt | 35 -
.../q21.native_datafusion/explain.txt | 173 --
.../q21.native_datafusion/simplified.txt | 43 -
.../q21.native_iceberg_compat/explain.txt | 168 --
.../q21.native_iceberg_compat/simplified.txt | 33 -
.../approved-plans-v1_4/q21/explain.txt | 168 --
.../approved-plans-v1_4/q21/extended.txt | 31 -
.../approved-plans-v1_4/q21/simplified.txt | 33 -
.../q22.native_datafusion/explain.txt | 178 --
.../q22.native_datafusion/simplified.txt | 44 -
.../q22.native_iceberg_compat/explain.txt | 178 --
.../q22.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4/q22/explain.txt | 178 --
.../approved-plans-v1_4/q22/extended.txt | 33 -
.../approved-plans-v1_4/q22/simplified.txt | 35 -
.../q23a.native_datafusion/explain.txt | 602 -----
.../q23a.native_datafusion/simplified.txt | 142 --
.../q23a.native_iceberg_compat/explain.txt | 576 -----
.../q23a.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v1_4/q23a/explain.txt | 576 -----
.../approved-plans-v1_4/q23a/extended.txt | 146 --
.../approved-plans-v1_4/q23a/simplified.txt | 116 -
.../q23b.native_datafusion/explain.txt | 718 ------
.../q23b.native_datafusion/simplified.txt | 164 --
.../q23b.native_iceberg_compat/explain.txt | 692 ------
.../q23b.native_iceberg_compat/simplified.txt | 138 --
.../approved-plans-v1_4/q23b/explain.txt | 692 ------
.../approved-plans-v1_4/q23b/extended.txt | 198 --
.../approved-plans-v1_4/q23b/simplified.txt | 138 --
.../q24a.native_datafusion/explain.txt | 439 ----
.../q24a.native_datafusion/simplified.txt | 94 -
.../q24a.native_iceberg_compat/explain.txt | 439 ----
.../q24a.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4/q24a/explain.txt | 439 ----
.../approved-plans-v1_4/q24a/extended.txt | 96 -
.../approved-plans-v1_4/q24a/simplified.txt | 94 -
.../q24b.native_datafusion/explain.txt | 439 ----
.../q24b.native_datafusion/simplified.txt | 94 -
.../q24b.native_iceberg_compat/explain.txt | 439 ----
.../q24b.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4/q24b/explain.txt | 439 ----
.../approved-plans-v1_4/q24b/extended.txt | 96 -
.../approved-plans-v1_4/q24b/simplified.txt | 94 -
.../q25.native_datafusion/explain.txt | 312 ---
.../q25.native_datafusion/simplified.txt | 79 -
.../q25.native_iceberg_compat/explain.txt | 319 ---
.../q25.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v1_4/q25/explain.txt | 319 ---
.../approved-plans-v1_4/q25/extended.txt | 62 -
.../approved-plans-v1_4/q25/simplified.txt | 63 -
.../q26.native_datafusion/explain.txt | 217 --
.../q26.native_datafusion/simplified.txt | 54 -
.../q26.native_iceberg_compat/explain.txt | 212 --
.../q26.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q26/explain.txt | 212 --
.../approved-plans-v1_4/q26/extended.txt | 39 -
.../approved-plans-v1_4/q26/simplified.txt | 41 -
.../q27.native_datafusion/explain.txt | 222 --
.../q27.native_datafusion/simplified.txt | 55 -
.../q27.native_iceberg_compat/explain.txt | 217 --
.../q27.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4/q27/explain.txt | 217 --
.../approved-plans-v1_4/q27/extended.txt | 40 -
.../approved-plans-v1_4/q27/simplified.txt | 42 -
.../q28.native_datafusion/explain.txt | 437 ----
.../q28.native_datafusion/simplified.txt | 105 -
.../q28.native_iceberg_compat/explain.txt | 437 ----
.../q28.native_iceberg_compat/simplified.txt | 105 -
.../approved-plans-v1_4/q28/explain.txt | 437 ----
.../approved-plans-v1_4/q28/extended.txt | 78 -
.../approved-plans-v1_4/q28/simplified.txt | 105 -
.../q29.native_datafusion/explain.txt | 340 ---
.../q29.native_datafusion/simplified.txt | 86 -
.../q29.native_iceberg_compat/explain.txt | 366 ---
.../q29.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4/q29/explain.txt | 366 ---
.../approved-plans-v1_4/q29/extended.txt | 67 -
.../approved-plans-v1_4/q29/simplified.txt | 73 -
.../q3.native_datafusion/explain.txt | 111 -
.../q3.native_datafusion/simplified.txt | 21 -
.../q3.native_iceberg_compat/explain.txt | 111 -
.../q3.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4/q3/explain.txt | 111 -
.../approved-plans-v1_4/q3/extended.txt | 21 -
.../approved-plans-v1_4/q3/simplified.txt | 21 -
.../q30.native_datafusion/explain.txt | 346 ---
.../q30.native_datafusion/simplified.txt | 86 -
.../q30.native_iceberg_compat/explain.txt | 318 ---
.../q30.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4/q30/explain.txt | 318 ---
.../approved-plans-v1_4/q30/extended.txt | 65 -
.../approved-plans-v1_4/q30/simplified.txt | 61 -
.../q31.native_datafusion/explain.txt | 644 ------
.../q31.native_datafusion/simplified.txt | 166 --
.../q31.native_iceberg_compat/explain.txt | 593 -----
.../q31.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v1_4/q31/explain.txt | 593 -----
.../approved-plans-v1_4/q31/extended.txt | 126 --
.../approved-plans-v1_4/q31/simplified.txt | 116 -
.../q32.native_datafusion/explain.txt | 217 --
.../q32.native_datafusion/simplified.txt | 54 -
.../q32.native_iceberg_compat/explain.txt | 208 --
.../q32.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q32/explain.txt | 208 --
.../approved-plans-v1_4/q32/extended.txt | 42 -
.../approved-plans-v1_4/q32/simplified.txt | 41 -
.../q33.native_datafusion/explain.txt | 461 ----
.../q33.native_datafusion/simplified.txt | 115 -
.../q33.native_iceberg_compat/explain.txt | 422 ----
.../q33.native_iceberg_compat/simplified.txt | 80 -
.../approved-plans-v1_4/q33/explain.txt | 422 ----
.../approved-plans-v1_4/q33/extended.txt | 97 -
.../approved-plans-v1_4/q33/simplified.txt | 80 -
.../q34.native_datafusion/explain.txt | 231 --
.../q34.native_datafusion/simplified.txt | 59 -
.../q34.native_iceberg_compat/explain.txt | 222 --
.../q34.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v1_4/q34/explain.txt | 222 --
.../approved-plans-v1_4/q34/extended.txt | 41 -
.../approved-plans-v1_4/q34/simplified.txt | 43 -
.../q35.native_datafusion/explain.txt | 295 ---
.../q35.native_datafusion/simplified.txt | 77 -
.../q35.native_iceberg_compat/explain.txt | 306 ---
.../q35.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4/q35/explain.txt | 306 ---
.../approved-plans-v1_4/q35/extended.txt | 63 -
.../approved-plans-v1_4/q35/simplified.txt | 73 -
.../q36.native_datafusion/explain.txt | 207 --
.../q36.native_datafusion/simplified.txt | 54 -
.../q36.native_iceberg_compat/explain.txt | 203 --
.../q36.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4/q36/explain.txt | 203 --
.../approved-plans-v1_4/q36/extended.txt | 38 -
.../approved-plans-v1_4/q36/simplified.txt | 42 -
.../q37.native_datafusion/explain.txt | 181 --
.../q37.native_datafusion/simplified.txt | 45 -
.../q37.native_iceberg_compat/explain.txt | 183 --
.../q37.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4/q37/explain.txt | 183 --
.../approved-plans-v1_4/q37/extended.txt | 34 -
.../approved-plans-v1_4/q37/simplified.txt | 36 -
.../q38.native_datafusion/explain.txt | 317 ---
.../q38.native_datafusion/simplified.txt | 75 -
.../q38.native_iceberg_compat/explain.txt | 308 ---
.../q38.native_iceberg_compat/simplified.txt | 60 -
.../approved-plans-v1_4/q38/explain.txt | 308 ---
.../approved-plans-v1_4/q38/extended.txt | 70 -
.../approved-plans-v1_4/q38/simplified.txt | 60 -
.../q39a.native_datafusion/explain.txt | 330 ---
.../q39a.native_datafusion/simplified.txt | 84 -
.../q39a.native_iceberg_compat/explain.txt | 329 ---
.../q39a.native_iceberg_compat/simplified.txt | 65 -
.../approved-plans-v1_4/q39a/explain.txt | 329 ---
.../approved-plans-v1_4/q39a/extended.txt | 65 -
.../approved-plans-v1_4/q39a/simplified.txt | 65 -
.../q39b.native_datafusion/explain.txt | 330 ---
.../q39b.native_datafusion/simplified.txt | 84 -
.../q39b.native_iceberg_compat/explain.txt | 329 ---
.../q39b.native_iceberg_compat/simplified.txt | 65 -
.../approved-plans-v1_4/q39b/explain.txt | 329 ---
.../approved-plans-v1_4/q39b/extended.txt | 65 -
.../approved-plans-v1_4/q39b/simplified.txt | 65 -
.../q4.native_datafusion/explain.txt | 752 -------
.../q4.native_datafusion/simplified.txt | 191 --
.../q4.native_iceberg_compat/explain.txt | 671 ------
.../q4.native_iceberg_compat/simplified.txt | 127 --
.../approved-plans-v1_4/q4/explain.txt | 671 ------
.../approved-plans-v1_4/q4/extended.txt | 131 --
.../approved-plans-v1_4/q4/simplified.txt | 127 --
.../q40.native_datafusion/explain.txt | 221 --
.../q40.native_datafusion/simplified.txt | 45 -
.../q40.native_iceberg_compat/explain.txt | 217 --
.../q40.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4/q40/explain.txt | 217 --
.../approved-plans-v1_4/q40/extended.txt | 40 -
.../approved-plans-v1_4/q40/simplified.txt | 42 -
.../q41.native_datafusion/explain.txt | 107 -
.../q41.native_datafusion/simplified.txt | 21 -
.../q41.native_iceberg_compat/explain.txt | 107 -
.../q41.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4/q41/explain.txt | 107 -
.../approved-plans-v1_4/q41/extended.txt | 21 -
.../approved-plans-v1_4/q41/simplified.txt | 21 -
.../q42.native_datafusion/explain.txt | 111 -
.../q42.native_datafusion/simplified.txt | 21 -
.../q42.native_iceberg_compat/explain.txt | 111 -
.../q42.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4/q42/explain.txt | 111 -
.../approved-plans-v1_4/q42/extended.txt | 21 -
.../approved-plans-v1_4/q42/simplified.txt | 21 -
.../q43.native_datafusion/explain.txt | 111 -
.../q43.native_datafusion/simplified.txt | 21 -
.../q43.native_iceberg_compat/explain.txt | 111 -
.../q43.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4/q43/explain.txt | 111 -
.../approved-plans-v1_4/q43/extended.txt | 21 -
.../approved-plans-v1_4/q43/simplified.txt | 21 -
.../q44.native_datafusion/explain.txt | 227 --
.../q44.native_datafusion/simplified.txt | 59 -
.../q44.native_iceberg_compat/explain.txt | 227 --
.../q44.native_iceberg_compat/simplified.txt | 59 -
.../approved-plans-v1_4/q44/explain.txt | 227 --
.../approved-plans-v1_4/q44/extended.txt | 63 -
.../approved-plans-v1_4/q44/simplified.txt | 59 -
.../q45.native_datafusion/explain.txt | 256 ---
.../q45.native_datafusion/simplified.txt | 64 -
.../q45.native_iceberg_compat/explain.txt | 259 ---
.../q45.native_iceberg_compat/simplified.txt | 54 -
.../approved-plans-v1_4/q45/explain.txt | 259 ---
.../approved-plans-v1_4/q45/extended.txt | 47 -
.../approved-plans-v1_4/q45/simplified.txt | 54 -
.../q46.native_datafusion/explain.txt | 267 ---
.../q46.native_datafusion/simplified.txt | 67 -
.../q46.native_iceberg_compat/explain.txt | 256 ---
.../q46.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4/q46/explain.txt | 256 ---
.../approved-plans-v1_4/q46/extended.txt | 49 -
.../approved-plans-v1_4/q46/simplified.txt | 49 -
.../q47.native_datafusion/explain.txt | 304 ---
.../q47.native_datafusion/simplified.txt | 87 -
.../q47.native_iceberg_compat/explain.txt | 289 ---
.../q47.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4/q47/explain.txt | 289 ---
.../approved-plans-v1_4/q47/extended.txt | 105 -
.../approved-plans-v1_4/q47/simplified.txt | 71 -
.../q48.native_datafusion/explain.txt | 207 --
.../q48.native_datafusion/simplified.txt | 52 -
.../q48.native_iceberg_compat/explain.txt | 202 --
.../q48.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v1_4/q48/explain.txt | 202 --
.../approved-plans-v1_4/q48/extended.txt | 37 -
.../approved-plans-v1_4/q48/simplified.txt | 39 -
.../q49.native_datafusion/explain.txt | 497 -----
.../q49.native_datafusion/simplified.txt | 140 --
.../q49.native_iceberg_compat/explain.txt | 462 ----
.../q49.native_iceberg_compat/simplified.txt | 110 -
.../approved-plans-v1_4/q49/explain.txt | 462 ----
.../approved-plans-v1_4/q49/extended.txt | 94 -
.../approved-plans-v1_4/q49/simplified.txt | 110 -
.../q5.native_datafusion/explain.txt | 499 -----
.../q5.native_datafusion/simplified.txt | 137 --
.../q5.native_iceberg_compat/explain.txt | 452 ----
.../q5.native_iceberg_compat/simplified.txt | 86 -
.../approved-plans-v1_4/q5/explain.txt | 452 ----
.../approved-plans-v1_4/q5/extended.txt | 90 -
.../approved-plans-v1_4/q5/simplified.txt | 86 -
.../q50.native_datafusion/explain.txt | 208 --
.../q50.native_datafusion/simplified.txt | 52 -
.../q50.native_iceberg_compat/explain.txt | 203 --
.../q50.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v1_4/q50/explain.txt | 203 --
.../approved-plans-v1_4/q50/extended.txt | 37 -
.../approved-plans-v1_4/q50/simplified.txt | 39 -
.../q51.native_datafusion/explain.txt | 264 ---
.../q51.native_datafusion/simplified.txt | 73 -
.../q51.native_iceberg_compat/explain.txt | 257 ---
.../q51.native_iceberg_compat/simplified.txt | 62 -
.../approved-plans-v1_4/q51/explain.txt | 257 ---
.../approved-plans-v1_4/q51/extended.txt | 53 -
.../approved-plans-v1_4/q51/simplified.txt | 62 -
.../q52.native_datafusion/explain.txt | 111 -
.../q52.native_datafusion/simplified.txt | 21 -
.../q52.native_iceberg_compat/explain.txt | 111 -
.../q52.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4/q52/explain.txt | 111 -
.../approved-plans-v1_4/q52/extended.txt | 21 -
.../approved-plans-v1_4/q52/simplified.txt | 21 -
.../q53.native_datafusion/explain.txt | 202 --
.../q53.native_datafusion/simplified.txt | 53 -
.../q53.native_iceberg_compat/explain.txt | 198 --
.../q53.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q53/explain.txt | 198 --
.../approved-plans-v1_4/q53/extended.txt | 37 -
.../approved-plans-v1_4/q53/simplified.txt | 41 -
.../q54.native_datafusion/explain.txt | 497 -----
.../q54.native_datafusion/simplified.txt | 127 --
.../q54.native_iceberg_compat/explain.txt | 488 ----
.../q54.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v1_4/q54/explain.txt | 488 ----
.../approved-plans-v1_4/q54/extended.txt | 91 -
.../approved-plans-v1_4/q54/simplified.txt | 99 -
.../q55.native_datafusion/explain.txt | 111 -
.../q55.native_datafusion/simplified.txt | 21 -
.../q55.native_iceberg_compat/explain.txt | 111 -
.../q55.native_iceberg_compat/simplified.txt | 21 -
.../approved-plans-v1_4/q55/explain.txt | 111 -
.../approved-plans-v1_4/q55/extended.txt | 21 -
.../approved-plans-v1_4/q55/simplified.txt | 21 -
.../q56.native_datafusion/explain.txt | 420 ----
.../q56.native_datafusion/simplified.txt | 106 -
.../q56.native_iceberg_compat/explain.txt | 385 ----
.../q56.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4/q56/explain.txt | 385 ----
.../approved-plans-v1_4/q56/extended.txt | 100 -
.../approved-plans-v1_4/q56/simplified.txt | 74 -
.../q57.native_datafusion/explain.txt | 304 ---
.../q57.native_datafusion/simplified.txt | 87 -
.../q57.native_iceberg_compat/explain.txt | 289 ---
.../q57.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4/q57/explain.txt | 289 ---
.../approved-plans-v1_4/q57/extended.txt | 105 -
.../approved-plans-v1_4/q57/simplified.txt | 71 -
.../q58.native_datafusion/explain.txt | 455 ----
.../q58.native_datafusion/simplified.txt | 110 -
.../q58.native_iceberg_compat/explain.txt | 469 ----
.../q58.native_iceberg_compat/simplified.txt | 94 -
.../approved-plans-v1_4/q58/explain.txt | 469 ----
.../approved-plans-v1_4/q58/extended.txt | 115 -
.../approved-plans-v1_4/q58/simplified.txt | 94 -
.../q59.native_datafusion/explain.txt | 239 --
.../q59.native_datafusion/simplified.txt | 44 -
.../q59.native_iceberg_compat/explain.txt | 239 --
.../q59.native_iceberg_compat/simplified.txt | 44 -
.../approved-plans-v1_4/q59/explain.txt | 239 --
.../approved-plans-v1_4/q59/extended.txt | 53 -
.../approved-plans-v1_4/q59/simplified.txt | 44 -
.../q6.native_datafusion/explain.txt | 304 ---
.../q6.native_datafusion/simplified.txt | 69 -
.../q6.native_iceberg_compat/explain.txt | 306 ---
.../q6.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4/q6/explain.txt | 306 ---
.../approved-plans-v1_4/q6/extended.txt | 57 -
.../approved-plans-v1_4/q6/simplified.txt | 61 -
.../q60.native_datafusion/explain.txt | 420 ----
.../q60.native_datafusion/simplified.txt | 106 -
.../q60.native_iceberg_compat/explain.txt | 385 ----
.../q60.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4/q60/explain.txt | 385 ----
.../approved-plans-v1_4/q60/extended.txt | 100 -
.../approved-plans-v1_4/q60/simplified.txt | 74 -
.../q61.native_datafusion/explain.txt | 425 ----
.../q61.native_datafusion/simplified.txt | 108 -
.../q61.native_iceberg_compat/explain.txt | 397 ----
.../q61.native_iceberg_compat/simplified.txt | 79 -
.../approved-plans-v1_4/q61/explain.txt | 397 ----
.../approved-plans-v1_4/q61/extended.txt | 88 -
.../approved-plans-v1_4/q61/simplified.txt | 79 -
.../q62.native_datafusion/explain.txt | 168 --
.../q62.native_datafusion/simplified.txt | 31 -
.../q62.native_iceberg_compat/explain.txt | 168 --
.../q62.native_iceberg_compat/simplified.txt | 31 -
.../approved-plans-v1_4/q62/explain.txt | 168 --
.../approved-plans-v1_4/q62/extended.txt | 31 -
.../approved-plans-v1_4/q62/simplified.txt | 31 -
.../q63.native_datafusion/explain.txt | 202 --
.../q63.native_datafusion/simplified.txt | 53 -
.../q63.native_iceberg_compat/explain.txt | 198 --
.../q63.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q63/explain.txt | 198 --
.../approved-plans-v1_4/q63/extended.txt | 37 -
.../approved-plans-v1_4/q63/simplified.txt | 41 -
.../q64.native_datafusion/explain.txt | 1029 ---------
.../q64.native_datafusion/simplified.txt | 206 --
.../q64.native_iceberg_compat/explain.txt | 1011 ---------
.../q64.native_iceberg_compat/simplified.txt | 192 --
.../approved-plans-v1_4/q64/explain.txt | 1011 ---------
.../approved-plans-v1_4/q64/extended.txt | 247 --
.../approved-plans-v1_4/q64/simplified.txt | 192 --
.../q65.native_datafusion/explain.txt | 286 ---
.../q65.native_datafusion/simplified.txt | 71 -
.../q65.native_iceberg_compat/explain.txt | 264 ---
.../q65.native_iceberg_compat/simplified.txt | 51 -
.../approved-plans-v1_4/q65/explain.txt | 264 ---
.../approved-plans-v1_4/q65/extended.txt | 52 -
.../approved-plans-v1_4/q65/simplified.txt | 51 -
.../q66.native_datafusion/explain.txt | 349 ---
.../q66.native_datafusion/simplified.txt | 90 -
.../q66.native_iceberg_compat/explain.txt | 317 ---
.../q66.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4/q66/explain.txt | 317 ---
.../approved-plans-v1_4/q66/extended.txt | 70 -
.../approved-plans-v1_4/q66/simplified.txt | 61 -
.../q67.native_datafusion/explain.txt | 207 --
.../q67.native_datafusion/simplified.txt | 54 -
.../q67.native_iceberg_compat/explain.txt | 203 --
.../q67.native_iceberg_compat/simplified.txt | 42 -
.../approved-plans-v1_4/q67/explain.txt | 203 --
.../approved-plans-v1_4/q67/extended.txt | 38 -
.../approved-plans-v1_4/q67/simplified.txt | 42 -
.../q68.native_datafusion/explain.txt | 267 ---
.../q68.native_datafusion/simplified.txt | 67 -
.../q68.native_iceberg_compat/explain.txt | 256 ---
.../q68.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4/q68/explain.txt | 256 ---
.../approved-plans-v1_4/q68/extended.txt | 49 -
.../approved-plans-v1_4/q68/simplified.txt | 49 -
.../q69.native_datafusion/explain.txt | 290 ---
.../q69.native_datafusion/simplified.txt | 76 -
.../q69.native_iceberg_compat/explain.txt | 301 ---
.../q69.native_iceberg_compat/simplified.txt | 72 -
.../approved-plans-v1_4/q69/explain.txt | 301 ---
.../approved-plans-v1_4/q69/extended.txt | 62 -
.../approved-plans-v1_4/q69/simplified.txt | 72 -
.../q7.native_datafusion/explain.txt | 217 --
.../q7.native_datafusion/simplified.txt | 54 -
.../q7.native_iceberg_compat/explain.txt | 212 --
.../q7.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q7/explain.txt | 212 --
.../approved-plans-v1_4/q7/extended.txt | 39 -
.../approved-plans-v1_4/q7/simplified.txt | 41 -
.../q70.native_datafusion/explain.txt | 300 ---
.../q70.native_datafusion/simplified.txt | 79 -
.../q70.native_iceberg_compat/explain.txt | 304 ---
.../q70.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v1_4/q70/explain.txt | 304 ---
.../approved-plans-v1_4/q70/extended.txt | 60 -
.../approved-plans-v1_4/q70/simplified.txt | 73 -
.../q71.native_datafusion/explain.txt | 262 ---
.../q71.native_datafusion/simplified.txt | 71 -
.../q71.native_iceberg_compat/explain.txt | 251 ---
.../q71.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v1_4/q71/explain.txt | 251 ---
.../approved-plans-v1_4/q71/extended.txt | 53 -
.../approved-plans-v1_4/q71/simplified.txt | 49 -
.../q72.native_datafusion/explain.txt | 428 ----
.../q72.native_datafusion/simplified.txt | 107 -
.../q72.native_iceberg_compat/explain.txt | 402 ----
.../q72.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v1_4/q72/explain.txt | 402 ----
.../approved-plans-v1_4/q72/extended.txt | 72 -
.../approved-plans-v1_4/q72/simplified.txt | 74 -
.../q73.native_datafusion/explain.txt | 231 --
.../q73.native_datafusion/simplified.txt | 59 -
.../q73.native_iceberg_compat/explain.txt | 222 --
.../q73.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v1_4/q73/explain.txt | 222 --
.../approved-plans-v1_4/q73/extended.txt | 41 -
.../approved-plans-v1_4/q73/simplified.txt | 43 -
.../q74.native_datafusion/explain.txt | 513 -----
.../q74.native_datafusion/simplified.txt | 130 --
.../q74.native_iceberg_compat/explain.txt | 470 ----
.../q74.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v1_4/q74/explain.txt | 470 ----
.../approved-plans-v1_4/q74/extended.txt | 90 -
.../approved-plans-v1_4/q74/simplified.txt | 90 -
.../q75.native_datafusion/explain.txt | 754 -------
.../q75.native_datafusion/simplified.txt | 173 --
.../q75.native_iceberg_compat/explain.txt | 742 ------
.../q75.native_iceberg_compat/simplified.txt | 144 --
.../approved-plans-v1_4/q75/explain.txt | 742 ------
.../approved-plans-v1_4/q75/extended.txt | 172 --
.../approved-plans-v1_4/q75/simplified.txt | 144 --
.../q76.native_datafusion/explain.txt | 200 --
.../q76.native_datafusion/simplified.txt | 37 -
.../q76.native_iceberg_compat/explain.txt | 200 --
.../q76.native_iceberg_compat/simplified.txt | 37 -
.../approved-plans-v1_4/q76/explain.txt | 200 --
.../approved-plans-v1_4/q76/extended.txt | 47 -
.../approved-plans-v1_4/q76/simplified.txt | 37 -
.../q77.native_datafusion/explain.txt | 575 -----
.../q77.native_datafusion/simplified.txt | 150 --
.../q77.native_iceberg_compat/explain.txt | 518 -----
.../q77.native_iceberg_compat/simplified.txt | 111 -
.../approved-plans-v1_4/q77/explain.txt | 518 -----
.../approved-plans-v1_4/q77/extended.txt | 117 -
.../approved-plans-v1_4/q77/simplified.txt | 111 -
.../q78.native_datafusion/explain.txt | 417 ----
.../q78.native_datafusion/simplified.txt | 87 -
.../q78.native_iceberg_compat/explain.txt | 405 ----
.../q78.native_iceberg_compat/simplified.txt | 78 -
.../approved-plans-v1_4/q78/explain.txt | 405 ----
.../approved-plans-v1_4/q78/extended.txt | 80 -
.../approved-plans-v1_4/q78/simplified.txt | 78 -
.../q79.native_datafusion/explain.txt | 217 --
.../q79.native_datafusion/simplified.txt | 54 -
.../q79.native_iceberg_compat/explain.txt | 212 --
.../q79.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q79/explain.txt | 212 --
.../approved-plans-v1_4/q79/extended.txt | 39 -
.../approved-plans-v1_4/q79/simplified.txt | 41 -
.../q8.native_datafusion/explain.txt | 284 ---
.../q8.native_datafusion/simplified.txt | 63 -
.../q8.native_iceberg_compat/explain.txt | 284 ---
.../q8.native_iceberg_compat/simplified.txt | 54 -
.../approved-plans-v1_4/q8/explain.txt | 284 ---
.../approved-plans-v1_4/q8/extended.txt | 52 -
.../approved-plans-v1_4/q8/simplified.txt | 54 -
.../q80.native_datafusion/explain.txt | 623 ------
.../q80.native_datafusion/simplified.txt | 124 --
.../q80.native_iceberg_compat/explain.txt | 611 -----
.../q80.native_iceberg_compat/simplified.txt | 115 -
.../approved-plans-v1_4/q80/explain.txt | 611 -----
.../approved-plans-v1_4/q80/extended.txt | 131 --
.../approved-plans-v1_4/q80/simplified.txt | 115 -
.../q81.native_datafusion/explain.txt | 346 ---
.../q81.native_datafusion/simplified.txt | 86 -
.../q81.native_iceberg_compat/explain.txt | 318 ---
.../q81.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v1_4/q81/explain.txt | 318 ---
.../approved-plans-v1_4/q81/extended.txt | 65 -
.../approved-plans-v1_4/q81/simplified.txt | 61 -
.../q82.native_datafusion/explain.txt | 181 --
.../q82.native_datafusion/simplified.txt | 45 -
.../q82.native_iceberg_compat/explain.txt | 183 --
.../q82.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4/q82/explain.txt | 183 --
.../approved-plans-v1_4/q82/extended.txt | 34 -
.../approved-plans-v1_4/q82/simplified.txt | 36 -
.../q83.native_datafusion/explain.txt | 439 ----
.../q83.native_datafusion/simplified.txt | 104 -
.../q83.native_iceberg_compat/explain.txt | 453 ----
.../q83.native_iceberg_compat/simplified.txt | 88 -
.../approved-plans-v1_4/q83/explain.txt | 453 ----
.../approved-plans-v1_4/q83/extended.txt | 119 -
.../approved-plans-v1_4/q83/simplified.txt | 88 -
.../q84.native_datafusion/explain.txt | 190 --
.../q84.native_datafusion/simplified.txt | 35 -
.../q84.native_iceberg_compat/explain.txt | 190 --
.../q84.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v1_4/q84/explain.txt | 190 --
.../approved-plans-v1_4/q84/extended.txt | 35 -
.../approved-plans-v1_4/q84/simplified.txt | 35 -
.../q85.native_datafusion/explain.txt | 329 ---
.../q85.native_datafusion/simplified.txt | 83 -
.../q85.native_iceberg_compat/explain.txt | 309 ---
.../q85.native_iceberg_compat/simplified.txt | 58 -
.../approved-plans-v1_4/q85/explain.txt | 309 ---
.../approved-plans-v1_4/q85/extended.txt | 56 -
.../approved-plans-v1_4/q85/simplified.txt | 58 -
.../q86.native_datafusion/explain.txt | 168 --
.../q86.native_datafusion/simplified.txt | 44 -
.../q86.native_iceberg_compat/explain.txt | 169 --
.../q86.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4/q86/explain.txt | 169 --
.../approved-plans-v1_4/q86/extended.txt | 32 -
.../approved-plans-v1_4/q86/simplified.txt | 36 -
.../q87.native_datafusion/explain.txt | 336 ---
.../q87.native_datafusion/simplified.txt | 86 -
.../q87.native_iceberg_compat/explain.txt | 327 ---
.../q87.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4/q87/explain.txt | 327 ---
.../approved-plans-v1_4/q87/extended.txt | 73 -
.../approved-plans-v1_4/q87/simplified.txt | 71 -
.../q88.native_datafusion/explain.txt | 927 --------
.../q88.native_datafusion/simplified.txt | 195 --
.../q88.native_iceberg_compat/explain.txt | 927 --------
.../q88.native_iceberg_compat/simplified.txt | 195 --
.../approved-plans-v1_4/q88/explain.txt | 927 --------
.../approved-plans-v1_4/q88/extended.txt | 216 --
.../approved-plans-v1_4/q88/simplified.txt | 195 --
.../q89.native_datafusion/explain.txt | 202 --
.../q89.native_datafusion/simplified.txt | 53 -
.../q89.native_iceberg_compat/explain.txt | 198 --
.../q89.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q89/explain.txt | 198 --
.../approved-plans-v1_4/q89/extended.txt | 37 -
.../approved-plans-v1_4/q89/simplified.txt | 41 -
.../q9.native_datafusion/explain.txt | 283 ---
.../q9.native_datafusion/simplified.txt | 71 -
.../q9.native_iceberg_compat/explain.txt | 283 ---
.../q9.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v1_4/q9/explain.txt | 283 ---
.../approved-plans-v1_4/q9/extended.txt | 61 -
.../approved-plans-v1_4/q9/simplified.txt | 71 -
.../q90.native_datafusion/explain.txt | 260 ---
.../q90.native_datafusion/simplified.txt | 52 -
.../q90.native_iceberg_compat/explain.txt | 260 ---
.../q90.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v1_4/q90/explain.txt | 260 ---
.../approved-plans-v1_4/q90/extended.txt | 55 -
.../approved-plans-v1_4/q90/simplified.txt | 52 -
.../q91.native_datafusion/explain.txt | 299 ---
.../q91.native_datafusion/simplified.txt | 77 -
.../q91.native_iceberg_compat/explain.txt | 280 ---
.../q91.native_iceberg_compat/simplified.txt | 53 -
.../approved-plans-v1_4/q91/explain.txt | 280 ---
.../approved-plans-v1_4/q91/extended.txt | 51 -
.../approved-plans-v1_4/q91/simplified.txt | 53 -
.../q92.native_datafusion/explain.txt | 217 --
.../q92.native_datafusion/simplified.txt | 54 -
.../q92.native_iceberg_compat/explain.txt | 208 --
.../q92.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v1_4/q92/explain.txt | 208 --
.../approved-plans-v1_4/q92/extended.txt | 42 -
.../approved-plans-v1_4/q92/simplified.txt | 41 -
.../q93.native_datafusion/explain.txt | 124 --
.../q93.native_datafusion/simplified.txt | 24 -
.../q93.native_iceberg_compat/explain.txt | 124 --
.../q93.native_iceberg_compat/simplified.txt | 24 -
.../approved-plans-v1_4/q93/explain.txt | 124 --
.../approved-plans-v1_4/q93/extended.txt | 24 -
.../approved-plans-v1_4/q93/simplified.txt | 24 -
.../q94.native_datafusion/explain.txt | 235 --
.../q94.native_datafusion/simplified.txt | 45 -
.../q94.native_iceberg_compat/explain.txt | 235 --
.../q94.native_iceberg_compat/simplified.txt | 45 -
.../approved-plans-v1_4/q94/explain.txt | 235 --
.../approved-plans-v1_4/q94/extended.txt | 43 -
.../approved-plans-v1_4/q94/simplified.txt | 45 -
.../q95.native_datafusion/explain.txt | 302 ---
.../q95.native_datafusion/simplified.txt | 58 -
.../q95.native_iceberg_compat/explain.txt | 302 ---
.../q95.native_iceberg_compat/simplified.txt | 58 -
.../approved-plans-v1_4/q95/explain.txt | 302 ---
.../approved-plans-v1_4/q95/extended.txt | 65 -
.../approved-plans-v1_4/q95/simplified.txt | 58 -
.../q96.native_datafusion/explain.txt | 143 --
.../q96.native_datafusion/simplified.txt | 27 -
.../q96.native_iceberg_compat/explain.txt | 143 --
.../q96.native_iceberg_compat/simplified.txt | 27 -
.../approved-plans-v1_4/q96/explain.txt | 143 --
.../approved-plans-v1_4/q96/extended.txt | 27 -
.../approved-plans-v1_4/q96/simplified.txt | 27 -
.../q97.native_datafusion/explain.txt | 174 --
.../q97.native_datafusion/simplified.txt | 41 -
.../q97.native_iceberg_compat/explain.txt | 179 --
.../q97.native_iceberg_compat/simplified.txt | 36 -
.../approved-plans-v1_4/q97/explain.txt | 179 --
.../approved-plans-v1_4/q97/extended.txt | 37 -
.../approved-plans-v1_4/q97/simplified.txt | 36 -
.../q98.native_datafusion/explain.txt | 177 --
.../q98.native_datafusion/simplified.txt | 48 -
.../q98.native_iceberg_compat/explain.txt | 178 --
.../q98.native_iceberg_compat/simplified.txt | 40 -
.../approved-plans-v1_4/q98/explain.txt | 178 --
.../approved-plans-v1_4/q98/extended.txt | 34 -
.../approved-plans-v1_4/q98/simplified.txt | 40 -
.../q99.native_datafusion/explain.txt | 168 --
.../q99.native_datafusion/simplified.txt | 31 -
.../q99.native_iceberg_compat/explain.txt | 168 --
.../q99.native_iceberg_compat/simplified.txt | 31 -
.../approved-plans-v1_4/q99/explain.txt | 168 --
.../approved-plans-v1_4/q99/extended.txt | 31 -
.../approved-plans-v1_4/q99/simplified.txt | 31 -
.../q10a.native_datafusion/explain.txt | 281 ---
.../q10a.native_datafusion/simplified.txt | 74 -
.../q10a.native_iceberg_compat/explain.txt | 267 ---
.../q10a.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v2_7-spark3_5/q10a/explain.txt | 267 ---
.../approved-plans-v2_7-spark3_5/q10a/extended.txt | 56 -
.../q10a/simplified.txt | 52 -
.../q11.native_datafusion/explain.txt | 513 -----
.../q11.native_datafusion/simplified.txt | 130 --
.../q11.native_iceberg_compat/explain.txt | 470 ----
.../q11.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v2_7-spark3_5/q11/explain.txt | 470 ----
.../approved-plans-v2_7-spark3_5/q11/extended.txt | 90 -
.../q11/simplified.txt | 90 -
.../q12.native_datafusion/explain.txt | 163 --
.../q12.native_datafusion/simplified.txt | 43 -
.../q12.native_iceberg_compat/explain.txt | 164 --
.../q12.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v2_7-spark3_5/q12/explain.txt | 164 --
.../approved-plans-v2_7-spark3_5/q12/extended.txt | 31 -
.../q12/simplified.txt | 35 -
.../q14.native_datafusion/explain.txt | 769 -------
.../q14.native_datafusion/simplified.txt | 206 --
.../q14.native_iceberg_compat/explain.txt | 743 -------
.../q14.native_iceberg_compat/simplified.txt | 153 --
.../approved-plans-v2_7-spark3_5/q14/explain.txt | 743 -------
.../approved-plans-v2_7-spark3_5/q14/extended.txt | 339 ---
.../q14/simplified.txt | 153 --
.../q14a.native_datafusion/explain.txt | 1020 ---------
.../q14a.native_datafusion/simplified.txt | 276 ---
.../q14a.native_iceberg_compat/explain.txt | 914 --------
.../q14a.native_iceberg_compat/simplified.txt | 179 --
.../approved-plans-v2_7-spark3_5/q14a/explain.txt | 914 --------
.../approved-plans-v2_7-spark3_5/q14a/extended.txt | 2350 --------------------
.../q14a/simplified.txt | 179 --
.../q18a.native_datafusion/explain.txt | 944 --------
.../q18a.native_datafusion/simplified.txt | 241 --
.../q18a.native_iceberg_compat/explain.txt | 846 -------
.../q18a.native_iceberg_compat/simplified.txt | 160 --
.../approved-plans-v2_7-spark3_5/q18a/explain.txt | 846 -------
.../approved-plans-v2_7-spark3_5/q18a/extended.txt | 214 --
.../q18a/simplified.txt | 160 --
.../q20.native_datafusion/explain.txt | 163 --
.../q20.native_datafusion/simplified.txt | 43 -
.../q20.native_iceberg_compat/explain.txt | 164 --
.../q20.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v2_7-spark3_5/q20/explain.txt | 164 --
.../approved-plans-v2_7-spark3_5/q20/extended.txt | 31 -
.../q20/simplified.txt | 35 -
.../q22.native_datafusion/explain.txt | 170 --
.../q22.native_datafusion/simplified.txt | 43 -
.../q22.native_iceberg_compat/explain.txt | 183 --
.../q22.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v2_7-spark3_5/q22/explain.txt | 183 --
.../approved-plans-v2_7-spark3_5/q22/extended.txt | 34 -
.../q22/simplified.txt | 41 -
.../q22a.native_datafusion/explain.txt | 356 ---
.../q22a.native_datafusion/simplified.txt | 90 -
.../q22a.native_iceberg_compat/explain.txt | 301 ---
.../q22a.native_iceberg_compat/simplified.txt | 57 -
.../approved-plans-v2_7-spark3_5/q22a/explain.txt | 301 ---
.../approved-plans-v2_7-spark3_5/q22a/extended.txt | 159 --
.../q22a/simplified.txt | 57 -
.../q24.native_datafusion/explain.txt | 453 ----
.../q24.native_datafusion/simplified.txt | 99 -
.../q24.native_iceberg_compat/explain.txt | 453 ----
.../q24.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v2_7-spark3_5/q24/explain.txt | 453 ----
.../approved-plans-v2_7-spark3_5/q24/extended.txt | 99 -
.../q24/simplified.txt | 99 -
.../q27a.native_datafusion/explain.txt | 479 ----
.../q27a.native_datafusion/simplified.txt | 122 -
.../q27a.native_iceberg_compat/explain.txt | 437 ----
.../q27a.native_iceberg_compat/simplified.txt | 83 -
.../approved-plans-v2_7-spark3_5/q27a/explain.txt | 437 ----
.../approved-plans-v2_7-spark3_5/q27a/extended.txt | 99 -
.../q27a/simplified.txt | 83 -
.../q34.native_datafusion/explain.txt | 231 --
.../q34.native_datafusion/simplified.txt | 59 -
.../q34.native_iceberg_compat/explain.txt | 222 --
.../q34.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v2_7-spark3_5/q34/explain.txt | 222 --
.../approved-plans-v2_7-spark3_5/q34/extended.txt | 41 -
.../q34/simplified.txt | 43 -
.../q35.native_datafusion/explain.txt | 295 ---
.../q35.native_datafusion/simplified.txt | 77 -
.../q35.native_iceberg_compat/explain.txt | 306 ---
.../q35.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v2_7-spark3_5/q35/explain.txt | 306 ---
.../approved-plans-v2_7-spark3_5/q35/extended.txt | 63 -
.../q35/simplified.txt | 73 -
.../q35a.native_datafusion/explain.txt | 281 ---
.../q35a.native_datafusion/simplified.txt | 74 -
.../q35a.native_iceberg_compat/explain.txt | 267 ---
.../q35a.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v2_7-spark3_5/q35a/explain.txt | 267 ---
.../approved-plans-v2_7-spark3_5/q35a/extended.txt | 56 -
.../q35a/simplified.txt | 52 -
.../q36a.native_datafusion/explain.txt | 306 ---
.../q36a.native_datafusion/simplified.txt | 81 -
.../q36a.native_iceberg_compat/explain.txt | 275 ---
.../q36a.native_iceberg_compat/simplified.txt | 55 -
.../approved-plans-v2_7-spark3_5/q36a/explain.txt | 275 ---
.../approved-plans-v2_7-spark3_5/q36a/extended.txt | 105 -
.../q36a/simplified.txt | 55 -
.../q47.native_datafusion/explain.txt | 304 ---
.../q47.native_datafusion/simplified.txt | 87 -
.../q47.native_iceberg_compat/explain.txt | 289 ---
.../q47.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v2_7-spark3_5/q47/explain.txt | 289 ---
.../approved-plans-v2_7-spark3_5/q47/extended.txt | 105 -
.../q47/simplified.txt | 71 -
.../q49.native_datafusion/explain.txt | 497 -----
.../q49.native_datafusion/simplified.txt | 140 --
.../q49.native_iceberg_compat/explain.txt | 462 ----
.../q49.native_iceberg_compat/simplified.txt | 110 -
.../approved-plans-v2_7-spark3_5/q49/explain.txt | 462 ----
.../approved-plans-v2_7-spark3_5/q49/extended.txt | 94 -
.../q49/simplified.txt | 110 -
.../q51a.native_datafusion/explain.txt | 455 ----
.../q51a.native_datafusion/simplified.txt | 127 --
.../q51a.native_iceberg_compat/explain.txt | 448 ----
.../q51a.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v2_7-spark3_5/q51a/explain.txt | 448 ----
.../approved-plans-v2_7-spark3_5/q51a/extended.txt | 216 --
.../q51a/simplified.txt | 116 -
.../q57.native_datafusion/explain.txt | 304 ---
.../q57.native_datafusion/simplified.txt | 87 -
.../q57.native_iceberg_compat/explain.txt | 289 ---
.../q57.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v2_7-spark3_5/q57/explain.txt | 289 ---
.../approved-plans-v2_7-spark3_5/q57/extended.txt | 105 -
.../q57/simplified.txt | 71 -
.../q5a.native_datafusion/explain.txt | 602 -----
.../q5a.native_datafusion/simplified.txt | 167 --
.../q5a.native_iceberg_compat/explain.txt | 524 -----
.../q5a.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v2_7-spark3_5/q5a/explain.txt | 524 -----
.../approved-plans-v2_7-spark3_5/q5a/extended.txt | 269 ---
.../q5a/simplified.txt | 99 -
.../q6.native_datafusion/explain.txt | 304 ---
.../q6.native_datafusion/simplified.txt | 69 -
.../q6.native_iceberg_compat/explain.txt | 306 ---
.../q6.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v2_7-spark3_5/q6/explain.txt | 306 ---
.../approved-plans-v2_7-spark3_5/q6/extended.txt | 57 -
.../approved-plans-v2_7-spark3_5/q6/simplified.txt | 61 -
.../q64.native_datafusion/explain.txt | 1029 ---------
.../q64.native_datafusion/simplified.txt | 206 --
.../q64.native_iceberg_compat/explain.txt | 1011 ---------
.../q64.native_iceberg_compat/simplified.txt | 192 --
.../approved-plans-v2_7-spark3_5/q64/explain.txt | 1011 ---------
.../approved-plans-v2_7-spark3_5/q64/extended.txt | 247 --
.../q64/simplified.txt | 192 --
.../q67a.native_datafusion/explain.txt | 548 -----
.../q67a.native_datafusion/simplified.txt | 147 --
.../q67a.native_iceberg_compat/explain.txt | 445 ----
.../q67a.native_iceberg_compat/simplified.txt | 88 -
.../approved-plans-v2_7-spark3_5/q67a/explain.txt | 445 ----
.../approved-plans-v2_7-spark3_5/q67a/extended.txt | 298 ---
.../q67a/simplified.txt | 88 -
.../q70a.native_datafusion/explain.txt | 404 ----
.../q70a.native_datafusion/simplified.txt | 107 -
.../q70a.native_iceberg_compat/explain.txt | 408 ----
.../q70a.native_iceberg_compat/simplified.txt | 101 -
.../approved-plans-v2_7-spark3_5/q70a/explain.txt | 408 ----
.../approved-plans-v2_7-spark3_5/q70a/extended.txt | 176 --
.../q70a/simplified.txt | 101 -
.../q72.native_datafusion/explain.txt | 428 ----
.../q72.native_datafusion/simplified.txt | 107 -
.../q72.native_iceberg_compat/explain.txt | 402 ----
.../q72.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v2_7-spark3_5/q72/explain.txt | 402 ----
.../approved-plans-v2_7-spark3_5/q72/extended.txt | 72 -
.../q72/simplified.txt | 74 -
.../q74.native_datafusion/explain.txt | 513 -----
.../q74.native_datafusion/simplified.txt | 130 --
.../q74.native_iceberg_compat/explain.txt | 470 ----
.../q74.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v2_7-spark3_5/q74/explain.txt | 470 ----
.../approved-plans-v2_7-spark3_5/q74/extended.txt | 90 -
.../q74/simplified.txt | 90 -
.../q75.native_datafusion/explain.txt | 754 -------
.../q75.native_datafusion/simplified.txt | 173 --
.../q75.native_iceberg_compat/explain.txt | 742 ------
.../q75.native_iceberg_compat/simplified.txt | 144 --
.../approved-plans-v2_7-spark3_5/q75/explain.txt | 742 ------
.../approved-plans-v2_7-spark3_5/q75/extended.txt | 172 --
.../q75/simplified.txt | 144 --
.../q77a.native_datafusion/explain.txt | 678 ------
.../q77a.native_datafusion/simplified.txt | 180 --
.../q77a.native_iceberg_compat/explain.txt | 621 ------
.../q77a.native_iceberg_compat/simplified.txt | 141 --
.../approved-plans-v2_7-spark3_5/q77a/explain.txt | 621 ------
.../approved-plans-v2_7-spark3_5/q77a/extended.txt | 355 ---
.../q77a/simplified.txt | 141 --
.../q78.native_datafusion/explain.txt | 417 ----
.../q78.native_datafusion/simplified.txt | 87 -
.../q78.native_iceberg_compat/explain.txt | 405 ----
.../q78.native_iceberg_compat/simplified.txt | 78 -
.../approved-plans-v2_7-spark3_5/q78/explain.txt | 405 ----
.../approved-plans-v2_7-spark3_5/q78/extended.txt | 80 -
.../q78/simplified.txt | 78 -
.../q80a.native_datafusion/explain.txt | 695 ------
.../q80a.native_datafusion/simplified.txt | 137 --
.../q80a.native_iceberg_compat/explain.txt | 683 ------
.../q80a.native_iceberg_compat/simplified.txt | 128 --
.../approved-plans-v2_7-spark3_5/q80a/explain.txt | 683 ------
.../approved-plans-v2_7-spark3_5/q80a/extended.txt | 392 ----
.../q80a/simplified.txt | 128 --
.../q86a.native_datafusion/explain.txt | 267 ---
.../q86a.native_datafusion/simplified.txt | 71 -
.../q86a.native_iceberg_compat/explain.txt | 241 --
.../q86a.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v2_7-spark3_5/q86a/explain.txt | 241 --
.../approved-plans-v2_7-spark3_5/q86a/extended.txt | 87 -
.../q86a/simplified.txt | 49 -
.../q98.native_datafusion/explain.txt | 172 --
.../q98.native_datafusion/simplified.txt | 47 -
.../q98.native_iceberg_compat/explain.txt | 173 --
.../q98.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v2_7-spark3_5/q98/explain.txt | 173 --
.../approved-plans-v2_7-spark3_5/q98/extended.txt | 33 -
.../q98/simplified.txt | 39 -
.../q10a.native_datafusion/explain.txt | 281 ---
.../q10a.native_datafusion/simplified.txt | 74 -
.../q10a.native_iceberg_compat/explain.txt | 267 ---
.../q10a.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v2_7-spark4_0/q10a/explain.txt | 267 ---
.../approved-plans-v2_7-spark4_0/q10a/extended.txt | 56 -
.../q10a/simplified.txt | 52 -
.../q11.native_datafusion/explain.txt | 513 -----
.../q11.native_datafusion/simplified.txt | 130 --
.../q11.native_iceberg_compat/explain.txt | 470 ----
.../q11.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v2_7-spark4_0/q11/explain.txt | 470 ----
.../approved-plans-v2_7-spark4_0/q11/extended.txt | 90 -
.../q11/simplified.txt | 90 -
.../q12.native_datafusion/explain.txt | 163 --
.../q12.native_datafusion/simplified.txt | 43 -
.../q12.native_iceberg_compat/explain.txt | 164 --
.../q12.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v2_7-spark4_0/q12/explain.txt | 164 --
.../approved-plans-v2_7-spark4_0/q12/extended.txt | 31 -
.../q12/simplified.txt | 35 -
.../q14.native_datafusion/explain.txt | 773 -------
.../q14.native_datafusion/simplified.txt | 208 --
.../q14.native_iceberg_compat/explain.txt | 751 -------
.../q14.native_iceberg_compat/simplified.txt | 157 --
.../approved-plans-v2_7-spark4_0/q14/explain.txt | 751 -------
.../approved-plans-v2_7-spark4_0/q14/extended.txt | 343 ---
.../q14/simplified.txt | 157 --
.../q14a.native_datafusion/explain.txt | 1020 ---------
.../q14a.native_datafusion/simplified.txt | 276 ---
.../q14a.native_iceberg_compat/explain.txt | 914 --------
.../q14a.native_iceberg_compat/simplified.txt | 179 --
.../approved-plans-v2_7-spark4_0/q14a/explain.txt | 914 --------
.../approved-plans-v2_7-spark4_0/q14a/extended.txt | 2350 --------------------
.../q14a/simplified.txt | 179 --
.../q18a.native_datafusion/explain.txt | 944 --------
.../q18a.native_datafusion/simplified.txt | 241 --
.../q18a.native_iceberg_compat/explain.txt | 846 -------
.../q18a.native_iceberg_compat/simplified.txt | 160 --
.../approved-plans-v2_7-spark4_0/q18a/explain.txt | 846 -------
.../approved-plans-v2_7-spark4_0/q18a/extended.txt | 214 --
.../q18a/simplified.txt | 160 --
.../q20.native_datafusion/explain.txt | 163 --
.../q20.native_datafusion/simplified.txt | 43 -
.../q20.native_iceberg_compat/explain.txt | 164 --
.../q20.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v2_7-spark4_0/q20/explain.txt | 164 --
.../approved-plans-v2_7-spark4_0/q20/extended.txt | 31 -
.../q20/simplified.txt | 35 -
.../q22.native_datafusion/explain.txt | 170 --
.../q22.native_datafusion/simplified.txt | 43 -
.../q22.native_iceberg_compat/explain.txt | 183 --
.../q22.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v2_7-spark4_0/q22/explain.txt | 183 --
.../approved-plans-v2_7-spark4_0/q22/extended.txt | 34 -
.../q22/simplified.txt | 41 -
.../q22a.native_datafusion/explain.txt | 356 ---
.../q22a.native_datafusion/simplified.txt | 90 -
.../q22a.native_iceberg_compat/explain.txt | 301 ---
.../q22a.native_iceberg_compat/simplified.txt | 57 -
.../approved-plans-v2_7-spark4_0/q22a/explain.txt | 301 ---
.../approved-plans-v2_7-spark4_0/q22a/extended.txt | 159 --
.../q22a/simplified.txt | 57 -
.../q24.native_datafusion/explain.txt | 453 ----
.../q24.native_datafusion/simplified.txt | 99 -
.../q24.native_iceberg_compat/explain.txt | 453 ----
.../q24.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v2_7-spark4_0/q24/explain.txt | 453 ----
.../approved-plans-v2_7-spark4_0/q24/extended.txt | 99 -
.../q24/simplified.txt | 99 -
.../q27a.native_datafusion/explain.txt | 479 ----
.../q27a.native_datafusion/simplified.txt | 122 -
.../q27a.native_iceberg_compat/explain.txt | 437 ----
.../q27a.native_iceberg_compat/simplified.txt | 83 -
.../approved-plans-v2_7-spark4_0/q27a/explain.txt | 437 ----
.../approved-plans-v2_7-spark4_0/q27a/extended.txt | 99 -
.../q27a/simplified.txt | 83 -
.../q34.native_datafusion/explain.txt | 231 --
.../q34.native_datafusion/simplified.txt | 59 -
.../q34.native_iceberg_compat/explain.txt | 222 --
.../q34.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v2_7-spark4_0/q34/explain.txt | 222 --
.../approved-plans-v2_7-spark4_0/q34/extended.txt | 41 -
.../q34/simplified.txt | 43 -
.../q35.native_datafusion/explain.txt | 295 ---
.../q35.native_datafusion/simplified.txt | 77 -
.../q35.native_iceberg_compat/explain.txt | 306 ---
.../q35.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v2_7-spark4_0/q35/explain.txt | 306 ---
.../approved-plans-v2_7-spark4_0/q35/extended.txt | 63 -
.../q35/simplified.txt | 73 -
.../q35a.native_datafusion/explain.txt | 281 ---
.../q35a.native_datafusion/simplified.txt | 74 -
.../q35a.native_iceberg_compat/explain.txt | 267 ---
.../q35a.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v2_7-spark4_0/q35a/explain.txt | 267 ---
.../approved-plans-v2_7-spark4_0/q35a/extended.txt | 56 -
.../q35a/simplified.txt | 52 -
.../q36a.native_datafusion/explain.txt | 306 ---
.../q36a.native_datafusion/simplified.txt | 81 -
.../q36a.native_iceberg_compat/explain.txt | 275 ---
.../q36a.native_iceberg_compat/simplified.txt | 55 -
.../approved-plans-v2_7-spark4_0/q36a/explain.txt | 275 ---
.../approved-plans-v2_7-spark4_0/q36a/extended.txt | 105 -
.../q36a/simplified.txt | 55 -
.../q47.native_datafusion/explain.txt | 304 ---
.../q47.native_datafusion/simplified.txt | 87 -
.../q47.native_iceberg_compat/explain.txt | 289 ---
.../q47.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v2_7-spark4_0/q47/explain.txt | 289 ---
.../approved-plans-v2_7-spark4_0/q47/extended.txt | 105 -
.../q47/simplified.txt | 71 -
.../q49.native_datafusion/explain.txt | 497 -----
.../q49.native_datafusion/simplified.txt | 140 --
.../q49.native_iceberg_compat/explain.txt | 462 ----
.../q49.native_iceberg_compat/simplified.txt | 110 -
.../approved-plans-v2_7-spark4_0/q49/explain.txt | 462 ----
.../approved-plans-v2_7-spark4_0/q49/extended.txt | 94 -
.../q49/simplified.txt | 110 -
.../q51a.native_datafusion/explain.txt | 455 ----
.../q51a.native_datafusion/simplified.txt | 127 --
.../q51a.native_iceberg_compat/explain.txt | 448 ----
.../q51a.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v2_7-spark4_0/q51a/explain.txt | 448 ----
.../approved-plans-v2_7-spark4_0/q51a/extended.txt | 216 --
.../q51a/simplified.txt | 116 -
.../q57.native_datafusion/explain.txt | 304 ---
.../q57.native_datafusion/simplified.txt | 87 -
.../q57.native_iceberg_compat/explain.txt | 289 ---
.../q57.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v2_7-spark4_0/q57/explain.txt | 289 ---
.../approved-plans-v2_7-spark4_0/q57/extended.txt | 105 -
.../q57/simplified.txt | 71 -
.../q5a.native_datafusion/explain.txt | 602 -----
.../q5a.native_datafusion/simplified.txt | 167 --
.../q5a.native_iceberg_compat/explain.txt | 524 -----
.../q5a.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v2_7-spark4_0/q5a/explain.txt | 524 -----
.../approved-plans-v2_7-spark4_0/q5a/extended.txt | 269 ---
.../q5a/simplified.txt | 99 -
.../q6.native_datafusion/explain.txt | 306 ---
.../q6.native_datafusion/simplified.txt | 70 -
.../q6.native_iceberg_compat/explain.txt | 310 ---
.../q6.native_iceberg_compat/simplified.txt | 63 -
.../approved-plans-v2_7-spark4_0/q6/explain.txt | 310 ---
.../approved-plans-v2_7-spark4_0/q6/extended.txt | 59 -
.../approved-plans-v2_7-spark4_0/q6/simplified.txt | 63 -
.../q64.native_datafusion/explain.txt | 1029 ---------
.../q64.native_datafusion/simplified.txt | 206 --
.../q64.native_iceberg_compat/explain.txt | 1011 ---------
.../q64.native_iceberg_compat/simplified.txt | 192 --
.../approved-plans-v2_7-spark4_0/q64/explain.txt | 1011 ---------
.../approved-plans-v2_7-spark4_0/q64/extended.txt | 247 --
.../q64/simplified.txt | 192 --
.../q67a.native_datafusion/explain.txt | 548 -----
.../q67a.native_datafusion/simplified.txt | 147 --
.../q67a.native_iceberg_compat/explain.txt | 445 ----
.../q67a.native_iceberg_compat/simplified.txt | 88 -
.../approved-plans-v2_7-spark4_0/q67a/explain.txt | 445 ----
.../approved-plans-v2_7-spark4_0/q67a/extended.txt | 298 ---
.../q67a/simplified.txt | 88 -
.../q70a.native_datafusion/explain.txt | 404 ----
.../q70a.native_datafusion/simplified.txt | 107 -
.../q70a.native_iceberg_compat/explain.txt | 408 ----
.../q70a.native_iceberg_compat/simplified.txt | 101 -
.../approved-plans-v2_7-spark4_0/q70a/explain.txt | 408 ----
.../approved-plans-v2_7-spark4_0/q70a/extended.txt | 176 --
.../q70a/simplified.txt | 101 -
.../q72.native_datafusion/explain.txt | 428 ----
.../q72.native_datafusion/simplified.txt | 107 -
.../q72.native_iceberg_compat/explain.txt | 402 ----
.../q72.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v2_7-spark4_0/q72/explain.txt | 402 ----
.../approved-plans-v2_7-spark4_0/q72/extended.txt | 72 -
.../q72/simplified.txt | 74 -
.../q74.native_datafusion/explain.txt | 513 -----
.../q74.native_datafusion/simplified.txt | 130 --
.../q74.native_iceberg_compat/explain.txt | 470 ----
.../q74.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v2_7-spark4_0/q74/explain.txt | 470 ----
.../approved-plans-v2_7-spark4_0/q74/extended.txt | 90 -
.../q74/simplified.txt | 90 -
.../q75.native_datafusion/explain.txt | 754 -------
.../q75.native_datafusion/simplified.txt | 173 --
.../q75.native_iceberg_compat/explain.txt | 742 ------
.../q75.native_iceberg_compat/simplified.txt | 144 --
.../approved-plans-v2_7-spark4_0/q75/explain.txt | 742 ------
.../approved-plans-v2_7-spark4_0/q75/extended.txt | 172 --
.../q75/simplified.txt | 144 --
.../q77a.native_datafusion/explain.txt | 678 ------
.../q77a.native_datafusion/simplified.txt | 180 --
.../q77a.native_iceberg_compat/explain.txt | 621 ------
.../q77a.native_iceberg_compat/simplified.txt | 141 --
.../approved-plans-v2_7-spark4_0/q77a/explain.txt | 621 ------
.../approved-plans-v2_7-spark4_0/q77a/extended.txt | 355 ---
.../q77a/simplified.txt | 141 --
.../q78.native_datafusion/explain.txt | 417 ----
.../q78.native_datafusion/simplified.txt | 87 -
.../q78.native_iceberg_compat/explain.txt | 405 ----
.../q78.native_iceberg_compat/simplified.txt | 78 -
.../approved-plans-v2_7-spark4_0/q78/explain.txt | 405 ----
.../approved-plans-v2_7-spark4_0/q78/extended.txt | 80 -
.../q78/simplified.txt | 78 -
.../q80a.native_datafusion/explain.txt | 695 ------
.../q80a.native_datafusion/simplified.txt | 137 --
.../q80a.native_iceberg_compat/explain.txt | 683 ------
.../q80a.native_iceberg_compat/simplified.txt | 128 --
.../approved-plans-v2_7-spark4_0/q80a/explain.txt | 683 ------
.../approved-plans-v2_7-spark4_0/q80a/extended.txt | 392 ----
.../q80a/simplified.txt | 128 --
.../q86a.native_datafusion/explain.txt | 267 ---
.../q86a.native_datafusion/simplified.txt | 71 -
.../q86a.native_iceberg_compat/explain.txt | 241 --
.../q86a.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v2_7-spark4_0/q86a/explain.txt | 241 --
.../approved-plans-v2_7-spark4_0/q86a/extended.txt | 87 -
.../q86a/simplified.txt | 49 -
.../q98.native_datafusion/explain.txt | 172 --
.../q98.native_datafusion/simplified.txt | 47 -
.../q98.native_iceberg_compat/explain.txt | 173 --
.../q98.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v2_7-spark4_0/q98/explain.txt | 173 --
.../approved-plans-v2_7-spark4_0/q98/extended.txt | 33 -
.../q98/simplified.txt | 39 -
.../q10a.native_datafusion/explain.txt | 281 ---
.../q10a.native_datafusion/simplified.txt | 74 -
.../q10a.native_iceberg_compat/explain.txt | 267 ---
.../q10a.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v2_7/q10a/explain.txt | 267 ---
.../approved-plans-v2_7/q10a/extended.txt | 56 -
.../approved-plans-v2_7/q10a/simplified.txt | 52 -
.../q11.native_datafusion/explain.txt | 513 -----
.../q11.native_datafusion/simplified.txt | 130 --
.../q11.native_iceberg_compat/explain.txt | 470 ----
.../q11.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v2_7/q11/explain.txt | 470 ----
.../approved-plans-v2_7/q11/extended.txt | 90 -
.../approved-plans-v2_7/q11/simplified.txt | 90 -
.../q12.native_datafusion/explain.txt | 163 --
.../q12.native_datafusion/simplified.txt | 43 -
.../q12.native_iceberg_compat/explain.txt | 164 --
.../q12.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v2_7/q12/explain.txt | 164 --
.../approved-plans-v2_7/q12/extended.txt | 31 -
.../approved-plans-v2_7/q12/simplified.txt | 35 -
.../q14.native_datafusion/explain.txt | 769 -------
.../q14.native_datafusion/simplified.txt | 206 --
.../q14.native_iceberg_compat/explain.txt | 743 -------
.../q14.native_iceberg_compat/simplified.txt | 153 --
.../approved-plans-v2_7/q14/explain.txt | 743 -------
.../approved-plans-v2_7/q14/extended.txt | 339 ---
.../approved-plans-v2_7/q14/simplified.txt | 153 --
.../q14a.native_datafusion/explain.txt | 1020 ---------
.../q14a.native_datafusion/simplified.txt | 276 ---
.../q14a.native_iceberg_compat/explain.txt | 914 --------
.../q14a.native_iceberg_compat/simplified.txt | 179 --
.../approved-plans-v2_7/q14a/explain.txt | 914 --------
.../approved-plans-v2_7/q14a/extended.txt | 2350 --------------------
.../approved-plans-v2_7/q14a/simplified.txt | 179 --
.../q18a.native_datafusion/explain.txt | 944 --------
.../q18a.native_datafusion/simplified.txt | 241 --
.../q18a.native_iceberg_compat/explain.txt | 846 -------
.../q18a.native_iceberg_compat/simplified.txt | 160 --
.../approved-plans-v2_7/q18a/explain.txt | 846 -------
.../approved-plans-v2_7/q18a/extended.txt | 214 --
.../approved-plans-v2_7/q18a/simplified.txt | 160 --
.../q20.native_datafusion/explain.txt | 163 --
.../q20.native_datafusion/simplified.txt | 43 -
.../q20.native_iceberg_compat/explain.txt | 164 --
.../q20.native_iceberg_compat/simplified.txt | 35 -
.../approved-plans-v2_7/q20/explain.txt | 164 --
.../approved-plans-v2_7/q20/extended.txt | 31 -
.../approved-plans-v2_7/q20/simplified.txt | 35 -
.../q22.native_datafusion/explain.txt | 170 --
.../q22.native_datafusion/simplified.txt | 43 -
.../q22.native_iceberg_compat/explain.txt | 183 --
.../q22.native_iceberg_compat/simplified.txt | 41 -
.../approved-plans-v2_7/q22/explain.txt | 183 --
.../approved-plans-v2_7/q22/extended.txt | 34 -
.../approved-plans-v2_7/q22/simplified.txt | 41 -
.../q22a.native_datafusion/explain.txt | 356 ---
.../q22a.native_datafusion/simplified.txt | 90 -
.../q22a.native_iceberg_compat/explain.txt | 301 ---
.../q22a.native_iceberg_compat/simplified.txt | 57 -
.../approved-plans-v2_7/q22a/explain.txt | 301 ---
.../approved-plans-v2_7/q22a/extended.txt | 159 --
.../approved-plans-v2_7/q22a/simplified.txt | 57 -
.../q24.native_datafusion/explain.txt | 453 ----
.../q24.native_datafusion/simplified.txt | 99 -
.../q24.native_iceberg_compat/explain.txt | 453 ----
.../q24.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v2_7/q24/explain.txt | 453 ----
.../approved-plans-v2_7/q24/extended.txt | 99 -
.../approved-plans-v2_7/q24/simplified.txt | 99 -
.../q27a.native_datafusion/explain.txt | 479 ----
.../q27a.native_datafusion/simplified.txt | 122 -
.../q27a.native_iceberg_compat/explain.txt | 437 ----
.../q27a.native_iceberg_compat/simplified.txt | 83 -
.../approved-plans-v2_7/q27a/explain.txt | 437 ----
.../approved-plans-v2_7/q27a/extended.txt | 99 -
.../approved-plans-v2_7/q27a/simplified.txt | 83 -
.../q34.native_datafusion/explain.txt | 231 --
.../q34.native_datafusion/simplified.txt | 59 -
.../q34.native_iceberg_compat/explain.txt | 222 --
.../q34.native_iceberg_compat/simplified.txt | 43 -
.../approved-plans-v2_7/q34/explain.txt | 222 --
.../approved-plans-v2_7/q34/extended.txt | 41 -
.../approved-plans-v2_7/q34/simplified.txt | 43 -
.../q35.native_datafusion/explain.txt | 295 ---
.../q35.native_datafusion/simplified.txt | 77 -
.../q35.native_iceberg_compat/explain.txt | 306 ---
.../q35.native_iceberg_compat/simplified.txt | 73 -
.../approved-plans-v2_7/q35/explain.txt | 306 ---
.../approved-plans-v2_7/q35/extended.txt | 63 -
.../approved-plans-v2_7/q35/simplified.txt | 73 -
.../q35a.native_datafusion/explain.txt | 281 ---
.../q35a.native_datafusion/simplified.txt | 74 -
.../q35a.native_iceberg_compat/explain.txt | 267 ---
.../q35a.native_iceberg_compat/simplified.txt | 52 -
.../approved-plans-v2_7/q35a/explain.txt | 267 ---
.../approved-plans-v2_7/q35a/extended.txt | 56 -
.../approved-plans-v2_7/q35a/simplified.txt | 52 -
.../q36a.native_datafusion/explain.txt | 306 ---
.../q36a.native_datafusion/simplified.txt | 81 -
.../q36a.native_iceberg_compat/explain.txt | 275 ---
.../q36a.native_iceberg_compat/simplified.txt | 55 -
.../approved-plans-v2_7/q36a/explain.txt | 275 ---
.../approved-plans-v2_7/q36a/extended.txt | 105 -
.../approved-plans-v2_7/q36a/simplified.txt | 55 -
.../q47.native_datafusion/explain.txt | 304 ---
.../q47.native_datafusion/simplified.txt | 87 -
.../q47.native_iceberg_compat/explain.txt | 289 ---
.../q47.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v2_7/q47/explain.txt | 289 ---
.../approved-plans-v2_7/q47/extended.txt | 105 -
.../approved-plans-v2_7/q47/simplified.txt | 71 -
.../q49.native_datafusion/explain.txt | 497 -----
.../q49.native_datafusion/simplified.txt | 140 --
.../q49.native_iceberg_compat/explain.txt | 462 ----
.../q49.native_iceberg_compat/simplified.txt | 110 -
.../approved-plans-v2_7/q49/explain.txt | 462 ----
.../approved-plans-v2_7/q49/extended.txt | 94 -
.../approved-plans-v2_7/q49/simplified.txt | 110 -
.../q51a.native_datafusion/explain.txt | 455 ----
.../q51a.native_datafusion/simplified.txt | 127 --
.../q51a.native_iceberg_compat/explain.txt | 448 ----
.../q51a.native_iceberg_compat/simplified.txt | 116 -
.../approved-plans-v2_7/q51a/explain.txt | 448 ----
.../approved-plans-v2_7/q51a/extended.txt | 216 --
.../approved-plans-v2_7/q51a/simplified.txt | 116 -
.../q57.native_datafusion/explain.txt | 304 ---
.../q57.native_datafusion/simplified.txt | 87 -
.../q57.native_iceberg_compat/explain.txt | 289 ---
.../q57.native_iceberg_compat/simplified.txt | 71 -
.../approved-plans-v2_7/q57/explain.txt | 289 ---
.../approved-plans-v2_7/q57/extended.txt | 105 -
.../approved-plans-v2_7/q57/simplified.txt | 71 -
.../q5a.native_datafusion/explain.txt | 602 -----
.../q5a.native_datafusion/simplified.txt | 167 --
.../q5a.native_iceberg_compat/explain.txt | 524 -----
.../q5a.native_iceberg_compat/simplified.txt | 99 -
.../approved-plans-v2_7/q5a/explain.txt | 524 -----
.../approved-plans-v2_7/q5a/extended.txt | 269 ---
.../approved-plans-v2_7/q5a/simplified.txt | 99 -
.../q6.native_datafusion/explain.txt | 304 ---
.../q6.native_datafusion/simplified.txt | 69 -
.../q6.native_iceberg_compat/explain.txt | 306 ---
.../q6.native_iceberg_compat/simplified.txt | 61 -
.../approved-plans-v2_7/q6/explain.txt | 306 ---
.../approved-plans-v2_7/q6/extended.txt | 57 -
.../approved-plans-v2_7/q6/simplified.txt | 61 -
.../q64.native_datafusion/explain.txt | 1029 ---------
.../q64.native_datafusion/simplified.txt | 206 --
.../q64.native_iceberg_compat/explain.txt | 1011 ---------
.../q64.native_iceberg_compat/simplified.txt | 192 --
.../approved-plans-v2_7/q64/explain.txt | 1011 ---------
.../approved-plans-v2_7/q64/extended.txt | 247 --
.../approved-plans-v2_7/q64/simplified.txt | 192 --
.../q67a.native_datafusion/explain.txt | 533 -----
.../q67a.native_datafusion/simplified.txt | 142 --
.../q67a.native_iceberg_compat/explain.txt | 426 ----
.../q67a.native_iceberg_compat/simplified.txt | 82 -
.../approved-plans-v2_7/q67a/explain.txt | 426 ----
.../approved-plans-v2_7/q67a/extended.txt | 294 ---
.../approved-plans-v2_7/q67a/simplified.txt | 82 -
.../q70a.native_datafusion/explain.txt | 399 ----
.../q70a.native_datafusion/simplified.txt | 106 -
.../q70a.native_iceberg_compat/explain.txt | 403 ----
.../q70a.native_iceberg_compat/simplified.txt | 100 -
.../approved-plans-v2_7/q70a/explain.txt | 403 ----
.../approved-plans-v2_7/q70a/extended.txt | 173 --
.../approved-plans-v2_7/q70a/simplified.txt | 100 -
.../q72.native_datafusion/explain.txt | 428 ----
.../q72.native_datafusion/simplified.txt | 107 -
.../q72.native_iceberg_compat/explain.txt | 402 ----
.../q72.native_iceberg_compat/simplified.txt | 74 -
.../approved-plans-v2_7/q72/explain.txt | 402 ----
.../approved-plans-v2_7/q72/extended.txt | 72 -
.../approved-plans-v2_7/q72/simplified.txt | 74 -
.../q74.native_datafusion/explain.txt | 513 -----
.../q74.native_datafusion/simplified.txt | 130 --
.../q74.native_iceberg_compat/explain.txt | 470 ----
.../q74.native_iceberg_compat/simplified.txt | 90 -
.../approved-plans-v2_7/q74/explain.txt | 470 ----
.../approved-plans-v2_7/q74/extended.txt | 90 -
.../approved-plans-v2_7/q74/simplified.txt | 90 -
.../q75.native_datafusion/explain.txt | 754 -------
.../q75.native_datafusion/simplified.txt | 173 --
.../q75.native_iceberg_compat/explain.txt | 742 ------
.../q75.native_iceberg_compat/simplified.txt | 144 --
.../approved-plans-v2_7/q75/explain.txt | 742 ------
.../approved-plans-v2_7/q75/extended.txt | 172 --
.../approved-plans-v2_7/q75/simplified.txt | 144 --
.../q77a.native_datafusion/explain.txt | 678 ------
.../q77a.native_datafusion/simplified.txt | 180 --
.../q77a.native_iceberg_compat/explain.txt | 621 ------
.../q77a.native_iceberg_compat/simplified.txt | 141 --
.../approved-plans-v2_7/q77a/explain.txt | 621 ------
.../approved-plans-v2_7/q77a/extended.txt | 355 ---
.../approved-plans-v2_7/q77a/simplified.txt | 141 --
.../q78.native_datafusion/explain.txt | 417 ----
.../q78.native_datafusion/simplified.txt | 87 -
.../q78.native_iceberg_compat/explain.txt | 405 ----
.../q78.native_iceberg_compat/simplified.txt | 78 -
.../approved-plans-v2_7/q78/explain.txt | 405 ----
.../approved-plans-v2_7/q78/extended.txt | 80 -
.../approved-plans-v2_7/q78/simplified.txt | 78 -
.../q80a.native_datafusion/explain.txt | 695 ------
.../q80a.native_datafusion/simplified.txt | 137 --
.../q80a.native_iceberg_compat/explain.txt | 683 ------
.../q80a.native_iceberg_compat/simplified.txt | 128 --
.../approved-plans-v2_7/q80a/explain.txt | 683 ------
.../approved-plans-v2_7/q80a/extended.txt | 392 ----
.../approved-plans-v2_7/q80a/simplified.txt | 128 --
.../q86a.native_datafusion/explain.txt | 267 ---
.../q86a.native_datafusion/simplified.txt | 71 -
.../q86a.native_iceberg_compat/explain.txt | 241 --
.../q86a.native_iceberg_compat/simplified.txt | 49 -
.../approved-plans-v2_7/q86a/explain.txt | 241 --
.../approved-plans-v2_7/q86a/extended.txt | 87 -
.../approved-plans-v2_7/q86a/simplified.txt | 49 -
.../q98.native_datafusion/explain.txt | 172 --
.../q98.native_datafusion/simplified.txt | 47 -
.../q98.native_iceberg_compat/explain.txt | 173 --
.../q98.native_iceberg_compat/simplified.txt | 39 -
.../approved-plans-v2_7/q98/explain.txt | 173 --
.../approved-plans-v2_7/q98/extended.txt | 33 -
.../approved-plans-v2_7/q98/simplified.txt | 39 -
.../spark/sql/comet/CometPlanStabilitySuite.scala | 18 +-
2836 files changed, 4 insertions(+), 553880 deletions(-)
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_datafusion/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_datafusion/explain.txt
deleted file mode 100644
index ba9b1ca1f..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_datafusion/explain.txt
+++ /dev/null
@@ -1,291 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (44)
-+- * Project (43)
- +- * BroadcastHashJoin Inner BuildRight (42)
- :- * Project (36)
- : +- * BroadcastHashJoin Inner BuildRight (35)
- : :- * Project (29)
- : : +- * BroadcastHashJoin Inner BuildRight (28)
- : : :- * Filter (11)
- : : : +- * HashAggregate (10)
- : : : +- * CometColumnarToRow (9)
- : : : +- CometColumnarExchange (8)
- : : : +- * HashAggregate (7)
- : : : +- * Project (6)
- : : : +- * BroadcastHashJoin Inner BuildRight (5)
- : : : :- * Filter (3)
- : : : : +- * ColumnarToRow (2)
- : : : : +- Scan parquet spark_catalog.default.store_returns (1)
- : : : +- ReusedExchange (4)
- : : +- BroadcastExchange (27)
- : : +- * Filter (26)
- : : +- * HashAggregate (25)
- : : +- * CometColumnarToRow (24)
- : : +- CometColumnarExchange (23)
- : : +- * HashAggregate (22)
- : : +- * HashAggregate (21)
- : : +- * CometColumnarToRow (20)
- : : +- CometColumnarExchange (19)
- : : +- * HashAggregate (18)
- : : +- * Project (17)
- : : +- * BroadcastHashJoin Inner BuildRight (16)
- : : :- * Filter (14)
- : : : +- * ColumnarToRow (13)
- : : : +- Scan parquet spark_catalog.default.store_returns (12)
- : : +- ReusedExchange (15)
- : +- BroadcastExchange (34)
- : +- * CometColumnarToRow (33)
- : +- CometProject (32)
- : +- CometFilter (31)
- : +- CometNativeScan parquet spark_catalog.default.store (30)
- +- BroadcastExchange (41)
- +- * CometColumnarToRow (40)
- +- CometProject (39)
- +- CometFilter (38)
- +- CometNativeScan parquet spark_catalog.default.customer (37)
-
-
-(1) Scan parquet spark_catalog.default.store_returns
-Output [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(sr_returned_date_sk#4), dynamicpruningexpression(sr_returned_date_sk#4 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(sr_store_sk), IsNotNull(sr_customer_sk)]
-ReadSchema: struct<sr_customer_sk:int,sr_store_sk:int,sr_return_amt:decimal(7,2)>
-
-(2) ColumnarToRow [codegen id : 2]
-Input [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-
-(3) Filter [codegen id : 2]
-Input [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Condition : (isnotnull(sr_store_sk#2) AND isnotnull(sr_customer_sk#1))
-
-(4) ReusedExchange [Reuses operator id: 49]
-Output [1]: [d_date_sk#6]
-
-(5) BroadcastHashJoin [codegen id : 2]
-Left keys [1]: [sr_returned_date_sk#4]
-Right keys [1]: [d_date_sk#6]
-Join type: Inner
-Join condition: None
-
-(6) Project [codegen id : 2]
-Output [3]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3]
-Input [5]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4, d_date_sk#6]
-
-(7) HashAggregate [codegen id : 2]
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3]
-Keys [2]: [sr_customer_sk#1, sr_store_sk#2]
-Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#3))]
-Aggregate Attributes [1]: [sum#7]
-Results [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-
-(8) CometColumnarExchange
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-Arguments: hashpartitioning(sr_customer_sk#1, sr_store_sk#2, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=1]
-
-(9) CometColumnarToRow [codegen id : 9]
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-
-(10) HashAggregate [codegen id : 9]
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-Keys [2]: [sr_customer_sk#1, sr_store_sk#2]
-Functions [1]: [sum(UnscaledValue(sr_return_amt#3))]
-Aggregate Attributes [1]: [sum(UnscaledValue(sr_return_amt#3))#9]
-Results [3]: [sr_customer_sk#1 AS ctr_customer_sk#10, sr_store_sk#2 AS ctr_store_sk#11, MakeDecimal(sum(UnscaledValue(sr_return_amt#3))#9,17,2) AS ctr_total_return#12]
-
-(11) Filter [codegen id : 9]
-Input [3]: [ctr_customer_sk#10, ctr_store_sk#11, ctr_total_return#12]
-Condition : isnotnull(ctr_total_return#12)
-
-(12) Scan parquet spark_catalog.default.store_returns
-Output [4]: [sr_customer_sk#13, sr_store_sk#14, sr_return_amt#15, sr_returned_date_sk#16]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(sr_returned_date_sk#16), dynamicpruningexpression(sr_returned_date_sk#16 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(sr_store_sk)]
-ReadSchema: struct<sr_customer_sk:int,sr_store_sk:int,sr_return_amt:decimal(7,2)>
-
-(13) ColumnarToRow [codegen id : 4]
-Input [4]: [sr_customer_sk#13, sr_store_sk#14, sr_return_amt#15, sr_returned_date_sk#16]
-
-(14) Filter [codegen id : 4]
-Input [4]: [sr_customer_sk#13, sr_store_sk#14, sr_return_amt#15, sr_returned_date_sk#16]
-Condition : isnotnull(sr_store_sk#14)
-
-(15) ReusedExchange [Reuses operator id: 49]
-Output [1]: [d_date_sk#17]
-
-(16) BroadcastHashJoin [codegen id : 4]
-Left keys [1]: [sr_returned_date_sk#16]
-Right keys [1]: [d_date_sk#17]
-Join type: Inner
-Join condition: None
-
-(17) Project [codegen id : 4]
-Output [3]: [sr_customer_sk#13, sr_store_sk#14, sr_return_amt#15]
-Input [5]: [sr_customer_sk#13, sr_store_sk#14, sr_return_amt#15, sr_returned_date_sk#16, d_date_sk#17]
-
-(18) HashAggregate [codegen id : 4]
-Input [3]: [sr_customer_sk#13, sr_store_sk#14, sr_return_amt#15]
-Keys [2]: [sr_customer_sk#13, sr_store_sk#14]
-Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#15))]
-Aggregate Attributes [1]: [sum#18]
-Results [3]: [sr_customer_sk#13, sr_store_sk#14, sum#19]
-
-(19) CometColumnarExchange
-Input [3]: [sr_customer_sk#13, sr_store_sk#14, sum#19]
-Arguments: hashpartitioning(sr_customer_sk#13, sr_store_sk#14, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=2]
-
-(20) CometColumnarToRow [codegen id : 5]
-Input [3]: [sr_customer_sk#13, sr_store_sk#14, sum#19]
-
-(21) HashAggregate [codegen id : 5]
-Input [3]: [sr_customer_sk#13, sr_store_sk#14, sum#19]
-Keys [2]: [sr_customer_sk#13, sr_store_sk#14]
-Functions [1]: [sum(UnscaledValue(sr_return_amt#15))]
-Aggregate Attributes [1]: [sum(UnscaledValue(sr_return_amt#15))#9]
-Results [2]: [sr_store_sk#14 AS ctr_store_sk#20, MakeDecimal(sum(UnscaledValue(sr_return_amt#15))#9,17,2) AS ctr_total_return#21]
-
-(22) HashAggregate [codegen id : 5]
-Input [2]: [ctr_store_sk#20, ctr_total_return#21]
-Keys [1]: [ctr_store_sk#20]
-Functions [1]: [partial_avg(ctr_total_return#21)]
-Aggregate Attributes [2]: [sum#22, count#23]
-Results [3]: [ctr_store_sk#20, sum#24, count#25]
-
-(23) CometColumnarExchange
-Input [3]: [ctr_store_sk#20, sum#24, count#25]
-Arguments: hashpartitioning(ctr_store_sk#20, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=3]
-
-(24) CometColumnarToRow [codegen id : 6]
-Input [3]: [ctr_store_sk#20, sum#24, count#25]
-
-(25) HashAggregate [codegen id : 6]
-Input [3]: [ctr_store_sk#20, sum#24, count#25]
-Keys [1]: [ctr_store_sk#20]
-Functions [1]: [avg(ctr_total_return#21)]
-Aggregate Attributes [1]: [avg(ctr_total_return#21)#26]
-Results [2]: [(avg(ctr_total_return#21)#26 * 1.2) AS (avg(ctr_total_return) * 1.2)#27, ctr_store_sk#20]
-
-(26) Filter [codegen id : 6]
-Input [2]: [(avg(ctr_total_return) * 1.2)#27, ctr_store_sk#20]
-Condition : isnotnull((avg(ctr_total_return) * 1.2)#27)
-
-(27) BroadcastExchange
-Input [2]: [(avg(ctr_total_return) * 1.2)#27, ctr_store_sk#20]
-Arguments: HashedRelationBroadcastMode(List(cast(input[1, int, true] as bigint)),false), [plan_id=4]
-
-(28) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [ctr_store_sk#11]
-Right keys [1]: [ctr_store_sk#20]
-Join type: Inner
-Join condition: (cast(ctr_total_return#12 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#27)
-
-(29) Project [codegen id : 9]
-Output [2]: [ctr_customer_sk#10, ctr_store_sk#11]
-Input [5]: [ctr_customer_sk#10, ctr_store_sk#11, ctr_total_return#12, (avg(ctr_total_return) * 1.2)#27, ctr_store_sk#20]
-
-(30) CometNativeScan parquet spark_catalog.default.store
-Output [2]: [s_store_sk#28, s_state#29]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/store]
-PushedFilters: [IsNotNull(s_store_sk)]
-ReadSchema: struct<s_store_sk:int,s_state:string>
-
-(31) CometFilter
-Input [2]: [s_store_sk#28, s_state#29]
-Condition : ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, s_state#29, 2, true, false, true) = TN) AND isnotnull(s_store_sk#28))
-
-(32) CometProject
-Input [2]: [s_store_sk#28, s_state#29]
-Arguments: [s_store_sk#28], [s_store_sk#28]
-
-(33) CometColumnarToRow [codegen id : 7]
-Input [1]: [s_store_sk#28]
-
-(34) BroadcastExchange
-Input [1]: [s_store_sk#28]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=5]
-
-(35) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [ctr_store_sk#11]
-Right keys [1]: [s_store_sk#28]
-Join type: Inner
-Join condition: None
-
-(36) Project [codegen id : 9]
-Output [1]: [ctr_customer_sk#10]
-Input [3]: [ctr_customer_sk#10, ctr_store_sk#11, s_store_sk#28]
-
-(37) CometNativeScan parquet spark_catalog.default.customer
-Output [2]: [c_customer_sk#30, c_customer_id#31]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string>
-
-(38) CometFilter
-Input [2]: [c_customer_sk#30, c_customer_id#31]
-Condition : isnotnull(c_customer_sk#30)
-
-(39) CometProject
-Input [2]: [c_customer_sk#30, c_customer_id#31]
-Arguments: [c_customer_sk#30, c_customer_id#32], [c_customer_sk#30, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#31, 16, true, false, true) AS c_customer_id#32]
-
-(40) CometColumnarToRow [codegen id : 8]
-Input [2]: [c_customer_sk#30, c_customer_id#32]
-
-(41) BroadcastExchange
-Input [2]: [c_customer_sk#30, c_customer_id#32]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=6]
-
-(42) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [ctr_customer_sk#10]
-Right keys [1]: [c_customer_sk#30]
-Join type: Inner
-Join condition: None
-
-(43) Project [codegen id : 9]
-Output [1]: [c_customer_id#32]
-Input [3]: [ctr_customer_sk#10, c_customer_sk#30, c_customer_id#32]
-
-(44) TakeOrderedAndProject
-Input [1]: [c_customer_id#32]
-Arguments: 100, [c_customer_id#32 ASC NULLS FIRST], [c_customer_id#32]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = sr_returned_date_sk#4 IN dynamicpruning#5
-BroadcastExchange (49)
-+- * CometColumnarToRow (48)
- +- CometProject (47)
- +- CometFilter (46)
- +- CometNativeScan parquet spark_catalog.default.date_dim (45)
-
-
-(45) CometNativeScan parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#6, d_year#33]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(46) CometFilter
-Input [2]: [d_date_sk#6, d_year#33]
-Condition : ((isnotnull(d_year#33) AND (d_year#33 = 2000)) AND isnotnull(d_date_sk#6))
-
-(47) CometProject
-Input [2]: [d_date_sk#6, d_year#33]
-Arguments: [d_date_sk#6], [d_date_sk#6]
-
-(48) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#6]
-
-(49) BroadcastExchange
-Input [1]: [d_date_sk#6]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=7]
-
-Subquery:2 Hosting operator id = 12 Hosting Expression = sr_returned_date_sk#16 IN dynamicpruning#5
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_datafusion/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_datafusion/simplified.txt
deleted file mode 100644
index ed85c142a..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_datafusion/simplified.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-TakeOrderedAndProject [c_customer_id]
- WholeStageCodegen (9)
- Project [c_customer_id]
- BroadcastHashJoin [ctr_customer_sk,c_customer_sk]
- Project [ctr_customer_sk]
- BroadcastHashJoin [ctr_store_sk,s_store_sk]
- Project [ctr_customer_sk,ctr_store_sk]
- BroadcastHashJoin [ctr_store_sk,ctr_store_sk,ctr_total_return,(avg(ctr_total_return) * 1.2)]
- Filter [ctr_total_return]
- HashAggregate [sr_customer_sk,sr_store_sk,sum] [sum(UnscaledValue(sr_return_amt)),ctr_customer_sk,ctr_store_sk,ctr_total_return,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [sr_customer_sk,sr_store_sk] #1
- WholeStageCodegen (2)
- HashAggregate [sr_customer_sk,sr_store_sk,sr_return_amt] [sum,sum]
- Project [sr_customer_sk,sr_store_sk,sr_return_amt]
- BroadcastHashJoin [sr_returned_date_sk,d_date_sk]
- Filter [sr_store_sk,sr_customer_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_returns [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #2
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- InputAdapter
- ReusedExchange [d_date_sk] #2
- InputAdapter
- BroadcastExchange #3
- WholeStageCodegen (6)
- Filter [(avg(ctr_total_return) * 1.2)]
- HashAggregate [ctr_store_sk,sum,count] [avg(ctr_total_return),(avg(ctr_total_return) * 1.2),sum,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [ctr_store_sk] #4
- WholeStageCodegen (5)
- HashAggregate [ctr_store_sk,ctr_total_return] [sum,count,sum,count]
- HashAggregate [sr_customer_sk,sr_store_sk,sum] [sum(UnscaledValue(sr_return_amt)),ctr_store_sk,ctr_total_return,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [sr_customer_sk,sr_store_sk] #5
- WholeStageCodegen (4)
- HashAggregate [sr_customer_sk,sr_store_sk,sr_return_amt] [sum,sum]
- Project [sr_customer_sk,sr_store_sk,sr_return_amt]
- BroadcastHashJoin [sr_returned_date_sk,d_date_sk]
- Filter [sr_store_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_returns [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- ReusedSubquery [d_date_sk] #1
- InputAdapter
- ReusedExchange [d_date_sk] #2
- InputAdapter
- BroadcastExchange #6
- WholeStageCodegen (7)
- CometColumnarToRow
- InputAdapter
- CometProject [s_store_sk]
- CometFilter [s_store_sk,s_state]
- CometNativeScan parquet spark_catalog.default.store [s_store_sk,s_state]
- InputAdapter
- BroadcastExchange #7
- WholeStageCodegen (8)
- CometColumnarToRow
- InputAdapter
- CometProject [c_customer_id] [c_customer_sk,c_customer_id]
- CometFilter [c_customer_sk,c_customer_id]
- CometNativeScan parquet spark_catalog.default.customer [c_customer_sk,c_customer_id]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_iceberg_compat/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_iceberg_compat/explain.txt
deleted file mode 100644
index e66401996..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_iceberg_compat/explain.txt
+++ /dev/null
@@ -1,269 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (41)
-+- CometTakeOrderedAndProject (40)
- +- CometProject (39)
- +- CometBroadcastHashJoin (38)
- :- CometProject (33)
- : +- CometBroadcastHashJoin (32)
- : :- CometProject (27)
- : : +- CometBroadcastHashJoin (26)
- : : :- CometFilter (12)
- : : : +- CometHashAggregate (11)
- : : : +- CometExchange (10)
- : : : +- CometHashAggregate (9)
- : : : +- CometProject (8)
- : : : +- CometBroadcastHashJoin (7)
- : : : :- CometFilter (2)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns (1)
- : : : +- CometBroadcastExchange (6)
- : : : +- CometProject (5)
- : : : +- CometFilter (4)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (3)
- : : +- CometBroadcastExchange (25)
- : : +- CometFilter (24)
- : : +- CometHashAggregate (23)
- : : +- CometExchange (22)
- : : +- CometHashAggregate (21)
- : : +- CometHashAggregate (20)
- : : +- CometExchange (19)
- : : +- CometHashAggregate (18)
- : : +- CometProject (17)
- : : +- CometBroadcastHashJoin (16)
- : : :- CometFilter (14)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns (13)
- : : +- ReusedExchange (15)
- : +- CometBroadcastExchange (31)
- : +- CometProject (30)
- : +- CometFilter (29)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store (28)
- +- CometBroadcastExchange (37)
- +- CometProject (36)
- +- CometFilter (35)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (34)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns
-Output [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(sr_returned_date_sk#4), dynamicpruningexpression(sr_returned_date_sk#4 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(sr_store_sk), IsNotNull(sr_customer_sk)]
-ReadSchema: struct<sr_customer_sk:int,sr_store_sk:int,sr_return_amt:decimal(7,2)>
-
-(2) CometFilter
-Input [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Condition : (isnotnull(sr_store_sk#2) AND isnotnull(sr_customer_sk#1))
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#6, d_year#7]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(4) CometFilter
-Input [2]: [d_date_sk#6, d_year#7]
-Condition : ((isnotnull(d_year#7) AND (d_year#7 = 2000)) AND isnotnull(d_date_sk#6))
-
-(5) CometProject
-Input [2]: [d_date_sk#6, d_year#7]
-Arguments: [d_date_sk#6], [d_date_sk#6]
-
-(6) CometBroadcastExchange
-Input [1]: [d_date_sk#6]
-Arguments: [d_date_sk#6]
-
-(7) CometBroadcastHashJoin
-Left output [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Right output [1]: [d_date_sk#6]
-Arguments: [sr_returned_date_sk#4], [d_date_sk#6], Inner, BuildRight
-
-(8) CometProject
-Input [5]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4, d_date_sk#6]
-Arguments: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3], [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3]
-
-(9) CometHashAggregate
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3]
-Keys [2]: [sr_customer_sk#1, sr_store_sk#2]
-Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#3))]
-
-(10) CometExchange
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-Arguments: hashpartitioning(sr_customer_sk#1, sr_store_sk#2, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(11) CometHashAggregate
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-Keys [2]: [sr_customer_sk#1, sr_store_sk#2]
-Functions [1]: [sum(UnscaledValue(sr_return_amt#3))]
-
-(12) CometFilter
-Input [3]: [ctr_customer_sk#9, ctr_store_sk#10, ctr_total_return#11]
-Condition : isnotnull(ctr_total_return#11)
-
-(13) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns
-Output [4]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(sr_returned_date_sk#15), dynamicpruningexpression(sr_returned_date_sk#15 IN dynamicpruning#16)]
-PushedFilters: [IsNotNull(sr_store_sk)]
-ReadSchema: struct<sr_customer_sk:int,sr_store_sk:int,sr_return_amt:decimal(7,2)>
-
-(14) CometFilter
-Input [4]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15]
-Condition : isnotnull(sr_store_sk#13)
-
-(15) ReusedExchange [Reuses operator id: 6]
-Output [1]: [d_date_sk#17]
-
-(16) CometBroadcastHashJoin
-Left output [4]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15]
-Right output [1]: [d_date_sk#17]
-Arguments: [sr_returned_date_sk#15], [d_date_sk#17], Inner, BuildRight
-
-(17) CometProject
-Input [5]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15, d_date_sk#17]
-Arguments: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14], [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14]
-
-(18) CometHashAggregate
-Input [3]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14]
-Keys [2]: [sr_customer_sk#12, sr_store_sk#13]
-Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#14))]
-
-(19) CometExchange
-Input [3]: [sr_customer_sk#12, sr_store_sk#13, sum#18]
-Arguments: hashpartitioning(sr_customer_sk#12, sr_store_sk#13, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]
-
-(20) CometHashAggregate
-Input [3]: [sr_customer_sk#12, sr_store_sk#13, sum#18]
-Keys [2]: [sr_customer_sk#12, sr_store_sk#13]
-Functions [1]: [sum(UnscaledValue(sr_return_amt#14))]
-
-(21) CometHashAggregate
-Input [2]: [ctr_store_sk#19, ctr_total_return#20]
-Keys [1]: [ctr_store_sk#19]
-Functions [1]: [partial_avg(ctr_total_return#20)]
-
-(22) CometExchange
-Input [3]: [ctr_store_sk#19, sum#21, count#22]
-Arguments: hashpartitioning(ctr_store_sk#19, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]
-
-(23) CometHashAggregate
-Input [3]: [ctr_store_sk#19, sum#21, count#22]
-Keys [1]: [ctr_store_sk#19]
-Functions [1]: [avg(ctr_total_return#20)]
-
-(24) CometFilter
-Input [2]: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Condition : isnotnull((avg(ctr_total_return) * 1.2)#23)
-
-(25) CometBroadcastExchange
-Input [2]: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Arguments: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-
-(26) CometBroadcastHashJoin
-Left output [3]: [ctr_customer_sk#9, ctr_store_sk#10, ctr_total_return#11]
-Right output [2]: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Arguments: [ctr_store_sk#10], [ctr_store_sk#19], Inner, (cast(ctr_total_return#11 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#23), BuildRight
-
-(27) CometProject
-Input [5]: [ctr_customer_sk#9, ctr_store_sk#10, ctr_total_return#11, (avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Arguments: [ctr_customer_sk#9, ctr_store_sk#10], [ctr_customer_sk#9, ctr_store_sk#10]
-
-(28) CometScan [native_iceberg_compat] parquet spark_catalog.default.store
-Output [2]: [s_store_sk#24, s_state#25]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/store]
-PushedFilters: [IsNotNull(s_store_sk)]
-ReadSchema: struct<s_store_sk:int,s_state:string>
-
-(29) CometFilter
-Input [2]: [s_store_sk#24, s_state#25]
-Condition : ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, s_state#25, 2, true, false, true) = TN) AND isnotnull(s_store_sk#24))
-
-(30) CometProject
-Input [2]: [s_store_sk#24, s_state#25]
-Arguments: [s_store_sk#24], [s_store_sk#24]
-
-(31) CometBroadcastExchange
-Input [1]: [s_store_sk#24]
-Arguments: [s_store_sk#24]
-
-(32) CometBroadcastHashJoin
-Left output [2]: [ctr_customer_sk#9, ctr_store_sk#10]
-Right output [1]: [s_store_sk#24]
-Arguments: [ctr_store_sk#10], [s_store_sk#24], Inner, BuildRight
-
-(33) CometProject
-Input [3]: [ctr_customer_sk#9, ctr_store_sk#10, s_store_sk#24]
-Arguments: [ctr_customer_sk#9], [ctr_customer_sk#9]
-
-(34) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [2]: [c_customer_sk#26, c_customer_id#27]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string>
-
-(35) CometFilter
-Input [2]: [c_customer_sk#26, c_customer_id#27]
-Condition : isnotnull(c_customer_sk#26)
-
-(36) CometProject
-Input [2]: [c_customer_sk#26, c_customer_id#27]
-Arguments: [c_customer_sk#26, c_customer_id#28], [c_customer_sk#26, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#27, 16, true, false, true) AS c_customer_id#28]
-
-(37) CometBroadcastExchange
-Input [2]: [c_customer_sk#26, c_customer_id#28]
-Arguments: [c_customer_sk#26, c_customer_id#28]
-
-(38) CometBroadcastHashJoin
-Left output [1]: [ctr_customer_sk#9]
-Right output [2]: [c_customer_sk#26, c_customer_id#28]
-Arguments: [ctr_customer_sk#9], [c_customer_sk#26], Inner, BuildRight
-
-(39) CometProject
-Input [3]: [ctr_customer_sk#9, c_customer_sk#26, c_customer_id#28]
-Arguments: [c_customer_id#28], [c_customer_id#28]
-
-(40) CometTakeOrderedAndProject
-Input [1]: [c_customer_id#28]
-Arguments: TakeOrderedAndProject(limit=100, orderBy=[c_customer_id#28 ASC NULLS FIRST], output=[c_customer_id#28]), [c_customer_id#28], 100, 0, [c_customer_id#28 ASC NULLS FIRST], [c_customer_id#28]
-
-(41) CometColumnarToRow [codegen id : 1]
-Input [1]: [c_customer_id#28]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = sr_returned_date_sk#4 IN dynamicpruning#5
-BroadcastExchange (46)
-+- * CometColumnarToRow (45)
- +- CometProject (44)
- +- CometFilter (43)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (42)
-
-
-(42) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#6, d_year#7]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(43) CometFilter
-Input [2]: [d_date_sk#6, d_year#7]
-Condition : ((isnotnull(d_year#7) AND (d_year#7 = 2000)) AND isnotnull(d_date_sk#6))
-
-(44) CometProject
-Input [2]: [d_date_sk#6, d_year#7]
-Arguments: [d_date_sk#6], [d_date_sk#6]
-
-(45) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#6]
-
-(46) BroadcastExchange
-Input [1]: [d_date_sk#6]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=4]
-
-Subquery:2 Hosting operator id = 13 Hosting Expression = sr_returned_date_sk#15 IN dynamicpruning#5
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_iceberg_compat/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_iceberg_compat/simplified.txt
deleted file mode 100644
index 3e1d6243f..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1.native_iceberg_compat/simplified.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometTakeOrderedAndProject [c_customer_id]
- CometProject [c_customer_id]
- CometBroadcastHashJoin [ctr_customer_sk,c_customer_sk,c_customer_id]
- CometProject [ctr_customer_sk]
- CometBroadcastHashJoin [ctr_customer_sk,ctr_store_sk,s_store_sk]
- CometProject [ctr_customer_sk,ctr_store_sk]
- CometBroadcastHashJoin [ctr_customer_sk,ctr_store_sk,ctr_total_return,(avg(ctr_total_return) * 1.2),ctr_store_sk]
- CometFilter [ctr_customer_sk,ctr_store_sk,ctr_total_return]
- CometHashAggregate [sum] [ctr_customer_sk,ctr_store_sk,ctr_total_return,sr_customer_sk,sr_store_sk,sum(UnscaledValue(sr_return_amt))]
- CometExchange [sr_customer_sk,sr_store_sk] #1
- CometHashAggregate [sr_return_amt] [sr_customer_sk,sr_store_sk,sum]
- CometProject [sr_customer_sk,sr_store_sk,sr_return_amt]
- CometBroadcastHashJoin [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk,d_date_sk]
- CometFilter [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #2
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [d_date_sk] #3
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [(avg(ctr_total_return) * 1.2),ctr_store_sk] #4
- CometFilter [(avg(ctr_total_return) * 1.2),ctr_store_sk]
- CometHashAggregate [sum,count] [(avg(ctr_total_return) * 1.2),ctr_store_sk,avg(ctr_total_return)]
- CometExchange [ctr_store_sk] #5
- CometHashAggregate [ctr_total_return] [ctr_store_sk,sum,count]
- CometHashAggregate [sr_customer_sk,sum] [ctr_store_sk,ctr_total_return,sr_store_sk,sum(UnscaledValue(sr_return_amt))]
- CometExchange [sr_customer_sk,sr_store_sk] #6
- CometHashAggregate [sr_return_amt] [sr_customer_sk,sr_store_sk,sum]
- CometProject [sr_customer_sk,sr_store_sk,sr_return_amt]
- CometBroadcastHashJoin [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk,d_date_sk]
- CometFilter [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk] #3
- CometBroadcastExchange [s_store_sk] #7
- CometProject [s_store_sk]
- CometFilter [s_store_sk,s_state]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store [s_store_sk,s_state]
- CometBroadcastExchange [c_customer_sk,c_customer_id] #8
- CometProject [c_customer_id] [c_customer_sk,c_customer_id]
- CometFilter [c_customer_sk,c_customer_id]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/explain.txt
deleted file mode 100644
index e66401996..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/explain.txt
+++ /dev/null
@@ -1,269 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (41)
-+- CometTakeOrderedAndProject (40)
- +- CometProject (39)
- +- CometBroadcastHashJoin (38)
- :- CometProject (33)
- : +- CometBroadcastHashJoin (32)
- : :- CometProject (27)
- : : +- CometBroadcastHashJoin (26)
- : : :- CometFilter (12)
- : : : +- CometHashAggregate (11)
- : : : +- CometExchange (10)
- : : : +- CometHashAggregate (9)
- : : : +- CometProject (8)
- : : : +- CometBroadcastHashJoin (7)
- : : : :- CometFilter (2)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns (1)
- : : : +- CometBroadcastExchange (6)
- : : : +- CometProject (5)
- : : : +- CometFilter (4)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (3)
- : : +- CometBroadcastExchange (25)
- : : +- CometFilter (24)
- : : +- CometHashAggregate (23)
- : : +- CometExchange (22)
- : : +- CometHashAggregate (21)
- : : +- CometHashAggregate (20)
- : : +- CometExchange (19)
- : : +- CometHashAggregate (18)
- : : +- CometProject (17)
- : : +- CometBroadcastHashJoin (16)
- : : :- CometFilter (14)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns (13)
- : : +- ReusedExchange (15)
- : +- CometBroadcastExchange (31)
- : +- CometProject (30)
- : +- CometFilter (29)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store (28)
- +- CometBroadcastExchange (37)
- +- CometProject (36)
- +- CometFilter (35)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (34)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns
-Output [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(sr_returned_date_sk#4), dynamicpruningexpression(sr_returned_date_sk#4 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(sr_store_sk), IsNotNull(sr_customer_sk)]
-ReadSchema: struct<sr_customer_sk:int,sr_store_sk:int,sr_return_amt:decimal(7,2)>
-
-(2) CometFilter
-Input [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Condition : (isnotnull(sr_store_sk#2) AND isnotnull(sr_customer_sk#1))
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#6, d_year#7]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(4) CometFilter
-Input [2]: [d_date_sk#6, d_year#7]
-Condition : ((isnotnull(d_year#7) AND (d_year#7 = 2000)) AND isnotnull(d_date_sk#6))
-
-(5) CometProject
-Input [2]: [d_date_sk#6, d_year#7]
-Arguments: [d_date_sk#6], [d_date_sk#6]
-
-(6) CometBroadcastExchange
-Input [1]: [d_date_sk#6]
-Arguments: [d_date_sk#6]
-
-(7) CometBroadcastHashJoin
-Left output [4]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4]
-Right output [1]: [d_date_sk#6]
-Arguments: [sr_returned_date_sk#4], [d_date_sk#6], Inner, BuildRight
-
-(8) CometProject
-Input [5]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3, sr_returned_date_sk#4, d_date_sk#6]
-Arguments: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3], [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3]
-
-(9) CometHashAggregate
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sr_return_amt#3]
-Keys [2]: [sr_customer_sk#1, sr_store_sk#2]
-Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#3))]
-
-(10) CometExchange
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-Arguments: hashpartitioning(sr_customer_sk#1, sr_store_sk#2, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(11) CometHashAggregate
-Input [3]: [sr_customer_sk#1, sr_store_sk#2, sum#8]
-Keys [2]: [sr_customer_sk#1, sr_store_sk#2]
-Functions [1]: [sum(UnscaledValue(sr_return_amt#3))]
-
-(12) CometFilter
-Input [3]: [ctr_customer_sk#9, ctr_store_sk#10, ctr_total_return#11]
-Condition : isnotnull(ctr_total_return#11)
-
-(13) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns
-Output [4]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(sr_returned_date_sk#15), dynamicpruningexpression(sr_returned_date_sk#15 IN dynamicpruning#16)]
-PushedFilters: [IsNotNull(sr_store_sk)]
-ReadSchema: struct<sr_customer_sk:int,sr_store_sk:int,sr_return_amt:decimal(7,2)>
-
-(14) CometFilter
-Input [4]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15]
-Condition : isnotnull(sr_store_sk#13)
-
-(15) ReusedExchange [Reuses operator id: 6]
-Output [1]: [d_date_sk#17]
-
-(16) CometBroadcastHashJoin
-Left output [4]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15]
-Right output [1]: [d_date_sk#17]
-Arguments: [sr_returned_date_sk#15], [d_date_sk#17], Inner, BuildRight
-
-(17) CometProject
-Input [5]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14, sr_returned_date_sk#15, d_date_sk#17]
-Arguments: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14], [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14]
-
-(18) CometHashAggregate
-Input [3]: [sr_customer_sk#12, sr_store_sk#13, sr_return_amt#14]
-Keys [2]: [sr_customer_sk#12, sr_store_sk#13]
-Functions [1]: [partial_sum(UnscaledValue(sr_return_amt#14))]
-
-(19) CometExchange
-Input [3]: [sr_customer_sk#12, sr_store_sk#13, sum#18]
-Arguments: hashpartitioning(sr_customer_sk#12, sr_store_sk#13, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]
-
-(20) CometHashAggregate
-Input [3]: [sr_customer_sk#12, sr_store_sk#13, sum#18]
-Keys [2]: [sr_customer_sk#12, sr_store_sk#13]
-Functions [1]: [sum(UnscaledValue(sr_return_amt#14))]
-
-(21) CometHashAggregate
-Input [2]: [ctr_store_sk#19, ctr_total_return#20]
-Keys [1]: [ctr_store_sk#19]
-Functions [1]: [partial_avg(ctr_total_return#20)]
-
-(22) CometExchange
-Input [3]: [ctr_store_sk#19, sum#21, count#22]
-Arguments: hashpartitioning(ctr_store_sk#19, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]
-
-(23) CometHashAggregate
-Input [3]: [ctr_store_sk#19, sum#21, count#22]
-Keys [1]: [ctr_store_sk#19]
-Functions [1]: [avg(ctr_total_return#20)]
-
-(24) CometFilter
-Input [2]: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Condition : isnotnull((avg(ctr_total_return) * 1.2)#23)
-
-(25) CometBroadcastExchange
-Input [2]: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Arguments: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-
-(26) CometBroadcastHashJoin
-Left output [3]: [ctr_customer_sk#9, ctr_store_sk#10, ctr_total_return#11]
-Right output [2]: [(avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Arguments: [ctr_store_sk#10], [ctr_store_sk#19], Inner, (cast(ctr_total_return#11 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#23), BuildRight
-
-(27) CometProject
-Input [5]: [ctr_customer_sk#9, ctr_store_sk#10, ctr_total_return#11, (avg(ctr_total_return) * 1.2)#23, ctr_store_sk#19]
-Arguments: [ctr_customer_sk#9, ctr_store_sk#10], [ctr_customer_sk#9, ctr_store_sk#10]
-
-(28) CometScan [native_iceberg_compat] parquet spark_catalog.default.store
-Output [2]: [s_store_sk#24, s_state#25]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/store]
-PushedFilters: [IsNotNull(s_store_sk)]
-ReadSchema: struct<s_store_sk:int,s_state:string>
-
-(29) CometFilter
-Input [2]: [s_store_sk#24, s_state#25]
-Condition : ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, s_state#25, 2, true, false, true) = TN) AND isnotnull(s_store_sk#24))
-
-(30) CometProject
-Input [2]: [s_store_sk#24, s_state#25]
-Arguments: [s_store_sk#24], [s_store_sk#24]
-
-(31) CometBroadcastExchange
-Input [1]: [s_store_sk#24]
-Arguments: [s_store_sk#24]
-
-(32) CometBroadcastHashJoin
-Left output [2]: [ctr_customer_sk#9, ctr_store_sk#10]
-Right output [1]: [s_store_sk#24]
-Arguments: [ctr_store_sk#10], [s_store_sk#24], Inner, BuildRight
-
-(33) CometProject
-Input [3]: [ctr_customer_sk#9, ctr_store_sk#10, s_store_sk#24]
-Arguments: [ctr_customer_sk#9], [ctr_customer_sk#9]
-
-(34) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [2]: [c_customer_sk#26, c_customer_id#27]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string>
-
-(35) CometFilter
-Input [2]: [c_customer_sk#26, c_customer_id#27]
-Condition : isnotnull(c_customer_sk#26)
-
-(36) CometProject
-Input [2]: [c_customer_sk#26, c_customer_id#27]
-Arguments: [c_customer_sk#26, c_customer_id#28], [c_customer_sk#26, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#27, 16, true, false, true) AS c_customer_id#28]
-
-(37) CometBroadcastExchange
-Input [2]: [c_customer_sk#26, c_customer_id#28]
-Arguments: [c_customer_sk#26, c_customer_id#28]
-
-(38) CometBroadcastHashJoin
-Left output [1]: [ctr_customer_sk#9]
-Right output [2]: [c_customer_sk#26, c_customer_id#28]
-Arguments: [ctr_customer_sk#9], [c_customer_sk#26], Inner, BuildRight
-
-(39) CometProject
-Input [3]: [ctr_customer_sk#9, c_customer_sk#26, c_customer_id#28]
-Arguments: [c_customer_id#28], [c_customer_id#28]
-
-(40) CometTakeOrderedAndProject
-Input [1]: [c_customer_id#28]
-Arguments: TakeOrderedAndProject(limit=100, orderBy=[c_customer_id#28 ASC NULLS FIRST], output=[c_customer_id#28]), [c_customer_id#28], 100, 0, [c_customer_id#28 ASC NULLS FIRST], [c_customer_id#28]
-
-(41) CometColumnarToRow [codegen id : 1]
-Input [1]: [c_customer_id#28]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = sr_returned_date_sk#4 IN dynamicpruning#5
-BroadcastExchange (46)
-+- * CometColumnarToRow (45)
- +- CometProject (44)
- +- CometFilter (43)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (42)
-
-
-(42) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#6, d_year#7]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2000), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(43) CometFilter
-Input [2]: [d_date_sk#6, d_year#7]
-Condition : ((isnotnull(d_year#7) AND (d_year#7 = 2000)) AND isnotnull(d_date_sk#6))
-
-(44) CometProject
-Input [2]: [d_date_sk#6, d_year#7]
-Arguments: [d_date_sk#6], [d_date_sk#6]
-
-(45) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#6]
-
-(46) BroadcastExchange
-Input [1]: [d_date_sk#6]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=4]
-
-Subquery:2 Hosting operator id = 13 Hosting Expression = sr_returned_date_sk#15 IN dynamicpruning#5
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/extended.txt
deleted file mode 100644
index 8aa14c43d..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/extended.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-CometColumnarToRow
-+- CometTakeOrderedAndProject
- +- CometProject
- +- CometBroadcastHashJoin
- :- CometProject
- : +- CometBroadcastHashJoin
- : :- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometFilter
- : : : +- CometHashAggregate
- : : : +- CometExchange
- : : : +- CometHashAggregate
- : : : +- CometProject
- : : : +- CometBroadcastHashJoin
- : : : :- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns
- : : : : +- SubqueryBroadcast
- : : : : +- BroadcastExchange
- : : : : +- CometColumnarToRow
- : : : : +- CometProject
- : : : : +- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : : +- CometBroadcastExchange
- : : : +- CometProject
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : +- CometBroadcastExchange
- : : +- CometFilter
- : : +- CometHashAggregate
- : : +- CometExchange
- : : +- CometHashAggregate
- : : +- CometHashAggregate
- : : +- CometExchange
- : : +- CometHashAggregate
- : : +- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns
- : : : +- ReusedSubquery
- : : +- CometBroadcastExchange
- : : +- CometProject
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : +- CometBroadcastExchange
- : +- CometProject
- : +- CometFilter
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store
- +- CometBroadcastExchange
- +- CometProject
- +- CometFilter
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-
-Comet accelerated 46 out of 49 eligible operators (93%). Final plan contains 2 transitions between Spark and Comet.
\ No newline at end of file
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/simplified.txt
deleted file mode 100644
index 3e1d6243f..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q1/simplified.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometTakeOrderedAndProject [c_customer_id]
- CometProject [c_customer_id]
- CometBroadcastHashJoin [ctr_customer_sk,c_customer_sk,c_customer_id]
- CometProject [ctr_customer_sk]
- CometBroadcastHashJoin [ctr_customer_sk,ctr_store_sk,s_store_sk]
- CometProject [ctr_customer_sk,ctr_store_sk]
- CometBroadcastHashJoin [ctr_customer_sk,ctr_store_sk,ctr_total_return,(avg(ctr_total_return) * 1.2),ctr_store_sk]
- CometFilter [ctr_customer_sk,ctr_store_sk,ctr_total_return]
- CometHashAggregate [sum] [ctr_customer_sk,ctr_store_sk,ctr_total_return,sr_customer_sk,sr_store_sk,sum(UnscaledValue(sr_return_amt))]
- CometExchange [sr_customer_sk,sr_store_sk] #1
- CometHashAggregate [sr_return_amt] [sr_customer_sk,sr_store_sk,sum]
- CometProject [sr_customer_sk,sr_store_sk,sr_return_amt]
- CometBroadcastHashJoin [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk,d_date_sk]
- CometFilter [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #2
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [d_date_sk] #3
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [(avg(ctr_total_return) * 1.2),ctr_store_sk] #4
- CometFilter [(avg(ctr_total_return) * 1.2),ctr_store_sk]
- CometHashAggregate [sum,count] [(avg(ctr_total_return) * 1.2),ctr_store_sk,avg(ctr_total_return)]
- CometExchange [ctr_store_sk] #5
- CometHashAggregate [ctr_total_return] [ctr_store_sk,sum,count]
- CometHashAggregate [sr_customer_sk,sum] [ctr_store_sk,ctr_total_return,sr_store_sk,sum(UnscaledValue(sr_return_amt))]
- CometExchange [sr_customer_sk,sr_store_sk] #6
- CometHashAggregate [sr_return_amt] [sr_customer_sk,sr_store_sk,sum]
- CometProject [sr_customer_sk,sr_store_sk,sr_return_amt]
- CometBroadcastHashJoin [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk,d_date_sk]
- CometFilter [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_returns [sr_customer_sk,sr_store_sk,sr_return_amt,sr_returned_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk] #3
- CometBroadcastExchange [s_store_sk] #7
- CometProject [s_store_sk]
- CometFilter [s_store_sk,s_state]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store [s_store_sk,s_state]
- CometBroadcastExchange [c_customer_sk,c_customer_id] #8
- CometProject [c_customer_id] [c_customer_sk,c_customer_id]
- CometFilter [c_customer_sk,c_customer_id]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_datafusion/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_datafusion/explain.txt
deleted file mode 100644
index 29034bd45..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_datafusion/explain.txt
+++ /dev/null
@@ -1,295 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (45)
-+- * HashAggregate (44)
- +- * CometColumnarToRow (43)
- +- CometColumnarExchange (42)
- +- * HashAggregate (41)
- +- * Project (40)
- +- * BroadcastHashJoin Inner BuildRight (39)
- :- * Project (33)
- : +- * BroadcastHashJoin Inner BuildRight (32)
- : :- * Project (26)
- : : +- * Filter (25)
- : : +- * BroadcastHashJoin ExistenceJoin(exists#1) BuildRight (24)
- : : :- * BroadcastHashJoin ExistenceJoin(exists#2) BuildRight (17)
- : : : :- * BroadcastHashJoin LeftSemi BuildRight (10)
- : : : : :- * CometColumnarToRow (3)
- : : : : : +- CometFilter (2)
- : : : : : +- CometNativeScan parquet spark_catalog.default.customer (1)
- : : : : +- BroadcastExchange (9)
- : : : : +- * Project (8)
- : : : : +- * BroadcastHashJoin Inner BuildRight (7)
- : : : : :- * ColumnarToRow (5)
- : : : : : +- Scan parquet spark_catalog.default.store_sales (4)
- : : : : +- ReusedExchange (6)
- : : : +- BroadcastExchange (16)
- : : : +- * Project (15)
- : : : +- * BroadcastHashJoin Inner BuildRight (14)
- : : : :- * ColumnarToRow (12)
- : : : : +- Scan parquet spark_catalog.default.web_sales (11)
- : : : +- ReusedExchange (13)
- : : +- BroadcastExchange (23)
- : : +- * Project (22)
- : : +- * BroadcastHashJoin Inner BuildRight (21)
- : : :- * ColumnarToRow (19)
- : : : +- Scan parquet spark_catalog.default.catalog_sales (18)
- : : +- ReusedExchange (20)
- : +- BroadcastExchange (31)
- : +- * CometColumnarToRow (30)
- : +- CometProject (29)
- : +- CometFilter (28)
- : +- CometNativeScan parquet spark_catalog.default.customer_address (27)
- +- BroadcastExchange (38)
- +- * CometColumnarToRow (37)
- +- CometProject (36)
- +- CometFilter (35)
- +- CometNativeScan parquet spark_catalog.default.customer_demographics (34)
-
-
-(1) CometNativeScan parquet spark_catalog.default.customer
-Output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_current_addr_sk), IsNotNull(c_current_cdemo_sk)]
-ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int>
-
-(2) CometFilter
-Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Condition : (isnotnull(c_current_addr_sk#5) AND isnotnull(c_current_cdemo_sk#4))
-
-(3) CometColumnarToRow [codegen id : 9]
-Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-
-(4) Scan parquet spark_catalog.default.store_sales
-Output [2]: [ss_customer_sk#6, ss_sold_date_sk#7]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#7), dynamicpruningexpression(ss_sold_date_sk#7 IN dynamicpruning#8)]
-ReadSchema: struct<ss_customer_sk:int>
-
-(5) ColumnarToRow [codegen id : 2]
-Input [2]: [ss_customer_sk#6, ss_sold_date_sk#7]
-
-(6) ReusedExchange [Reuses operator id: 50]
-Output [1]: [d_date_sk#9]
-
-(7) BroadcastHashJoin [codegen id : 2]
-Left keys [1]: [ss_sold_date_sk#7]
-Right keys [1]: [d_date_sk#9]
-Join type: Inner
-Join condition: None
-
-(8) Project [codegen id : 2]
-Output [1]: [ss_customer_sk#6]
-Input [3]: [ss_customer_sk#6, ss_sold_date_sk#7, d_date_sk#9]
-
-(9) BroadcastExchange
-Input [1]: [ss_customer_sk#6]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=1]
-
-(10) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [ss_customer_sk#6]
-Join type: LeftSemi
-Join condition: None
-
-(11) Scan parquet spark_catalog.default.web_sales
-Output [2]: [ws_bill_customer_sk#10, ws_sold_date_sk#11]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#11), dynamicpruningexpression(ws_sold_date_sk#11 IN dynamicpruning#8)]
-ReadSchema: struct<ws_bill_customer_sk:int>
-
-(12) ColumnarToRow [codegen id : 4]
-Input [2]: [ws_bill_customer_sk#10, ws_sold_date_sk#11]
-
-(13) ReusedExchange [Reuses operator id: 50]
-Output [1]: [d_date_sk#12]
-
-(14) BroadcastHashJoin [codegen id : 4]
-Left keys [1]: [ws_sold_date_sk#11]
-Right keys [1]: [d_date_sk#12]
-Join type: Inner
-Join condition: None
-
-(15) Project [codegen id : 4]
-Output [1]: [ws_bill_customer_sk#10]
-Input [3]: [ws_bill_customer_sk#10, ws_sold_date_sk#11, d_date_sk#12]
-
-(16) BroadcastExchange
-Input [1]: [ws_bill_customer_sk#10]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=2]
-
-(17) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [ws_bill_customer_sk#10]
-Join type: ExistenceJoin(exists#2)
-Join condition: None
-
-(18) Scan parquet spark_catalog.default.catalog_sales
-Output [2]: [cs_ship_customer_sk#13, cs_sold_date_sk#14]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#14), dynamicpruningexpression(cs_sold_date_sk#14 IN dynamicpruning#8)]
-ReadSchema: struct<cs_ship_customer_sk:int>
-
-(19) ColumnarToRow [codegen id : 6]
-Input [2]: [cs_ship_customer_sk#13, cs_sold_date_sk#14]
-
-(20) ReusedExchange [Reuses operator id: 50]
-Output [1]: [d_date_sk#15]
-
-(21) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [cs_sold_date_sk#14]
-Right keys [1]: [d_date_sk#15]
-Join type: Inner
-Join condition: None
-
-(22) Project [codegen id : 6]
-Output [1]: [cs_ship_customer_sk#13]
-Input [3]: [cs_ship_customer_sk#13, cs_sold_date_sk#14, d_date_sk#15]
-
-(23) BroadcastExchange
-Input [1]: [cs_ship_customer_sk#13]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]
-
-(24) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [cs_ship_customer_sk#13]
-Join type: ExistenceJoin(exists#1)
-Join condition: None
-
-(25) Filter [codegen id : 9]
-Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
-Condition : (exists#2 OR exists#1)
-
-(26) Project [codegen id : 9]
-Output [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
-Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
-
-(27) CometNativeScan parquet spark_catalog.default.customer_address
-Output [2]: [ca_address_sk#16, ca_county#17]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_address]
-PushedFilters: [In(ca_county, [Dona Ana County,Jefferson County,La Porte County,Rush County,Toole County]), IsNotNull(ca_address_sk)]
-ReadSchema: struct<ca_address_sk:int,ca_county:string>
-
-(28) CometFilter
-Input [2]: [ca_address_sk#16, ca_county#17]
-Condition : (ca_county#17 IN (Rush County,Toole County,Jefferson County,Dona Ana County,La Porte County) AND isnotnull(ca_address_sk#16))
-
-(29) CometProject
-Input [2]: [ca_address_sk#16, ca_county#17]
-Arguments: [ca_address_sk#16], [ca_address_sk#16]
-
-(30) CometColumnarToRow [codegen id : 7]
-Input [1]: [ca_address_sk#16]
-
-(31) BroadcastExchange
-Input [1]: [ca_address_sk#16]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=4]
-
-(32) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [c_current_addr_sk#5]
-Right keys [1]: [ca_address_sk#16]
-Join type: Inner
-Join condition: None
-
-(33) Project [codegen id : 9]
-Output [1]: [c_current_cdemo_sk#4]
-Input [3]: [c_current_cdemo_sk#4, c_current_addr_sk#5, ca_address_sk#16]
-
-(34) CometNativeScan parquet spark_catalog.default.customer_demographics
-Output [9]: [cd_demo_sk#18, cd_gender#19, cd_marital_status#20, cd_education_status#21, cd_purchase_estimate#22, cd_credit_rating#23, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_demographics]
-PushedFilters: [IsNotNull(cd_demo_sk)]
-ReadSchema: struct<cd_demo_sk:int,cd_gender:string,cd_marital_status:string,cd_education_status:string,cd_purchase_estimate:int,cd_credit_rating:string,cd_dep_count:int,cd_dep_employed_count:int,cd_dep_college_count:int>
-
-(35) CometFilter
-Input [9]: [cd_demo_sk#18, cd_gender#19, cd_marital_status#20, cd_education_status#21, cd_purchase_estimate#22, cd_credit_rating#23, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Condition : isnotnull(cd_demo_sk#18)
-
-(36) CometProject
-Input [9]: [cd_demo_sk#18, cd_gender#19, cd_marital_status#20, cd_education_status#21, cd_purchase_estimate#22, cd_credit_rating#23, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Arguments: [cd_demo_sk#18, cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26], [cd_demo_sk#18, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_gender#19, 1, true, false, true) AS cd_gender#27, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_ma [...]
-
-(37) CometColumnarToRow [codegen id : 8]
-Input [9]: [cd_demo_sk#18, cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-
-(38) BroadcastExchange
-Input [9]: [cd_demo_sk#18, cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=5]
-
-(39) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [c_current_cdemo_sk#4]
-Right keys [1]: [cd_demo_sk#18]
-Join type: Inner
-Join condition: None
-
-(40) Project [codegen id : 9]
-Output [8]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Input [10]: [c_current_cdemo_sk#4, cd_demo_sk#18, cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-
-(41) HashAggregate [codegen id : 9]
-Input [8]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Keys [8]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Functions [1]: [partial_count(1)]
-Aggregate Attributes [1]: [count#31]
-Results [9]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26, count#32]
-
-(42) CometColumnarExchange
-Input [9]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26, count#32]
-Arguments: hashpartitioning(cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=6]
-
-(43) CometColumnarToRow [codegen id : 10]
-Input [9]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26, count#32]
-
-(44) HashAggregate [codegen id : 10]
-Input [9]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26, count#32]
-Keys [8]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cd_purchase_estimate#22, cd_credit_rating#30, cd_dep_count#24, cd_dep_employed_count#25, cd_dep_college_count#26]
-Functions [1]: [count(1)]
-Aggregate Attributes [1]: [count(1)#33]
-Results [14]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, count(1)#33 AS cnt1#34, cd_purchase_estimate#22, count(1)#33 AS cnt2#35, cd_credit_rating#30, count(1)#33 AS cnt3#36, cd_dep_count#24, count(1)#33 AS cnt4#37, cd_dep_employed_count#25, count(1)#33 AS cnt5#38, cd_dep_college_count#26, count(1)#33 AS cnt6#39]
-
-(45) TakeOrderedAndProject
-Input [14]: [cd_gender#27, cd_marital_status#28, cd_education_status#29, cnt1#34, cd_purchase_estimate#22, cnt2#35, cd_credit_rating#30, cnt3#36, cd_dep_count#24, cnt4#37, cd_dep_employed_count#25, cnt5#38, cd_dep_college_count#26, cnt6#39]
-Arguments: 100, [cd_gender#27 ASC NULLS FIRST, cd_marital_status#28 ASC NULLS FIRST, cd_education_status#29 ASC NULLS FIRST, cd_purchase_estimate#22 ASC NULLS FIRST, cd_credit_rating#30 ASC NULLS FIRST, cd_dep_count#24 ASC NULLS FIRST, cd_dep_employed_count#25 ASC NULLS FIRST, cd_dep_college_count#26 ASC NULLS FIRST], [cd_gender#27, cd_marital_status#28, cd_education_status#29, cnt1#34, cd_purchase_estimate#22, cnt2#35, cd_credit_rating#30, cnt3#36, cd_dep_count#24, cnt4#37, cd_dep_emplo [...]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 4 Hosting Expression = ss_sold_date_sk#7 IN dynamicpruning#8
-BroadcastExchange (50)
-+- * CometColumnarToRow (49)
- +- CometProject (48)
- +- CometFilter (47)
- +- CometNativeScan parquet spark_catalog.default.date_dim (46)
-
-
-(46) CometNativeScan parquet spark_catalog.default.date_dim
-Output [3]: [d_date_sk#9, d_year#40, d_moy#41]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>
-
-(47) CometFilter
-Input [3]: [d_date_sk#9, d_year#40, d_moy#41]
-Condition : (((((isnotnull(d_year#40) AND isnotnull(d_moy#41)) AND (d_year#40 = 2002)) AND (d_moy#41 >= 1)) AND (d_moy#41 <= 4)) AND isnotnull(d_date_sk#9))
-
-(48) CometProject
-Input [3]: [d_date_sk#9, d_year#40, d_moy#41]
-Arguments: [d_date_sk#9], [d_date_sk#9]
-
-(49) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#9]
-
-(50) BroadcastExchange
-Input [1]: [d_date_sk#9]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=7]
-
-Subquery:2 Hosting operator id = 11 Hosting Expression = ws_sold_date_sk#11 IN dynamicpruning#8
-
-Subquery:3 Hosting operator id = 18 Hosting Expression = cs_sold_date_sk#14 IN dynamicpruning#8
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_datafusion/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_datafusion/simplified.txt
deleted file mode 100644
index 0cc108b0b..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_datafusion/simplified.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-TakeOrderedAndProject [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6]
- WholeStageCodegen (10)
- HashAggregate [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count,count] [count(1),cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count] #1
- WholeStageCodegen (9)
- HashAggregate [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count] [count,count]
- Project [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- BroadcastHashJoin [c_current_cdemo_sk,cd_demo_sk]
- Project [c_current_cdemo_sk]
- BroadcastHashJoin [c_current_addr_sk,ca_address_sk]
- Project [c_current_cdemo_sk,c_current_addr_sk]
- Filter [exists,exists]
- BroadcastHashJoin [c_customer_sk,cs_ship_customer_sk]
- BroadcastHashJoin [c_customer_sk,ws_bill_customer_sk]
- BroadcastHashJoin [c_customer_sk,ss_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometFilter [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk]
- CometNativeScan parquet spark_catalog.default.customer [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk]
- InputAdapter
- BroadcastExchange #2
- WholeStageCodegen (2)
- Project [ss_customer_sk]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_customer_sk,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year,d_moy]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year,d_moy]
- InputAdapter
- ReusedExchange [d_date_sk] #3
- InputAdapter
- BroadcastExchange #4
- WholeStageCodegen (4)
- Project [ws_bill_customer_sk]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- InputAdapter
- ReusedExchange [d_date_sk] #3
- InputAdapter
- BroadcastExchange #5
- WholeStageCodegen (6)
- Project [cs_ship_customer_sk]
- BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.catalog_sales [cs_ship_customer_sk,cs_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- InputAdapter
- ReusedExchange [d_date_sk] #3
- InputAdapter
- BroadcastExchange #6
- WholeStageCodegen (7)
- CometColumnarToRow
- InputAdapter
- CometProject [ca_address_sk]
- CometFilter [ca_address_sk,ca_county]
- CometNativeScan parquet spark_catalog.default.customer_address [ca_address_sk,ca_county]
- InputAdapter
- BroadcastExchange #7
- WholeStageCodegen (8)
- CometColumnarToRow
- InputAdapter
- CometProject [cd_gender,cd_marital_status,cd_education_status,cd_credit_rating] [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- CometFilter [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- CometNativeScan parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/explain.txt
deleted file mode 100644
index 68bd670d8..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/explain.txt
+++ /dev/null
@@ -1,306 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (47)
-+- * HashAggregate (46)
- +- * CometColumnarToRow (45)
- +- CometColumnarExchange (44)
- +- * HashAggregate (43)
- +- * Project (42)
- +- * BroadcastHashJoin Inner BuildRight (41)
- :- * Project (35)
- : +- * BroadcastHashJoin Inner BuildRight (34)
- : :- * Project (28)
- : : +- * Filter (27)
- : : +- * BroadcastHashJoin ExistenceJoin(exists#1) BuildRight (26)
- : : :- * BroadcastHashJoin ExistenceJoin(exists#2) BuildRight (19)
- : : : :- * CometColumnarToRow (12)
- : : : : +- CometBroadcastHashJoin (11)
- : : : : :- CometFilter (2)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (1)
- : : : : +- CometBroadcastExchange (10)
- : : : : +- CometProject (9)
- : : : : +- CometBroadcastHashJoin (8)
- : : : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (3)
- : : : : +- CometBroadcastExchange (7)
- : : : : +- CometProject (6)
- : : : : +- CometFilter (5)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (4)
- : : : +- BroadcastExchange (18)
- : : : +- * CometColumnarToRow (17)
- : : : +- CometProject (16)
- : : : +- CometBroadcastHashJoin (15)
- : : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (13)
- : : : +- ReusedExchange (14)
- : : +- BroadcastExchange (25)
- : : +- * CometColumnarToRow (24)
- : : +- CometProject (23)
- : : +- CometBroadcastHashJoin (22)
- : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales (20)
- : : +- ReusedExchange (21)
- : +- BroadcastExchange (33)
- : +- * CometColumnarToRow (32)
- : +- CometProject (31)
- : +- CometFilter (30)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address (29)
- +- BroadcastExchange (40)
- +- * CometColumnarToRow (39)
- +- CometProject (38)
- +- CometFilter (37)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics (36)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_current_addr_sk), IsNotNull(c_current_cdemo_sk)]
-ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int>
-
-(2) CometFilter
-Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Condition : (isnotnull(c_current_addr_sk#5) AND isnotnull(c_current_cdemo_sk#4))
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [2]: [ss_customer_sk#6, ss_sold_date_sk#7]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#7), dynamicpruningexpression(ss_sold_date_sk#7 IN dynamicpruning#8)]
-ReadSchema: struct<ss_customer_sk:int>
-
-(4) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>
-
-(5) CometFilter
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Condition : (((((isnotnull(d_year#10) AND isnotnull(d_moy#11)) AND (d_year#10 = 2002)) AND (d_moy#11 >= 1)) AND (d_moy#11 <= 4)) AND isnotnull(d_date_sk#9))
-
-(6) CometProject
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Arguments: [d_date_sk#9], [d_date_sk#9]
-
-(7) CometBroadcastExchange
-Input [1]: [d_date_sk#9]
-Arguments: [d_date_sk#9]
-
-(8) CometBroadcastHashJoin
-Left output [2]: [ss_customer_sk#6, ss_sold_date_sk#7]
-Right output [1]: [d_date_sk#9]
-Arguments: [ss_sold_date_sk#7], [d_date_sk#9], Inner, BuildRight
-
-(9) CometProject
-Input [3]: [ss_customer_sk#6, ss_sold_date_sk#7, d_date_sk#9]
-Arguments: [ss_customer_sk#6], [ss_customer_sk#6]
-
-(10) CometBroadcastExchange
-Input [1]: [ss_customer_sk#6]
-Arguments: [ss_customer_sk#6]
-
-(11) CometBroadcastHashJoin
-Left output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Right output [1]: [ss_customer_sk#6]
-Arguments: [c_customer_sk#3], [ss_customer_sk#6], LeftSemi, BuildRight
-
-(12) CometColumnarToRow [codegen id : 5]
-Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-
-(13) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [2]: [ws_bill_customer_sk#12, ws_sold_date_sk#13]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#13), dynamicpruningexpression(ws_sold_date_sk#13 IN dynamicpruning#14)]
-ReadSchema: struct<ws_bill_customer_sk:int>
-
-(14) ReusedExchange [Reuses operator id: 7]
-Output [1]: [d_date_sk#15]
-
-(15) CometBroadcastHashJoin
-Left output [2]: [ws_bill_customer_sk#12, ws_sold_date_sk#13]
-Right output [1]: [d_date_sk#15]
-Arguments: [ws_sold_date_sk#13], [d_date_sk#15], Inner, BuildRight
-
-(16) CometProject
-Input [3]: [ws_bill_customer_sk#12, ws_sold_date_sk#13, d_date_sk#15]
-Arguments: [ws_bill_customer_sk#12], [ws_bill_customer_sk#12]
-
-(17) CometColumnarToRow [codegen id : 1]
-Input [1]: [ws_bill_customer_sk#12]
-
-(18) BroadcastExchange
-Input [1]: [ws_bill_customer_sk#12]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=1]
-
-(19) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [ws_bill_customer_sk#12]
-Join type: ExistenceJoin(exists#2)
-Join condition: None
-
-(20) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
-Output [2]: [cs_ship_customer_sk#16, cs_sold_date_sk#17]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#17), dynamicpruningexpression(cs_sold_date_sk#17 IN dynamicpruning#18)]
-ReadSchema: struct<cs_ship_customer_sk:int>
-
-(21) ReusedExchange [Reuses operator id: 7]
-Output [1]: [d_date_sk#19]
-
-(22) CometBroadcastHashJoin
-Left output [2]: [cs_ship_customer_sk#16, cs_sold_date_sk#17]
-Right output [1]: [d_date_sk#19]
-Arguments: [cs_sold_date_sk#17], [d_date_sk#19], Inner, BuildRight
-
-(23) CometProject
-Input [3]: [cs_ship_customer_sk#16, cs_sold_date_sk#17, d_date_sk#19]
-Arguments: [cs_ship_customer_sk#16], [cs_ship_customer_sk#16]
-
-(24) CometColumnarToRow [codegen id : 2]
-Input [1]: [cs_ship_customer_sk#16]
-
-(25) BroadcastExchange
-Input [1]: [cs_ship_customer_sk#16]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=2]
-
-(26) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [cs_ship_customer_sk#16]
-Join type: ExistenceJoin(exists#1)
-Join condition: None
-
-(27) Filter [codegen id : 5]
-Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
-Condition : (exists#2 OR exists#1)
-
-(28) Project [codegen id : 5]
-Output [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
-Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
-
-(29) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
-Output [2]: [ca_address_sk#20, ca_county#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_address]
-PushedFilters: [In(ca_county, [Dona Ana County,Jefferson County,La Porte County,Rush County,Toole County]), IsNotNull(ca_address_sk)]
-ReadSchema: struct<ca_address_sk:int,ca_county:string>
-
-(30) CometFilter
-Input [2]: [ca_address_sk#20, ca_county#21]
-Condition : (ca_county#21 IN (Rush County,Toole County,Jefferson County,Dona Ana County,La Porte County) AND isnotnull(ca_address_sk#20))
-
-(31) CometProject
-Input [2]: [ca_address_sk#20, ca_county#21]
-Arguments: [ca_address_sk#20], [ca_address_sk#20]
-
-(32) CometColumnarToRow [codegen id : 3]
-Input [1]: [ca_address_sk#20]
-
-(33) BroadcastExchange
-Input [1]: [ca_address_sk#20]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]
-
-(34) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_current_addr_sk#5]
-Right keys [1]: [ca_address_sk#20]
-Join type: Inner
-Join condition: None
-
-(35) Project [codegen id : 5]
-Output [1]: [c_current_cdemo_sk#4]
-Input [3]: [c_current_cdemo_sk#4, c_current_addr_sk#5, ca_address_sk#20]
-
-(36) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics
-Output [9]: [cd_demo_sk#22, cd_gender#23, cd_marital_status#24, cd_education_status#25, cd_purchase_estimate#26, cd_credit_rating#27, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_demographics]
-PushedFilters: [IsNotNull(cd_demo_sk)]
-ReadSchema: struct<cd_demo_sk:int,cd_gender:string,cd_marital_status:string,cd_education_status:string,cd_purchase_estimate:int,cd_credit_rating:string,cd_dep_count:int,cd_dep_employed_count:int,cd_dep_college_count:int>
-
-(37) CometFilter
-Input [9]: [cd_demo_sk#22, cd_gender#23, cd_marital_status#24, cd_education_status#25, cd_purchase_estimate#26, cd_credit_rating#27, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Condition : isnotnull(cd_demo_sk#22)
-
-(38) CometProject
-Input [9]: [cd_demo_sk#22, cd_gender#23, cd_marital_status#24, cd_education_status#25, cd_purchase_estimate#26, cd_credit_rating#27, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Arguments: [cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30], [cd_demo_sk#22, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_gender#23, 1, true, false, true) AS cd_gender#31, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_ma [...]
-
-(39) CometColumnarToRow [codegen id : 4]
-Input [9]: [cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-
-(40) BroadcastExchange
-Input [9]: [cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=4]
-
-(41) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_current_cdemo_sk#4]
-Right keys [1]: [cd_demo_sk#22]
-Join type: Inner
-Join condition: None
-
-(42) Project [codegen id : 5]
-Output [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Input [10]: [c_current_cdemo_sk#4, cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-
-(43) HashAggregate [codegen id : 5]
-Input [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Keys [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Functions [1]: [partial_count(1)]
-Aggregate Attributes [1]: [count#35]
-Results [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-
-(44) CometColumnarExchange
-Input [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-Arguments: hashpartitioning(cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=5]
-
-(45) CometColumnarToRow [codegen id : 6]
-Input [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-
-(46) HashAggregate [codegen id : 6]
-Input [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-Keys [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Functions [1]: [count(1)]
-Aggregate Attributes [1]: [count(1)#37]
-Results [14]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, count(1)#37 AS cnt1#38, cd_purchase_estimate#26, count(1)#37 AS cnt2#39, cd_credit_rating#34, count(1)#37 AS cnt3#40, cd_dep_count#28, count(1)#37 AS cnt4#41, cd_dep_employed_count#29, count(1)#37 AS cnt5#42, cd_dep_college_count#30, count(1)#37 AS cnt6#43]
-
-(47) TakeOrderedAndProject
-Input [14]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cnt1#38, cd_purchase_estimate#26, cnt2#39, cd_credit_rating#34, cnt3#40, cd_dep_count#28, cnt4#41, cd_dep_employed_count#29, cnt5#42, cd_dep_college_count#30, cnt6#43]
-Arguments: 100, [cd_gender#31 ASC NULLS FIRST, cd_marital_status#32 ASC NULLS FIRST, cd_education_status#33 ASC NULLS FIRST, cd_purchase_estimate#26 ASC NULLS FIRST, cd_credit_rating#34 ASC NULLS FIRST, cd_dep_count#28 ASC NULLS FIRST, cd_dep_employed_count#29 ASC NULLS FIRST, cd_dep_college_count#30 ASC NULLS FIRST], [cd_gender#31, cd_marital_status#32, cd_education_status#33, cnt1#38, cd_purchase_estimate#26, cnt2#39, cd_credit_rating#34, cnt3#40, cd_dep_count#28, cnt4#41, cd_dep_emplo [...]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 3 Hosting Expression = ss_sold_date_sk#7 IN dynamicpruning#8
-BroadcastExchange (52)
-+- * CometColumnarToRow (51)
- +- CometProject (50)
- +- CometFilter (49)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (48)
-
-
-(48) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>
-
-(49) CometFilter
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Condition : (((((isnotnull(d_year#10) AND isnotnull(d_moy#11)) AND (d_year#10 = 2002)) AND (d_moy#11 >= 1)) AND (d_moy#11 <= 4)) AND isnotnull(d_date_sk#9))
-
-(50) CometProject
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Arguments: [d_date_sk#9], [d_date_sk#9]
-
-(51) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#9]
-
-(52) BroadcastExchange
-Input [1]: [d_date_sk#9]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=6]
-
-Subquery:2 Hosting operator id = 13 Hosting Expression = ws_sold_date_sk#13 IN dynamicpruning#8
-
-Subquery:3 Hosting operator id = 20 Hosting Expression = cs_sold_date_sk#17 IN dynamicpruning#8
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/simplified.txt
deleted file mode 100644
index e7193f87e..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10.native_iceberg_compat/simplified.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-TakeOrderedAndProject [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6]
- WholeStageCodegen (6)
- HashAggregate [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count,count] [count(1),cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count] #1
- WholeStageCodegen (5)
- HashAggregate [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count] [count,count]
- Project [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- BroadcastHashJoin [c_current_cdemo_sk,cd_demo_sk]
- Project [c_current_cdemo_sk]
- BroadcastHashJoin [c_current_addr_sk,ca_address_sk]
- Project [c_current_cdemo_sk,c_current_addr_sk]
- Filter [exists,exists]
- BroadcastHashJoin [c_customer_sk,cs_ship_customer_sk]
- BroadcastHashJoin [c_customer_sk,ws_bill_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometBroadcastHashJoin [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk,ss_customer_sk]
- CometFilter [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk]
- CometBroadcastExchange [ss_customer_sk] #2
- CometProject [ss_customer_sk]
- CometBroadcastHashJoin [ss_customer_sk,ss_sold_date_sk,d_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year,d_moy]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year,d_moy]
- CometBroadcastExchange [d_date_sk] #4
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year,d_moy]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year,d_moy]
- InputAdapter
- BroadcastExchange #5
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [ws_bill_customer_sk]
- CometBroadcastHashJoin [ws_bill_customer_sk,ws_sold_date_sk,d_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk] #4
- InputAdapter
- BroadcastExchange #6
- WholeStageCodegen (2)
- CometColumnarToRow
- InputAdapter
- CometProject [cs_ship_customer_sk]
- CometBroadcastHashJoin [cs_ship_customer_sk,cs_sold_date_sk,d_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales [cs_ship_customer_sk,cs_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk] #4
- InputAdapter
- BroadcastExchange #7
- WholeStageCodegen (3)
- CometColumnarToRow
- InputAdapter
- CometProject [ca_address_sk]
- CometFilter [ca_address_sk,ca_county]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address [ca_address_sk,ca_county]
- InputAdapter
- BroadcastExchange #8
- WholeStageCodegen (4)
- CometColumnarToRow
- InputAdapter
- CometProject [cd_gender,cd_marital_status,cd_education_status,cd_credit_rating] [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- CometFilter [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/explain.txt
deleted file mode 100644
index 68bd670d8..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/explain.txt
+++ /dev/null
@@ -1,306 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (47)
-+- * HashAggregate (46)
- +- * CometColumnarToRow (45)
- +- CometColumnarExchange (44)
- +- * HashAggregate (43)
- +- * Project (42)
- +- * BroadcastHashJoin Inner BuildRight (41)
- :- * Project (35)
- : +- * BroadcastHashJoin Inner BuildRight (34)
- : :- * Project (28)
- : : +- * Filter (27)
- : : +- * BroadcastHashJoin ExistenceJoin(exists#1) BuildRight (26)
- : : :- * BroadcastHashJoin ExistenceJoin(exists#2) BuildRight (19)
- : : : :- * CometColumnarToRow (12)
- : : : : +- CometBroadcastHashJoin (11)
- : : : : :- CometFilter (2)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (1)
- : : : : +- CometBroadcastExchange (10)
- : : : : +- CometProject (9)
- : : : : +- CometBroadcastHashJoin (8)
- : : : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (3)
- : : : : +- CometBroadcastExchange (7)
- : : : : +- CometProject (6)
- : : : : +- CometFilter (5)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (4)
- : : : +- BroadcastExchange (18)
- : : : +- * CometColumnarToRow (17)
- : : : +- CometProject (16)
- : : : +- CometBroadcastHashJoin (15)
- : : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (13)
- : : : +- ReusedExchange (14)
- : : +- BroadcastExchange (25)
- : : +- * CometColumnarToRow (24)
- : : +- CometProject (23)
- : : +- CometBroadcastHashJoin (22)
- : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales (20)
- : : +- ReusedExchange (21)
- : +- BroadcastExchange (33)
- : +- * CometColumnarToRow (32)
- : +- CometProject (31)
- : +- CometFilter (30)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address (29)
- +- BroadcastExchange (40)
- +- * CometColumnarToRow (39)
- +- CometProject (38)
- +- CometFilter (37)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics (36)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_current_addr_sk), IsNotNull(c_current_cdemo_sk)]
-ReadSchema: struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int>
-
-(2) CometFilter
-Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Condition : (isnotnull(c_current_addr_sk#5) AND isnotnull(c_current_cdemo_sk#4))
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [2]: [ss_customer_sk#6, ss_sold_date_sk#7]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#7), dynamicpruningexpression(ss_sold_date_sk#7 IN dynamicpruning#8)]
-ReadSchema: struct<ss_customer_sk:int>
-
-(4) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>
-
-(5) CometFilter
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Condition : (((((isnotnull(d_year#10) AND isnotnull(d_moy#11)) AND (d_year#10 = 2002)) AND (d_moy#11 >= 1)) AND (d_moy#11 <= 4)) AND isnotnull(d_date_sk#9))
-
-(6) CometProject
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Arguments: [d_date_sk#9], [d_date_sk#9]
-
-(7) CometBroadcastExchange
-Input [1]: [d_date_sk#9]
-Arguments: [d_date_sk#9]
-
-(8) CometBroadcastHashJoin
-Left output [2]: [ss_customer_sk#6, ss_sold_date_sk#7]
-Right output [1]: [d_date_sk#9]
-Arguments: [ss_sold_date_sk#7], [d_date_sk#9], Inner, BuildRight
-
-(9) CometProject
-Input [3]: [ss_customer_sk#6, ss_sold_date_sk#7, d_date_sk#9]
-Arguments: [ss_customer_sk#6], [ss_customer_sk#6]
-
-(10) CometBroadcastExchange
-Input [1]: [ss_customer_sk#6]
-Arguments: [ss_customer_sk#6]
-
-(11) CometBroadcastHashJoin
-Left output [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-Right output [1]: [ss_customer_sk#6]
-Arguments: [c_customer_sk#3], [ss_customer_sk#6], LeftSemi, BuildRight
-
-(12) CometColumnarToRow [codegen id : 5]
-Input [3]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5]
-
-(13) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [2]: [ws_bill_customer_sk#12, ws_sold_date_sk#13]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#13), dynamicpruningexpression(ws_sold_date_sk#13 IN dynamicpruning#14)]
-ReadSchema: struct<ws_bill_customer_sk:int>
-
-(14) ReusedExchange [Reuses operator id: 7]
-Output [1]: [d_date_sk#15]
-
-(15) CometBroadcastHashJoin
-Left output [2]: [ws_bill_customer_sk#12, ws_sold_date_sk#13]
-Right output [1]: [d_date_sk#15]
-Arguments: [ws_sold_date_sk#13], [d_date_sk#15], Inner, BuildRight
-
-(16) CometProject
-Input [3]: [ws_bill_customer_sk#12, ws_sold_date_sk#13, d_date_sk#15]
-Arguments: [ws_bill_customer_sk#12], [ws_bill_customer_sk#12]
-
-(17) CometColumnarToRow [codegen id : 1]
-Input [1]: [ws_bill_customer_sk#12]
-
-(18) BroadcastExchange
-Input [1]: [ws_bill_customer_sk#12]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=1]
-
-(19) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [ws_bill_customer_sk#12]
-Join type: ExistenceJoin(exists#2)
-Join condition: None
-
-(20) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
-Output [2]: [cs_ship_customer_sk#16, cs_sold_date_sk#17]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#17), dynamicpruningexpression(cs_sold_date_sk#17 IN dynamicpruning#18)]
-ReadSchema: struct<cs_ship_customer_sk:int>
-
-(21) ReusedExchange [Reuses operator id: 7]
-Output [1]: [d_date_sk#19]
-
-(22) CometBroadcastHashJoin
-Left output [2]: [cs_ship_customer_sk#16, cs_sold_date_sk#17]
-Right output [1]: [d_date_sk#19]
-Arguments: [cs_sold_date_sk#17], [d_date_sk#19], Inner, BuildRight
-
-(23) CometProject
-Input [3]: [cs_ship_customer_sk#16, cs_sold_date_sk#17, d_date_sk#19]
-Arguments: [cs_ship_customer_sk#16], [cs_ship_customer_sk#16]
-
-(24) CometColumnarToRow [codegen id : 2]
-Input [1]: [cs_ship_customer_sk#16]
-
-(25) BroadcastExchange
-Input [1]: [cs_ship_customer_sk#16]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=2]
-
-(26) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_customer_sk#3]
-Right keys [1]: [cs_ship_customer_sk#16]
-Join type: ExistenceJoin(exists#1)
-Join condition: None
-
-(27) Filter [codegen id : 5]
-Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
-Condition : (exists#2 OR exists#1)
-
-(28) Project [codegen id : 5]
-Output [2]: [c_current_cdemo_sk#4, c_current_addr_sk#5]
-Input [5]: [c_customer_sk#3, c_current_cdemo_sk#4, c_current_addr_sk#5, exists#2, exists#1]
-
-(29) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
-Output [2]: [ca_address_sk#20, ca_county#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_address]
-PushedFilters: [In(ca_county, [Dona Ana County,Jefferson County,La Porte County,Rush County,Toole County]), IsNotNull(ca_address_sk)]
-ReadSchema: struct<ca_address_sk:int,ca_county:string>
-
-(30) CometFilter
-Input [2]: [ca_address_sk#20, ca_county#21]
-Condition : (ca_county#21 IN (Rush County,Toole County,Jefferson County,Dona Ana County,La Porte County) AND isnotnull(ca_address_sk#20))
-
-(31) CometProject
-Input [2]: [ca_address_sk#20, ca_county#21]
-Arguments: [ca_address_sk#20], [ca_address_sk#20]
-
-(32) CometColumnarToRow [codegen id : 3]
-Input [1]: [ca_address_sk#20]
-
-(33) BroadcastExchange
-Input [1]: [ca_address_sk#20]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]
-
-(34) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_current_addr_sk#5]
-Right keys [1]: [ca_address_sk#20]
-Join type: Inner
-Join condition: None
-
-(35) Project [codegen id : 5]
-Output [1]: [c_current_cdemo_sk#4]
-Input [3]: [c_current_cdemo_sk#4, c_current_addr_sk#5, ca_address_sk#20]
-
-(36) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics
-Output [9]: [cd_demo_sk#22, cd_gender#23, cd_marital_status#24, cd_education_status#25, cd_purchase_estimate#26, cd_credit_rating#27, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_demographics]
-PushedFilters: [IsNotNull(cd_demo_sk)]
-ReadSchema: struct<cd_demo_sk:int,cd_gender:string,cd_marital_status:string,cd_education_status:string,cd_purchase_estimate:int,cd_credit_rating:string,cd_dep_count:int,cd_dep_employed_count:int,cd_dep_college_count:int>
-
-(37) CometFilter
-Input [9]: [cd_demo_sk#22, cd_gender#23, cd_marital_status#24, cd_education_status#25, cd_purchase_estimate#26, cd_credit_rating#27, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Condition : isnotnull(cd_demo_sk#22)
-
-(38) CometProject
-Input [9]: [cd_demo_sk#22, cd_gender#23, cd_marital_status#24, cd_education_status#25, cd_purchase_estimate#26, cd_credit_rating#27, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Arguments: [cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30], [cd_demo_sk#22, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_gender#23, 1, true, false, true) AS cd_gender#31, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_ma [...]
-
-(39) CometColumnarToRow [codegen id : 4]
-Input [9]: [cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-
-(40) BroadcastExchange
-Input [9]: [cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=4]
-
-(41) BroadcastHashJoin [codegen id : 5]
-Left keys [1]: [c_current_cdemo_sk#4]
-Right keys [1]: [cd_demo_sk#22]
-Join type: Inner
-Join condition: None
-
-(42) Project [codegen id : 5]
-Output [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Input [10]: [c_current_cdemo_sk#4, cd_demo_sk#22, cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-
-(43) HashAggregate [codegen id : 5]
-Input [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Keys [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Functions [1]: [partial_count(1)]
-Aggregate Attributes [1]: [count#35]
-Results [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-
-(44) CometColumnarExchange
-Input [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-Arguments: hashpartitioning(cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=5]
-
-(45) CometColumnarToRow [codegen id : 6]
-Input [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-
-(46) HashAggregate [codegen id : 6]
-Input [9]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30, count#36]
-Keys [8]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cd_purchase_estimate#26, cd_credit_rating#34, cd_dep_count#28, cd_dep_employed_count#29, cd_dep_college_count#30]
-Functions [1]: [count(1)]
-Aggregate Attributes [1]: [count(1)#37]
-Results [14]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, count(1)#37 AS cnt1#38, cd_purchase_estimate#26, count(1)#37 AS cnt2#39, cd_credit_rating#34, count(1)#37 AS cnt3#40, cd_dep_count#28, count(1)#37 AS cnt4#41, cd_dep_employed_count#29, count(1)#37 AS cnt5#42, cd_dep_college_count#30, count(1)#37 AS cnt6#43]
-
-(47) TakeOrderedAndProject
-Input [14]: [cd_gender#31, cd_marital_status#32, cd_education_status#33, cnt1#38, cd_purchase_estimate#26, cnt2#39, cd_credit_rating#34, cnt3#40, cd_dep_count#28, cnt4#41, cd_dep_employed_count#29, cnt5#42, cd_dep_college_count#30, cnt6#43]
-Arguments: 100, [cd_gender#31 ASC NULLS FIRST, cd_marital_status#32 ASC NULLS FIRST, cd_education_status#33 ASC NULLS FIRST, cd_purchase_estimate#26 ASC NULLS FIRST, cd_credit_rating#34 ASC NULLS FIRST, cd_dep_count#28 ASC NULLS FIRST, cd_dep_employed_count#29 ASC NULLS FIRST, cd_dep_college_count#30 ASC NULLS FIRST], [cd_gender#31, cd_marital_status#32, cd_education_status#33, cnt1#38, cd_purchase_estimate#26, cnt2#39, cd_credit_rating#34, cnt3#40, cd_dep_count#28, cnt4#41, cd_dep_emplo [...]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 3 Hosting Expression = ss_sold_date_sk#7 IN dynamicpruning#8
-BroadcastExchange (52)
-+- * CometColumnarToRow (51)
- +- CometProject (50)
- +- CometFilter (49)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (48)
-
-
-(48) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,1), LessThanOrEqual(d_moy,4), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>
-
-(49) CometFilter
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Condition : (((((isnotnull(d_year#10) AND isnotnull(d_moy#11)) AND (d_year#10 = 2002)) AND (d_moy#11 >= 1)) AND (d_moy#11 <= 4)) AND isnotnull(d_date_sk#9))
-
-(50) CometProject
-Input [3]: [d_date_sk#9, d_year#10, d_moy#11]
-Arguments: [d_date_sk#9], [d_date_sk#9]
-
-(51) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#9]
-
-(52) BroadcastExchange
-Input [1]: [d_date_sk#9]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=6]
-
-Subquery:2 Hosting operator id = 13 Hosting Expression = ws_sold_date_sk#13 IN dynamicpruning#8
-
-Subquery:3 Hosting operator id = 20 Hosting Expression = cs_sold_date_sk#17 IN dynamicpruning#8
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt
deleted file mode 100644
index a6f33d6f7..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/extended.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-TakeOrderedAndProject
-+- HashAggregate
- +- CometColumnarToRow
- +- CometColumnarExchange
- +- HashAggregate
- +- Project
- +- BroadcastHashJoin
- :- Project
- : +- BroadcastHashJoin
- : :- Project
- : : +- Filter
- : : +- BroadcastHashJoin
- : : :- BroadcastHashJoin [COMET: Unsupported join type ExistenceJoin(exists#1)]
- : : : :- CometColumnarToRow
- : : : : +- CometBroadcastHashJoin
- : : : : :- CometFilter
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
- : : : : +- CometBroadcastExchange
- : : : : +- CometProject
- : : : : +- CometBroadcastHashJoin
- : : : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
- : : : : : +- SubqueryBroadcast
- : : : : : +- BroadcastExchange
- : : : : : +- CometColumnarToRow
- : : : : : +- CometProject
- : : : : : +- CometFilter
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : : : +- CometBroadcastExchange
- : : : : +- CometProject
- : : : : +- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : : +- BroadcastExchange
- : : : +- CometColumnarToRow
- : : : +- CometProject
- : : : +- CometBroadcastHashJoin
- : : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
- : : : : +- ReusedSubquery
- : : : +- CometBroadcastExchange
- : : : +- CometProject
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : +- BroadcastExchange
- : : +- CometColumnarToRow
- : : +- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
- : : : +- ReusedSubquery
- : : +- CometBroadcastExchange
- : : +- CometProject
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : +- BroadcastExchange
- : +- CometColumnarToRow
- : +- CometProject
- : +- CometFilter
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
- +- BroadcastExchange
- +- CometColumnarToRow
- +- CometProject
- +- CometFilter
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics
-
-Comet accelerated 35 out of 54 eligible operators (64%). Final plan contains 7 transitions between Spark and Comet.
\ No newline at end of file
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/simplified.txt
deleted file mode 100644
index e7193f87e..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q10/simplified.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-TakeOrderedAndProject [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6]
- WholeStageCodegen (6)
- HashAggregate [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count,count] [count(1),cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count] #1
- WholeStageCodegen (5)
- HashAggregate [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count] [count,count]
- Project [cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- BroadcastHashJoin [c_current_cdemo_sk,cd_demo_sk]
- Project [c_current_cdemo_sk]
- BroadcastHashJoin [c_current_addr_sk,ca_address_sk]
- Project [c_current_cdemo_sk,c_current_addr_sk]
- Filter [exists,exists]
- BroadcastHashJoin [c_customer_sk,cs_ship_customer_sk]
- BroadcastHashJoin [c_customer_sk,ws_bill_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometBroadcastHashJoin [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk,ss_customer_sk]
- CometFilter [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_current_cdemo_sk,c_current_addr_sk]
- CometBroadcastExchange [ss_customer_sk] #2
- CometProject [ss_customer_sk]
- CometBroadcastHashJoin [ss_customer_sk,ss_sold_date_sk,d_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year,d_moy]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year,d_moy]
- CometBroadcastExchange [d_date_sk] #4
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year,d_moy]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year,d_moy]
- InputAdapter
- BroadcastExchange #5
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [ws_bill_customer_sk]
- CometBroadcastHashJoin [ws_bill_customer_sk,ws_sold_date_sk,d_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk] #4
- InputAdapter
- BroadcastExchange #6
- WholeStageCodegen (2)
- CometColumnarToRow
- InputAdapter
- CometProject [cs_ship_customer_sk]
- CometBroadcastHashJoin [cs_ship_customer_sk,cs_sold_date_sk,d_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales [cs_ship_customer_sk,cs_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk] #4
- InputAdapter
- BroadcastExchange #7
- WholeStageCodegen (3)
- CometColumnarToRow
- InputAdapter
- CometProject [ca_address_sk]
- CometFilter [ca_address_sk,ca_county]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address [ca_address_sk,ca_county]
- InputAdapter
- BroadcastExchange #8
- WholeStageCodegen (4)
- CometColumnarToRow
- InputAdapter
- CometProject [cd_gender,cd_marital_status,cd_education_status,cd_credit_rating] [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- CometFilter [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_gender,cd_marital_status,cd_education_status,cd_purchase_estimate,cd_credit_rating,cd_dep_count,cd_dep_employed_count,cd_dep_college_count]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_datafusion/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_datafusion/explain.txt
deleted file mode 100644
index d697d27f1..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_datafusion/explain.txt
+++ /dev/null
@@ -1,518 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (80)
-+- * Project (79)
- +- * BroadcastHashJoin Inner BuildRight (78)
- :- * Project (59)
- : +- * BroadcastHashJoin Inner BuildRight (58)
- : :- * Project (38)
- : : +- * BroadcastHashJoin Inner BuildRight (37)
- : : :- * Filter (18)
- : : : +- * HashAggregate (17)
- : : : +- * CometColumnarToRow (16)
- : : : +- CometColumnarExchange (15)
- : : : +- * HashAggregate (14)
- : : : +- * Project (13)
- : : : +- * BroadcastHashJoin Inner BuildRight (12)
- : : : :- * Project (10)
- : : : : +- * BroadcastHashJoin Inner BuildRight (9)
- : : : : :- * CometColumnarToRow (4)
- : : : : : +- CometProject (3)
- : : : : : +- CometFilter (2)
- : : : : : +- CometNativeScan parquet spark_catalog.default.customer (1)
- : : : : +- BroadcastExchange (8)
- : : : : +- * Filter (7)
- : : : : +- * ColumnarToRow (6)
- : : : : +- Scan parquet spark_catalog.default.store_sales (5)
- : : : +- ReusedExchange (11)
- : : +- BroadcastExchange (36)
- : : +- * HashAggregate (35)
- : : +- * CometColumnarToRow (34)
- : : +- CometColumnarExchange (33)
- : : +- * HashAggregate (32)
- : : +- * Project (31)
- : : +- * BroadcastHashJoin Inner BuildRight (30)
- : : :- * Project (28)
- : : : +- * BroadcastHashJoin Inner BuildRight (27)
- : : : :- * CometColumnarToRow (22)
- : : : : +- CometProject (21)
- : : : : +- CometFilter (20)
- : : : : +- CometNativeScan parquet spark_catalog.default.customer (19)
- : : : +- BroadcastExchange (26)
- : : : +- * Filter (25)
- : : : +- * ColumnarToRow (24)
- : : : +- Scan parquet spark_catalog.default.store_sales (23)
- : : +- ReusedExchange (29)
- : +- BroadcastExchange (57)
- : +- * Filter (56)
- : +- * HashAggregate (55)
- : +- * CometColumnarToRow (54)
- : +- CometColumnarExchange (53)
- : +- * HashAggregate (52)
- : +- * Project (51)
- : +- * BroadcastHashJoin Inner BuildRight (50)
- : :- * Project (48)
- : : +- * BroadcastHashJoin Inner BuildRight (47)
- : : :- * CometColumnarToRow (42)
- : : : +- CometProject (41)
- : : : +- CometFilter (40)
- : : : +- CometNativeScan parquet spark_catalog.default.customer (39)
- : : +- BroadcastExchange (46)
- : : +- * Filter (45)
- : : +- * ColumnarToRow (44)
- : : +- Scan parquet spark_catalog.default.web_sales (43)
- : +- ReusedExchange (49)
- +- BroadcastExchange (77)
- +- * HashAggregate (76)
- +- * CometColumnarToRow (75)
- +- CometColumnarExchange (74)
- +- * HashAggregate (73)
- +- * Project (72)
- +- * BroadcastHashJoin Inner BuildRight (71)
- :- * Project (69)
- : +- * BroadcastHashJoin Inner BuildRight (68)
- : :- * CometColumnarToRow (63)
- : : +- CometProject (62)
- : : +- CometFilter (61)
- : : +- CometNativeScan parquet spark_catalog.default.customer (60)
- : +- BroadcastExchange (67)
- : +- * Filter (66)
- : +- * ColumnarToRow (65)
- : +- Scan parquet spark_catalog.default.web_sales (64)
- +- ReusedExchange (70)
-
-
-(1) CometNativeScan parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(2) CometFilter
-Input [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Condition : (isnotnull(c_customer_sk#1) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#2, 16, true, false, true)))
-
-(3) CometProject
-Input [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Arguments: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14], [c_customer_sk#1, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#2, 16, true, false, true) AS c_customer_id#9, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#3, 20, true, false, true) AS [...]
-
-(4) CometColumnarToRow [codegen id : 3]
-Input [8]: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-
-(5) Scan parquet spark_catalog.default.store_sales
-Output [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#18), dynamicpruningexpression(ss_sold_date_sk#18 IN dynamicpruning#19)]
-PushedFilters: [IsNotNull(ss_customer_sk)]
-ReadSchema: struct<ss_customer_sk:int,ss_ext_discount_amt:decimal(7,2),ss_ext_list_price:decimal(7,2)>
-
-(6) ColumnarToRow [codegen id : 1]
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-
-(7) Filter [codegen id : 1]
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Condition : isnotnull(ss_customer_sk#15)
-
-(8) BroadcastExchange
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=1]
-
-(9) BroadcastHashJoin [codegen id : 3]
-Left keys [1]: [c_customer_sk#1]
-Right keys [1]: [ss_customer_sk#15]
-Join type: Inner
-Join condition: None
-
-(10) Project [codegen id : 3]
-Output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Input [12]: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-
-(11) ReusedExchange [Reuses operator id: 84]
-Output [2]: [d_date_sk#20, d_year#21]
-
-(12) BroadcastHashJoin [codegen id : 3]
-Left keys [1]: [ss_sold_date_sk#18]
-Right keys [1]: [d_date_sk#20]
-Join type: Inner
-Join condition: None
-
-(13) Project [codegen id : 3]
-Output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21]
-Input [12]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18, d_date_sk#20, d_year#21]
-
-(14) HashAggregate [codegen id : 3]
-Input [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Functions [1]: [partial_sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))]
-Aggregate Attributes [1]: [sum#22]
-Results [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#23]
-
-(15) CometColumnarExchange
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#23]
-Arguments: hashpartitioning(c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=2]
-
-(16) CometColumnarToRow [codegen id : 16]
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#23]
-
-(17) HashAggregate [codegen id : 16]
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#23]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Functions [1]: [sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))]
-Aggregate Attributes [1]: [sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))#24]
-Results [2]: [c_customer_id#9 AS customer_id#25, MakeDecimal(sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))#24,18,2) AS year_total#26]
-
-(18) Filter [codegen id : 16]
-Input [2]: [customer_id#25, year_total#26]
-Condition : (isnotnull(year_total#26) AND (year_total#26 > 0.00))
-
-(19) CometNativeScan parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#27, c_customer_id#28, c_first_name#29, c_last_name#30, c_preferred_cust_flag#31, c_birth_country#32, c_login#33, c_email_address#34]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(20) CometFilter
-Input [8]: [c_customer_sk#27, c_customer_id#28, c_first_name#29, c_last_name#30, c_preferred_cust_flag#31, c_birth_country#32, c_login#33, c_email_address#34]
-Condition : (isnotnull(c_customer_sk#27) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#28, 16, true, false, true)))
-
-(21) CometProject
-Input [8]: [c_customer_sk#27, c_customer_id#28, c_first_name#29, c_last_name#30, c_preferred_cust_flag#31, c_birth_country#32, c_login#33, c_email_address#34]
-Arguments: [c_customer_sk#27, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14], [c_customer_sk#27, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#28, 16, true, false, true) AS c_customer_id#9, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#29, 20, true, false, tru [...]
-
-(22) CometColumnarToRow [codegen id : 6]
-Input [8]: [c_customer_sk#27, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14]
-
-(23) Scan parquet spark_catalog.default.store_sales
-Output [4]: [ss_customer_sk#35, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#38), dynamicpruningexpression(ss_sold_date_sk#38 IN dynamicpruning#39)]
-PushedFilters: [IsNotNull(ss_customer_sk)]
-ReadSchema: struct<ss_customer_sk:int,ss_ext_discount_amt:decimal(7,2),ss_ext_list_price:decimal(7,2)>
-
-(24) ColumnarToRow [codegen id : 4]
-Input [4]: [ss_customer_sk#35, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38]
-
-(25) Filter [codegen id : 4]
-Input [4]: [ss_customer_sk#35, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38]
-Condition : isnotnull(ss_customer_sk#35)
-
-(26) BroadcastExchange
-Input [4]: [ss_customer_sk#35, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=3]
-
-(27) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [c_customer_sk#27]
-Right keys [1]: [ss_customer_sk#35]
-Join type: Inner
-Join condition: None
-
-(28) Project [codegen id : 6]
-Output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38]
-Input [12]: [c_customer_sk#27, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, ss_customer_sk#35, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38]
-
-(29) ReusedExchange [Reuses operator id: 88]
-Output [2]: [d_date_sk#40, d_year#41]
-
-(30) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_sold_date_sk#38]
-Right keys [1]: [d_date_sk#40]
-Join type: Inner
-Join condition: None
-
-(31) Project [codegen id : 6]
-Output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, ss_ext_discount_amt#36, ss_ext_list_price#37, d_year#41]
-Input [12]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, ss_ext_discount_amt#36, ss_ext_list_price#37, ss_sold_date_sk#38, d_date_sk#40, d_year#41]
-
-(32) HashAggregate [codegen id : 6]
-Input [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, ss_ext_discount_amt#36, ss_ext_list_price#37, d_year#41]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14]
-Functions [1]: [partial_sum(UnscaledValue((ss_ext_list_price#37 - ss_ext_discount_amt#36)))]
-Aggregate Attributes [1]: [sum#42]
-Results [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, sum#43]
-
-(33) CometColumnarExchange
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, sum#43]
-Arguments: hashpartitioning(c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=4]
-
-(34) CometColumnarToRow [codegen id : 7]
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, sum#43]
-
-(35) HashAggregate [codegen id : 7]
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14, sum#43]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#41, c_preferred_cust_flag#12, c_birth_country#32, c_login#13, c_email_address#14]
-Functions [1]: [sum(UnscaledValue((ss_ext_list_price#37 - ss_ext_discount_amt#36)))]
-Aggregate Attributes [1]: [sum(UnscaledValue((ss_ext_list_price#37 - ss_ext_discount_amt#36)))#24]
-Results [3]: [c_customer_id#9 AS customer_id#44, c_preferred_cust_flag#12 AS customer_preferred_cust_flag#45, MakeDecimal(sum(UnscaledValue((ss_ext_list_price#37 - ss_ext_discount_amt#36)))#24,18,2) AS year_total#46]
-
-(36) BroadcastExchange
-Input [3]: [customer_id#44, customer_preferred_cust_flag#45, year_total#46]
-Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=5]
-
-(37) BroadcastHashJoin [codegen id : 16]
-Left keys [1]: [customer_id#25]
-Right keys [1]: [customer_id#44]
-Join type: Inner
-Join condition: None
-
-(38) Project [codegen id : 16]
-Output [4]: [customer_id#25, year_total#26, customer_preferred_cust_flag#45, year_total#46]
-Input [5]: [customer_id#25, year_total#26, customer_id#44, customer_preferred_cust_flag#45, year_total#46]
-
-(39) CometNativeScan parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#47, c_customer_id#48, c_first_name#49, c_last_name#50, c_preferred_cust_flag#51, c_birth_country#52, c_login#53, c_email_address#54]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(40) CometFilter
-Input [8]: [c_customer_sk#47, c_customer_id#48, c_first_name#49, c_last_name#50, c_preferred_cust_flag#51, c_birth_country#52, c_login#53, c_email_address#54]
-Condition : (isnotnull(c_customer_sk#47) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#48, 16, true, false, true)))
-
-(41) CometProject
-Input [8]: [c_customer_sk#47, c_customer_id#48, c_first_name#49, c_last_name#50, c_preferred_cust_flag#51, c_birth_country#52, c_login#53, c_email_address#54]
-Arguments: [c_customer_sk#47, c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60], [c_customer_sk#47, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#48, 16, true, false, true) AS c_customer_id#55, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#49, 20, true, false, t [...]
-
-(42) CometColumnarToRow [codegen id : 10]
-Input [8]: [c_customer_sk#47, c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60]
-
-(43) Scan parquet spark_catalog.default.web_sales
-Output [4]: [ws_bill_customer_sk#61, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#64), dynamicpruningexpression(ws_sold_date_sk#64 IN dynamicpruning#19)]
-PushedFilters: [IsNotNull(ws_bill_customer_sk)]
-ReadSchema: struct<ws_bill_customer_sk:int,ws_ext_discount_amt:decimal(7,2),ws_ext_list_price:decimal(7,2)>
-
-(44) ColumnarToRow [codegen id : 8]
-Input [4]: [ws_bill_customer_sk#61, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64]
-
-(45) Filter [codegen id : 8]
-Input [4]: [ws_bill_customer_sk#61, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64]
-Condition : isnotnull(ws_bill_customer_sk#61)
-
-(46) BroadcastExchange
-Input [4]: [ws_bill_customer_sk#61, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=6]
-
-(47) BroadcastHashJoin [codegen id : 10]
-Left keys [1]: [c_customer_sk#47]
-Right keys [1]: [ws_bill_customer_sk#61]
-Join type: Inner
-Join condition: None
-
-(48) Project [codegen id : 10]
-Output [10]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64]
-Input [12]: [c_customer_sk#47, c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, ws_bill_customer_sk#61, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64]
-
-(49) ReusedExchange [Reuses operator id: 84]
-Output [2]: [d_date_sk#65, d_year#66]
-
-(50) BroadcastHashJoin [codegen id : 10]
-Left keys [1]: [ws_sold_date_sk#64]
-Right keys [1]: [d_date_sk#65]
-Join type: Inner
-Join condition: None
-
-(51) Project [codegen id : 10]
-Output [10]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, ws_ext_discount_amt#62, ws_ext_list_price#63, d_year#66]
-Input [12]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, ws_ext_discount_amt#62, ws_ext_list_price#63, ws_sold_date_sk#64, d_date_sk#65, d_year#66]
-
-(52) HashAggregate [codegen id : 10]
-Input [10]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, ws_ext_discount_amt#62, ws_ext_list_price#63, d_year#66]
-Keys [8]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66]
-Functions [1]: [partial_sum(UnscaledValue((ws_ext_list_price#63 - ws_ext_discount_amt#62)))]
-Aggregate Attributes [1]: [sum#67]
-Results [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66, sum#68]
-
-(53) CometColumnarExchange
-Input [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66, sum#68]
-Arguments: hashpartitioning(c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=7]
-
-(54) CometColumnarToRow [codegen id : 11]
-Input [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66, sum#68]
-
-(55) HashAggregate [codegen id : 11]
-Input [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66, sum#68]
-Keys [8]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#52, c_login#59, c_email_address#60, d_year#66]
-Functions [1]: [sum(UnscaledValue((ws_ext_list_price#63 - ws_ext_discount_amt#62)))]
-Aggregate Attributes [1]: [sum(UnscaledValue((ws_ext_list_price#63 - ws_ext_discount_amt#62)))#69]
-Results [2]: [c_customer_id#55 AS customer_id#70, MakeDecimal(sum(UnscaledValue((ws_ext_list_price#63 - ws_ext_discount_amt#62)))#69,18,2) AS year_total#71]
-
-(56) Filter [codegen id : 11]
-Input [2]: [customer_id#70, year_total#71]
-Condition : (isnotnull(year_total#71) AND (year_total#71 > 0.00))
-
-(57) BroadcastExchange
-Input [2]: [customer_id#70, year_total#71]
-Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=8]
-
-(58) BroadcastHashJoin [codegen id : 16]
-Left keys [1]: [customer_id#25]
-Right keys [1]: [customer_id#70]
-Join type: Inner
-Join condition: None
-
-(59) Project [codegen id : 16]
-Output [5]: [customer_id#25, year_total#26, customer_preferred_cust_flag#45, year_total#46, year_total#71]
-Input [6]: [customer_id#25, year_total#26, customer_preferred_cust_flag#45, year_total#46, customer_id#70, year_total#71]
-
-(60) CometNativeScan parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#72, c_customer_id#73, c_first_name#74, c_last_name#75, c_preferred_cust_flag#76, c_birth_country#77, c_login#78, c_email_address#79]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(61) CometFilter
-Input [8]: [c_customer_sk#72, c_customer_id#73, c_first_name#74, c_last_name#75, c_preferred_cust_flag#76, c_birth_country#77, c_login#78, c_email_address#79]
-Condition : (isnotnull(c_customer_sk#72) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#73, 16, true, false, true)))
-
-(62) CometProject
-Input [8]: [c_customer_sk#72, c_customer_id#73, c_first_name#74, c_last_name#75, c_preferred_cust_flag#76, c_birth_country#77, c_login#78, c_email_address#79]
-Arguments: [c_customer_sk#72, c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60], [c_customer_sk#72, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#73, 16, true, false, true) AS c_customer_id#55, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#74, 20, true, false, t [...]
-
-(63) CometColumnarToRow [codegen id : 14]
-Input [8]: [c_customer_sk#72, c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60]
-
-(64) Scan parquet spark_catalog.default.web_sales
-Output [4]: [ws_bill_customer_sk#80, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#83), dynamicpruningexpression(ws_sold_date_sk#83 IN dynamicpruning#39)]
-PushedFilters: [IsNotNull(ws_bill_customer_sk)]
-ReadSchema: struct<ws_bill_customer_sk:int,ws_ext_discount_amt:decimal(7,2),ws_ext_list_price:decimal(7,2)>
-
-(65) ColumnarToRow [codegen id : 12]
-Input [4]: [ws_bill_customer_sk#80, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83]
-
-(66) Filter [codegen id : 12]
-Input [4]: [ws_bill_customer_sk#80, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83]
-Condition : isnotnull(ws_bill_customer_sk#80)
-
-(67) BroadcastExchange
-Input [4]: [ws_bill_customer_sk#80, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=9]
-
-(68) BroadcastHashJoin [codegen id : 14]
-Left keys [1]: [c_customer_sk#72]
-Right keys [1]: [ws_bill_customer_sk#80]
-Join type: Inner
-Join condition: None
-
-(69) Project [codegen id : 14]
-Output [10]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83]
-Input [12]: [c_customer_sk#72, c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, ws_bill_customer_sk#80, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83]
-
-(70) ReusedExchange [Reuses operator id: 88]
-Output [2]: [d_date_sk#84, d_year#85]
-
-(71) BroadcastHashJoin [codegen id : 14]
-Left keys [1]: [ws_sold_date_sk#83]
-Right keys [1]: [d_date_sk#84]
-Join type: Inner
-Join condition: None
-
-(72) Project [codegen id : 14]
-Output [10]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, ws_ext_discount_amt#81, ws_ext_list_price#82, d_year#85]
-Input [12]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, ws_ext_discount_amt#81, ws_ext_list_price#82, ws_sold_date_sk#83, d_date_sk#84, d_year#85]
-
-(73) HashAggregate [codegen id : 14]
-Input [10]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, ws_ext_discount_amt#81, ws_ext_list_price#82, d_year#85]
-Keys [8]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85]
-Functions [1]: [partial_sum(UnscaledValue((ws_ext_list_price#82 - ws_ext_discount_amt#81)))]
-Aggregate Attributes [1]: [sum#86]
-Results [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85, sum#87]
-
-(74) CometColumnarExchange
-Input [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85, sum#87]
-Arguments: hashpartitioning(c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=10]
-
-(75) CometColumnarToRow [codegen id : 15]
-Input [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85, sum#87]
-
-(76) HashAggregate [codegen id : 15]
-Input [9]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85, sum#87]
-Keys [8]: [c_customer_id#55, c_first_name#56, c_last_name#57, c_preferred_cust_flag#58, c_birth_country#77, c_login#59, c_email_address#60, d_year#85]
-Functions [1]: [sum(UnscaledValue((ws_ext_list_price#82 - ws_ext_discount_amt#81)))]
-Aggregate Attributes [1]: [sum(UnscaledValue((ws_ext_list_price#82 - ws_ext_discount_amt#81)))#69]
-Results [2]: [c_customer_id#55 AS customer_id#88, MakeDecimal(sum(UnscaledValue((ws_ext_list_price#82 - ws_ext_discount_amt#81)))#69,18,2) AS year_total#89]
-
-(77) BroadcastExchange
-Input [2]: [customer_id#88, year_total#89]
-Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=11]
-
-(78) BroadcastHashJoin [codegen id : 16]
-Left keys [1]: [customer_id#25]
-Right keys [1]: [customer_id#88]
-Join type: Inner
-Join condition: (CASE WHEN (year_total#71 > 0.00) THEN (year_total#89 / year_total#71) END > CASE WHEN (year_total#26 > 0.00) THEN (year_total#46 / year_total#26) END)
-
-(79) Project [codegen id : 16]
-Output [1]: [customer_preferred_cust_flag#45]
-Input [7]: [customer_id#25, year_total#26, customer_preferred_cust_flag#45, year_total#46, year_total#71, customer_id#88, year_total#89]
-
-(80) TakeOrderedAndProject
-Input [1]: [customer_preferred_cust_flag#45]
-Arguments: 100, [customer_preferred_cust_flag#45 ASC NULLS FIRST], [customer_preferred_cust_flag#45]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 5 Hosting Expression = ss_sold_date_sk#18 IN dynamicpruning#19
-BroadcastExchange (84)
-+- * CometColumnarToRow (83)
- +- CometFilter (82)
- +- CometNativeScan parquet spark_catalog.default.date_dim (81)
-
-
-(81) CometNativeScan parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#20, d_year#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(82) CometFilter
-Input [2]: [d_date_sk#20, d_year#21]
-Condition : ((isnotnull(d_year#21) AND (d_year#21 = 2001)) AND isnotnull(d_date_sk#20))
-
-(83) CometColumnarToRow [codegen id : 1]
-Input [2]: [d_date_sk#20, d_year#21]
-
-(84) BroadcastExchange
-Input [2]: [d_date_sk#20, d_year#21]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=12]
-
-Subquery:2 Hosting operator id = 23 Hosting Expression = ss_sold_date_sk#38 IN dynamicpruning#39
-BroadcastExchange (88)
-+- * CometColumnarToRow (87)
- +- CometFilter (86)
- +- CometNativeScan parquet spark_catalog.default.date_dim (85)
-
-
-(85) CometNativeScan parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#40, d_year#41]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(86) CometFilter
-Input [2]: [d_date_sk#40, d_year#41]
-Condition : ((isnotnull(d_year#41) AND (d_year#41 = 2002)) AND isnotnull(d_date_sk#40))
-
-(87) CometColumnarToRow [codegen id : 1]
-Input [2]: [d_date_sk#40, d_year#41]
-
-(88) BroadcastExchange
-Input [2]: [d_date_sk#40, d_year#41]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=13]
-
-Subquery:3 Hosting operator id = 43 Hosting Expression = ws_sold_date_sk#64 IN dynamicpruning#19
-
-Subquery:4 Hosting operator id = 64 Hosting Expression = ws_sold_date_sk#83 IN dynamicpruning#39
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_datafusion/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_datafusion/simplified.txt
deleted file mode 100644
index 6c9e276c0..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_datafusion/simplified.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-TakeOrderedAndProject [customer_preferred_cust_flag]
- WholeStageCodegen (16)
- Project [customer_preferred_cust_flag]
- BroadcastHashJoin [customer_id,customer_id,year_total,year_total,year_total,year_total]
- Project [customer_id,year_total,customer_preferred_cust_flag,year_total,year_total]
- BroadcastHashJoin [customer_id,customer_id]
- Project [customer_id,year_total,customer_preferred_cust_flag,year_total]
- BroadcastHashJoin [customer_id,customer_id]
- Filter [year_total]
- HashAggregate [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum] [sum(UnscaledValue((ss_ext_list_price - ss_ext_discount_amt))),customer_id,year_total,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #1
- WholeStageCodegen (3)
- HashAggregate [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_list_price,ss_ext_discount_amt] [sum,sum]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,d_year]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- BroadcastHashJoin [c_customer_sk,ss_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometNativeScan parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- InputAdapter
- BroadcastExchange #2
- WholeStageCodegen (1)
- Filter [ss_customer_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [d_date_sk,d_year]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- InputAdapter
- ReusedExchange [d_date_sk,d_year] #3
- InputAdapter
- BroadcastExchange #4
- WholeStageCodegen (7)
- HashAggregate [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum] [sum(UnscaledValue((ss_ext_list_price - ss_ext_discount_amt))),customer_id,customer_preferred_cust_flag,year_total,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #5
- WholeStageCodegen (6)
- HashAggregate [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_list_price,ss_ext_discount_amt] [sum,sum]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,d_year]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- BroadcastHashJoin [c_customer_sk,ss_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometNativeScan parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- InputAdapter
- BroadcastExchange #6
- WholeStageCodegen (4)
- Filter [ss_customer_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #2
- BroadcastExchange #7
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [d_date_sk,d_year]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- InputAdapter
- ReusedExchange [d_date_sk,d_year] #7
- InputAdapter
- BroadcastExchange #8
- WholeStageCodegen (11)
- Filter [year_total]
- HashAggregate [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum] [sum(UnscaledValue((ws_ext_list_price - ws_ext_discount_amt))),customer_id,year_total,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year] #9
- WholeStageCodegen (10)
- HashAggregate [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,ws_ext_list_price,ws_ext_discount_amt] [sum,sum]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,d_year]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- BroadcastHashJoin [c_customer_sk,ws_bill_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometNativeScan parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- InputAdapter
- BroadcastExchange #10
- WholeStageCodegen (8)
- Filter [ws_bill_customer_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- InputAdapter
- ReusedExchange [d_date_sk,d_year] #3
- InputAdapter
- BroadcastExchange #11
- WholeStageCodegen (15)
- HashAggregate [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum] [sum(UnscaledValue((ws_ext_list_price - ws_ext_discount_amt))),customer_id,year_total,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year] #12
- WholeStageCodegen (14)
- HashAggregate [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,ws_ext_list_price,ws_ext_discount_amt] [sum,sum]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,d_year]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- Project [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- BroadcastHashJoin [c_customer_sk,ws_bill_customer_sk]
- CometColumnarToRow
- InputAdapter
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometNativeScan parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- InputAdapter
- BroadcastExchange #13
- WholeStageCodegen (12)
- Filter [ws_bill_customer_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- InputAdapter
- ReusedExchange [d_date_sk,d_year] #7
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_iceberg_compat/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_iceberg_compat/explain.txt
deleted file mode 100644
index 091ad6256..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_iceberg_compat/explain.txt
+++ /dev/null
@@ -1,475 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (73)
-+- CometTakeOrderedAndProject (72)
- +- CometProject (71)
- +- CometBroadcastHashJoin (70)
- :- CometProject (54)
- : +- CometBroadcastHashJoin (53)
- : :- CometProject (36)
- : : +- CometBroadcastHashJoin (35)
- : : :- CometFilter (17)
- : : : +- CometHashAggregate (16)
- : : : +- CometExchange (15)
- : : : +- CometHashAggregate (14)
- : : : +- CometProject (13)
- : : : +- CometBroadcastHashJoin (12)
- : : : :- CometProject (8)
- : : : : +- CometBroadcastHashJoin (7)
- : : : : :- CometProject (3)
- : : : : : +- CometFilter (2)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (1)
- : : : : +- CometBroadcastExchange (6)
- : : : : +- CometFilter (5)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (4)
- : : : +- CometBroadcastExchange (11)
- : : : +- CometFilter (10)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (9)
- : : +- CometBroadcastExchange (34)
- : : +- CometHashAggregate (33)
- : : +- CometExchange (32)
- : : +- CometHashAggregate (31)
- : : +- CometProject (30)
- : : +- CometBroadcastHashJoin (29)
- : : :- CometProject (25)
- : : : +- CometBroadcastHashJoin (24)
- : : : :- CometProject (20)
- : : : : +- CometFilter (19)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (18)
- : : : +- CometBroadcastExchange (23)
- : : : +- CometFilter (22)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (21)
- : : +- CometBroadcastExchange (28)
- : : +- CometFilter (27)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (26)
- : +- CometBroadcastExchange (52)
- : +- CometFilter (51)
- : +- CometHashAggregate (50)
- : +- CometExchange (49)
- : +- CometHashAggregate (48)
- : +- CometProject (47)
- : +- CometBroadcastHashJoin (46)
- : :- CometProject (44)
- : : +- CometBroadcastHashJoin (43)
- : : :- CometProject (39)
- : : : +- CometFilter (38)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (37)
- : : +- CometBroadcastExchange (42)
- : : +- CometFilter (41)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (40)
- : +- ReusedExchange (45)
- +- CometBroadcastExchange (69)
- +- CometHashAggregate (68)
- +- CometExchange (67)
- +- CometHashAggregate (66)
- +- CometProject (65)
- +- CometBroadcastHashJoin (64)
- :- CometProject (62)
- : +- CometBroadcastHashJoin (61)
- : :- CometProject (57)
- : : +- CometFilter (56)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (55)
- : +- CometBroadcastExchange (60)
- : +- CometFilter (59)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (58)
- +- ReusedExchange (63)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(2) CometFilter
-Input [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Condition : (isnotnull(c_customer_sk#1) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#2, 16, true, false, true)))
-
-(3) CometProject
-Input [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Arguments: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14], [c_customer_sk#1, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#2, 16, true, false, true) AS c_customer_id#9, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#3, 20, true, false, true) AS [...]
-
-(4) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#18), dynamicpruningexpression(ss_sold_date_sk#18 IN dynamicpruning#19)]
-PushedFilters: [IsNotNull(ss_customer_sk)]
-ReadSchema: struct<ss_customer_sk:int,ss_ext_discount_amt:decimal(7,2),ss_ext_list_price:decimal(7,2)>
-
-(5) CometFilter
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Condition : isnotnull(ss_customer_sk#15)
-
-(6) CometBroadcastExchange
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-
-(7) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Right output [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: [c_customer_sk#1], [ss_customer_sk#15], Inner, BuildRight
-
-(8) CometProject
-Input [12]: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-
-(9) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#20, d_year#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(10) CometFilter
-Input [2]: [d_date_sk#20, d_year#21]
-Condition : ((isnotnull(d_year#21) AND (d_year#21 = 2001)) AND isnotnull(d_date_sk#20))
-
-(11) CometBroadcastExchange
-Input [2]: [d_date_sk#20, d_year#21]
-Arguments: [d_date_sk#20, d_year#21]
-
-(12) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Right output [2]: [d_date_sk#20, d_year#21]
-Arguments: [ss_sold_date_sk#18], [d_date_sk#20], Inner, BuildRight
-
-(13) CometProject
-Input [12]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18, d_date_sk#20, d_year#21]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21]
-
-(14) CometHashAggregate
-Input [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Functions [1]: [partial_sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))]
-
-(15) CometExchange
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#22]
-Arguments: hashpartitioning(c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(16) CometHashAggregate
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#22]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Functions [1]: [sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))]
-
-(17) CometFilter
-Input [2]: [customer_id#23, year_total#24]
-Condition : (isnotnull(year_total#24) AND (year_total#24 > 0.00))
-
-(18) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#25, c_customer_id#26, c_first_name#27, c_last_name#28, c_preferred_cust_flag#29, c_birth_country#30, c_login#31, c_email_address#32]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(19) CometFilter
-Input [8]: [c_customer_sk#25, c_customer_id#26, c_first_name#27, c_last_name#28, c_preferred_cust_flag#29, c_birth_country#30, c_login#31, c_email_address#32]
-Condition : (isnotnull(c_customer_sk#25) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#26, 16, true, false, true)))
-
-(20) CometProject
-Input [8]: [c_customer_sk#25, c_customer_id#26, c_first_name#27, c_last_name#28, c_preferred_cust_flag#29, c_birth_country#30, c_login#31, c_email_address#32]
-Arguments: [c_customer_sk#25, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14], [c_customer_sk#25, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#26, 16, true, false, true) AS c_customer_id#9, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#27, 20, true, false, tru [...]
-
-(21) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#36), dynamicpruningexpression(ss_sold_date_sk#36 IN dynamicpruning#37)]
-PushedFilters: [IsNotNull(ss_customer_sk)]
-ReadSchema: struct<ss_customer_sk:int,ss_ext_discount_amt:decimal(7,2),ss_ext_list_price:decimal(7,2)>
-
-(22) CometFilter
-Input [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Condition : isnotnull(ss_customer_sk#33)
-
-(23) CometBroadcastExchange
-Input [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Arguments: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-
-(24) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#25, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14]
-Right output [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Arguments: [c_customer_sk#25], [ss_customer_sk#33], Inner, BuildRight
-
-(25) CometProject
-Input [12]: [c_customer_sk#25, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-
-(26) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#38, d_year#39]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(27) CometFilter
-Input [2]: [d_date_sk#38, d_year#39]
-Condition : ((isnotnull(d_year#39) AND (d_year#39 = 2002)) AND isnotnull(d_date_sk#38))
-
-(28) CometBroadcastExchange
-Input [2]: [d_date_sk#38, d_year#39]
-Arguments: [d_date_sk#38, d_year#39]
-
-(29) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Right output [2]: [d_date_sk#38, d_year#39]
-Arguments: [ss_sold_date_sk#36], [d_date_sk#38], Inner, BuildRight
-
-(30) CometProject
-Input [12]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36, d_date_sk#38, d_year#39]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, d_year#39], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, d_year#39]
-
-(31) CometHashAggregate
-Input [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, d_year#39]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14]
-Functions [1]: [partial_sum(UnscaledValue((ss_ext_list_price#35 - ss_ext_discount_amt#34)))]
-
-(32) CometExchange
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, sum#40]
-Arguments: hashpartitioning(c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]
-
-(33) CometHashAggregate
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, sum#40]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14]
-Functions [1]: [sum(UnscaledValue((ss_ext_list_price#35 - ss_ext_discount_amt#34)))]
-
-(34) CometBroadcastExchange
-Input [3]: [customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-Arguments: [customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-
-(35) CometBroadcastHashJoin
-Left output [2]: [customer_id#23, year_total#24]
-Right output [3]: [customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-Arguments: [customer_id#23], [customer_id#41], Inner, BuildRight
-
-(36) CometProject
-Input [5]: [customer_id#23, year_total#24, customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-Arguments: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43], [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43]
-
-(37) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#44, c_customer_id#45, c_first_name#46, c_last_name#47, c_preferred_cust_flag#48, c_birth_country#49, c_login#50, c_email_address#51]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(38) CometFilter
-Input [8]: [c_customer_sk#44, c_customer_id#45, c_first_name#46, c_last_name#47, c_preferred_cust_flag#48, c_birth_country#49, c_login#50, c_email_address#51]
-Condition : (isnotnull(c_customer_sk#44) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#45, 16, true, false, true)))
-
-(39) CometProject
-Input [8]: [c_customer_sk#44, c_customer_id#45, c_first_name#46, c_last_name#47, c_preferred_cust_flag#48, c_birth_country#49, c_login#50, c_email_address#51]
-Arguments: [c_customer_sk#44, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57], [c_customer_sk#44, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#45, 16, true, false, true) AS c_customer_id#52, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#46, 20, true, false, t [...]
-
-(40) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#61), dynamicpruningexpression(ws_sold_date_sk#61 IN dynamicpruning#62)]
-PushedFilters: [IsNotNull(ws_bill_customer_sk)]
-ReadSchema: struct<ws_bill_customer_sk:int,ws_ext_discount_amt:decimal(7,2),ws_ext_list_price:decimal(7,2)>
-
-(41) CometFilter
-Input [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Condition : isnotnull(ws_bill_customer_sk#58)
-
-(42) CometBroadcastExchange
-Input [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Arguments: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-
-(43) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#44, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57]
-Right output [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Arguments: [c_customer_sk#44], [ws_bill_customer_sk#58], Inner, BuildRight
-
-(44) CometProject
-Input [12]: [c_customer_sk#44, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-
-(45) ReusedExchange [Reuses operator id: 11]
-Output [2]: [d_date_sk#63, d_year#64]
-
-(46) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Right output [2]: [d_date_sk#63, d_year#64]
-Arguments: [ws_sold_date_sk#61], [d_date_sk#63], Inner, BuildRight
-
-(47) CometProject
-Input [12]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61, d_date_sk#63, d_year#64]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, d_year#64], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, d_year#64]
-
-(48) CometHashAggregate
-Input [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, d_year#64]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64]
-Functions [1]: [partial_sum(UnscaledValue((ws_ext_list_price#60 - ws_ext_discount_amt#59)))]
-
-(49) CometExchange
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64, sum#65]
-Arguments: hashpartitioning(c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]
-
-(50) CometHashAggregate
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64, sum#65]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64]
-Functions [1]: [sum(UnscaledValue((ws_ext_list_price#60 - ws_ext_discount_amt#59)))]
-
-(51) CometFilter
-Input [2]: [customer_id#66, year_total#67]
-Condition : (isnotnull(year_total#67) AND (year_total#67 > 0.00))
-
-(52) CometBroadcastExchange
-Input [2]: [customer_id#66, year_total#67]
-Arguments: [customer_id#66, year_total#67]
-
-(53) CometBroadcastHashJoin
-Left output [4]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43]
-Right output [2]: [customer_id#66, year_total#67]
-Arguments: [customer_id#23], [customer_id#66], Inner, BuildRight
-
-(54) CometProject
-Input [6]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, customer_id#66, year_total#67]
-Arguments: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67], [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67]
-
-(55) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#68, c_customer_id#69, c_first_name#70, c_last_name#71, c_preferred_cust_flag#72, c_birth_country#73, c_login#74, c_email_address#75]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(56) CometFilter
-Input [8]: [c_customer_sk#68, c_customer_id#69, c_first_name#70, c_last_name#71, c_preferred_cust_flag#72, c_birth_country#73, c_login#74, c_email_address#75]
-Condition : (isnotnull(c_customer_sk#68) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#69, 16, true, false, true)))
-
-(57) CometProject
-Input [8]: [c_customer_sk#68, c_customer_id#69, c_first_name#70, c_last_name#71, c_preferred_cust_flag#72, c_birth_country#73, c_login#74, c_email_address#75]
-Arguments: [c_customer_sk#68, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57], [c_customer_sk#68, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#69, 16, true, false, true) AS c_customer_id#52, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#70, 20, true, false, t [...]
-
-(58) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#79), dynamicpruningexpression(ws_sold_date_sk#79 IN dynamicpruning#80)]
-PushedFilters: [IsNotNull(ws_bill_customer_sk)]
-ReadSchema: struct<ws_bill_customer_sk:int,ws_ext_discount_amt:decimal(7,2),ws_ext_list_price:decimal(7,2)>
-
-(59) CometFilter
-Input [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Condition : isnotnull(ws_bill_customer_sk#76)
-
-(60) CometBroadcastExchange
-Input [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Arguments: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-
-(61) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#68, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57]
-Right output [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Arguments: [c_customer_sk#68], [ws_bill_customer_sk#76], Inner, BuildRight
-
-(62) CometProject
-Input [12]: [c_customer_sk#68, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-
-(63) ReusedExchange [Reuses operator id: 28]
-Output [2]: [d_date_sk#81, d_year#82]
-
-(64) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Right output [2]: [d_date_sk#81, d_year#82]
-Arguments: [ws_sold_date_sk#79], [d_date_sk#81], Inner, BuildRight
-
-(65) CometProject
-Input [12]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79, d_date_sk#81, d_year#82]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, d_year#82], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, d_year#82]
-
-(66) CometHashAggregate
-Input [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, d_year#82]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82]
-Functions [1]: [partial_sum(UnscaledValue((ws_ext_list_price#78 - ws_ext_discount_amt#77)))]
-
-(67) CometExchange
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82, sum#83]
-Arguments: hashpartitioning(c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=4]
-
-(68) CometHashAggregate
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82, sum#83]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82]
-Functions [1]: [sum(UnscaledValue((ws_ext_list_price#78 - ws_ext_discount_amt#77)))]
-
-(69) CometBroadcastExchange
-Input [2]: [customer_id#84, year_total#85]
-Arguments: [customer_id#84, year_total#85]
-
-(70) CometBroadcastHashJoin
-Left output [5]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67]
-Right output [2]: [customer_id#84, year_total#85]
-Arguments: [customer_id#23], [customer_id#84], Inner, (CASE WHEN (year_total#67 > 0.00) THEN (year_total#85 / year_total#67) END > CASE WHEN (year_total#24 > 0.00) THEN (year_total#43 / year_total#24) END), BuildRight
-
-(71) CometProject
-Input [7]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67, customer_id#84, year_total#85]
-Arguments: [customer_preferred_cust_flag#42], [customer_preferred_cust_flag#42]
-
-(72) CometTakeOrderedAndProject
-Input [1]: [customer_preferred_cust_flag#42]
-Arguments: TakeOrderedAndProject(limit=100, orderBy=[customer_preferred_cust_flag#42 ASC NULLS FIRST], output=[customer_preferred_cust_flag#42]), [customer_preferred_cust_flag#42], 100, 0, [customer_preferred_cust_flag#42 ASC NULLS FIRST], [customer_preferred_cust_flag#42]
-
-(73) CometColumnarToRow [codegen id : 1]
-Input [1]: [customer_preferred_cust_flag#42]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 4 Hosting Expression = ss_sold_date_sk#18 IN dynamicpruning#19
-BroadcastExchange (77)
-+- * CometColumnarToRow (76)
- +- CometFilter (75)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (74)
-
-
-(74) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#20, d_year#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(75) CometFilter
-Input [2]: [d_date_sk#20, d_year#21]
-Condition : ((isnotnull(d_year#21) AND (d_year#21 = 2001)) AND isnotnull(d_date_sk#20))
-
-(76) CometColumnarToRow [codegen id : 1]
-Input [2]: [d_date_sk#20, d_year#21]
-
-(77) BroadcastExchange
-Input [2]: [d_date_sk#20, d_year#21]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=5]
-
-Subquery:2 Hosting operator id = 21 Hosting Expression = ss_sold_date_sk#36 IN dynamicpruning#37
-BroadcastExchange (81)
-+- * CometColumnarToRow (80)
- +- CometFilter (79)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (78)
-
-
-(78) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#38, d_year#39]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(79) CometFilter
-Input [2]: [d_date_sk#38, d_year#39]
-Condition : ((isnotnull(d_year#39) AND (d_year#39 = 2002)) AND isnotnull(d_date_sk#38))
-
-(80) CometColumnarToRow [codegen id : 1]
-Input [2]: [d_date_sk#38, d_year#39]
-
-(81) BroadcastExchange
-Input [2]: [d_date_sk#38, d_year#39]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=6]
-
-Subquery:3 Hosting operator id = 40 Hosting Expression = ws_sold_date_sk#61 IN dynamicpruning#19
-
-Subquery:4 Hosting operator id = 58 Hosting Expression = ws_sold_date_sk#79 IN dynamicpruning#37
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_iceberg_compat/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_iceberg_compat/simplified.txt
deleted file mode 100644
index 4599ecf53..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11.native_iceberg_compat/simplified.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometTakeOrderedAndProject [customer_preferred_cust_flag]
- CometProject [customer_preferred_cust_flag]
- CometBroadcastHashJoin [customer_id,year_total,customer_preferred_cust_flag,year_total,year_total,customer_id,year_total]
- CometProject [customer_id,year_total,customer_preferred_cust_flag,year_total,year_total]
- CometBroadcastHashJoin [customer_id,year_total,customer_preferred_cust_flag,year_total,customer_id,year_total]
- CometProject [customer_id,year_total,customer_preferred_cust_flag,year_total]
- CometBroadcastHashJoin [customer_id,year_total,customer_id,customer_preferred_cust_flag,year_total]
- CometFilter [customer_id,year_total]
- CometHashAggregate [c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum] [customer_id,year_total,c_customer_id,sum(UnscaledValue((ss_ext_list_price - ss_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #1
- CometHashAggregate [ss_ext_list_price,ss_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk] #2
- CometFilter [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [d_date_sk,d_year] #4
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [customer_id,customer_preferred_cust_flag,year_total] #5
- CometHashAggregate [c_first_name,c_last_name,d_year,c_birth_country,c_login,c_email_address,sum] [customer_id,customer_preferred_cust_flag,year_total,c_customer_id,c_preferred_cust_flag,sum(UnscaledValue((ss_ext_list_price - ss_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #6
- CometHashAggregate [ss_ext_list_price,ss_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk] #7
- CometFilter [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #2
- BroadcastExchange #8
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [d_date_sk,d_year] #9
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [customer_id,year_total] #10
- CometFilter [customer_id,year_total]
- CometHashAggregate [c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum] [customer_id,year_total,c_customer_id,sum(UnscaledValue((ws_ext_list_price - ws_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year] #11
- CometHashAggregate [ws_ext_list_price,ws_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk] #12
- CometFilter [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk,d_year] #4
- CometBroadcastExchange [customer_id,year_total] #13
- CometHashAggregate [c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum] [customer_id,year_total,c_customer_id,sum(UnscaledValue((ws_ext_list_price - ws_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year] #14
- CometHashAggregate [ws_ext_list_price,ws_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk] #15
- CometFilter [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- ReusedExchange [d_date_sk,d_year] #9
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/explain.txt
deleted file mode 100644
index 091ad6256..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/explain.txt
+++ /dev/null
@@ -1,475 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (73)
-+- CometTakeOrderedAndProject (72)
- +- CometProject (71)
- +- CometBroadcastHashJoin (70)
- :- CometProject (54)
- : +- CometBroadcastHashJoin (53)
- : :- CometProject (36)
- : : +- CometBroadcastHashJoin (35)
- : : :- CometFilter (17)
- : : : +- CometHashAggregate (16)
- : : : +- CometExchange (15)
- : : : +- CometHashAggregate (14)
- : : : +- CometProject (13)
- : : : +- CometBroadcastHashJoin (12)
- : : : :- CometProject (8)
- : : : : +- CometBroadcastHashJoin (7)
- : : : : :- CometProject (3)
- : : : : : +- CometFilter (2)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (1)
- : : : : +- CometBroadcastExchange (6)
- : : : : +- CometFilter (5)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (4)
- : : : +- CometBroadcastExchange (11)
- : : : +- CometFilter (10)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (9)
- : : +- CometBroadcastExchange (34)
- : : +- CometHashAggregate (33)
- : : +- CometExchange (32)
- : : +- CometHashAggregate (31)
- : : +- CometProject (30)
- : : +- CometBroadcastHashJoin (29)
- : : :- CometProject (25)
- : : : +- CometBroadcastHashJoin (24)
- : : : :- CometProject (20)
- : : : : +- CometFilter (19)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (18)
- : : : +- CometBroadcastExchange (23)
- : : : +- CometFilter (22)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (21)
- : : +- CometBroadcastExchange (28)
- : : +- CometFilter (27)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (26)
- : +- CometBroadcastExchange (52)
- : +- CometFilter (51)
- : +- CometHashAggregate (50)
- : +- CometExchange (49)
- : +- CometHashAggregate (48)
- : +- CometProject (47)
- : +- CometBroadcastHashJoin (46)
- : :- CometProject (44)
- : : +- CometBroadcastHashJoin (43)
- : : :- CometProject (39)
- : : : +- CometFilter (38)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (37)
- : : +- CometBroadcastExchange (42)
- : : +- CometFilter (41)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (40)
- : +- ReusedExchange (45)
- +- CometBroadcastExchange (69)
- +- CometHashAggregate (68)
- +- CometExchange (67)
- +- CometHashAggregate (66)
- +- CometProject (65)
- +- CometBroadcastHashJoin (64)
- :- CometProject (62)
- : +- CometBroadcastHashJoin (61)
- : :- CometProject (57)
- : : +- CometFilter (56)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer (55)
- : +- CometBroadcastExchange (60)
- : +- CometFilter (59)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (58)
- +- ReusedExchange (63)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(2) CometFilter
-Input [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Condition : (isnotnull(c_customer_sk#1) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#2, 16, true, false, true)))
-
-(3) CometProject
-Input [8]: [c_customer_sk#1, c_customer_id#2, c_first_name#3, c_last_name#4, c_preferred_cust_flag#5, c_birth_country#6, c_login#7, c_email_address#8]
-Arguments: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14], [c_customer_sk#1, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#2, 16, true, false, true) AS c_customer_id#9, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#3, 20, true, false, true) AS [...]
-
-(4) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#18), dynamicpruningexpression(ss_sold_date_sk#18 IN dynamicpruning#19)]
-PushedFilters: [IsNotNull(ss_customer_sk)]
-ReadSchema: struct<ss_customer_sk:int,ss_ext_discount_amt:decimal(7,2),ss_ext_list_price:decimal(7,2)>
-
-(5) CometFilter
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Condition : isnotnull(ss_customer_sk#15)
-
-(6) CometBroadcastExchange
-Input [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-
-(7) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Right output [4]: [ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: [c_customer_sk#1], [ss_customer_sk#15], Inner, BuildRight
-
-(8) CometProject
-Input [12]: [c_customer_sk#1, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_customer_sk#15, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-
-(9) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#20, d_year#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(10) CometFilter
-Input [2]: [d_date_sk#20, d_year#21]
-Condition : ((isnotnull(d_year#21) AND (d_year#21 = 2001)) AND isnotnull(d_date_sk#20))
-
-(11) CometBroadcastExchange
-Input [2]: [d_date_sk#20, d_year#21]
-Arguments: [d_date_sk#20, d_year#21]
-
-(12) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18]
-Right output [2]: [d_date_sk#20, d_year#21]
-Arguments: [ss_sold_date_sk#18], [d_date_sk#20], Inner, BuildRight
-
-(13) CometProject
-Input [12]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, ss_sold_date_sk#18, d_date_sk#20, d_year#21]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21]
-
-(14) CometHashAggregate
-Input [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, ss_ext_discount_amt#16, ss_ext_list_price#17, d_year#21]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Functions [1]: [partial_sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))]
-
-(15) CometExchange
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#22]
-Arguments: hashpartitioning(c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(16) CometHashAggregate
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14, sum#22]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#21, c_preferred_cust_flag#12, c_birth_country#6, c_login#13, c_email_address#14]
-Functions [1]: [sum(UnscaledValue((ss_ext_list_price#17 - ss_ext_discount_amt#16)))]
-
-(17) CometFilter
-Input [2]: [customer_id#23, year_total#24]
-Condition : (isnotnull(year_total#24) AND (year_total#24 > 0.00))
-
-(18) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#25, c_customer_id#26, c_first_name#27, c_last_name#28, c_preferred_cust_flag#29, c_birth_country#30, c_login#31, c_email_address#32]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(19) CometFilter
-Input [8]: [c_customer_sk#25, c_customer_id#26, c_first_name#27, c_last_name#28, c_preferred_cust_flag#29, c_birth_country#30, c_login#31, c_email_address#32]
-Condition : (isnotnull(c_customer_sk#25) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#26, 16, true, false, true)))
-
-(20) CometProject
-Input [8]: [c_customer_sk#25, c_customer_id#26, c_first_name#27, c_last_name#28, c_preferred_cust_flag#29, c_birth_country#30, c_login#31, c_email_address#32]
-Arguments: [c_customer_sk#25, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14], [c_customer_sk#25, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#26, 16, true, false, true) AS c_customer_id#9, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#27, 20, true, false, tru [...]
-
-(21) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#36), dynamicpruningexpression(ss_sold_date_sk#36 IN dynamicpruning#37)]
-PushedFilters: [IsNotNull(ss_customer_sk)]
-ReadSchema: struct<ss_customer_sk:int,ss_ext_discount_amt:decimal(7,2),ss_ext_list_price:decimal(7,2)>
-
-(22) CometFilter
-Input [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Condition : isnotnull(ss_customer_sk#33)
-
-(23) CometBroadcastExchange
-Input [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Arguments: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-
-(24) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#25, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14]
-Right output [4]: [ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Arguments: [c_customer_sk#25], [ss_customer_sk#33], Inner, BuildRight
-
-(25) CometProject
-Input [12]: [c_customer_sk#25, c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_customer_sk#33, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-
-(26) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#38, d_year#39]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(27) CometFilter
-Input [2]: [d_date_sk#38, d_year#39]
-Condition : ((isnotnull(d_year#39) AND (d_year#39 = 2002)) AND isnotnull(d_date_sk#38))
-
-(28) CometBroadcastExchange
-Input [2]: [d_date_sk#38, d_year#39]
-Arguments: [d_date_sk#38, d_year#39]
-
-(29) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36]
-Right output [2]: [d_date_sk#38, d_year#39]
-Arguments: [ss_sold_date_sk#36], [d_date_sk#38], Inner, BuildRight
-
-(30) CometProject
-Input [12]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, ss_sold_date_sk#36, d_date_sk#38, d_year#39]
-Arguments: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, d_year#39], [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, d_year#39]
-
-(31) CometHashAggregate
-Input [10]: [c_customer_id#9, c_first_name#10, c_last_name#11, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, ss_ext_discount_amt#34, ss_ext_list_price#35, d_year#39]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14]
-Functions [1]: [partial_sum(UnscaledValue((ss_ext_list_price#35 - ss_ext_discount_amt#34)))]
-
-(32) CometExchange
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, sum#40]
-Arguments: hashpartitioning(c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]
-
-(33) CometHashAggregate
-Input [9]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14, sum#40]
-Keys [8]: [c_customer_id#9, c_first_name#10, c_last_name#11, d_year#39, c_preferred_cust_flag#12, c_birth_country#30, c_login#13, c_email_address#14]
-Functions [1]: [sum(UnscaledValue((ss_ext_list_price#35 - ss_ext_discount_amt#34)))]
-
-(34) CometBroadcastExchange
-Input [3]: [customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-Arguments: [customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-
-(35) CometBroadcastHashJoin
-Left output [2]: [customer_id#23, year_total#24]
-Right output [3]: [customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-Arguments: [customer_id#23], [customer_id#41], Inner, BuildRight
-
-(36) CometProject
-Input [5]: [customer_id#23, year_total#24, customer_id#41, customer_preferred_cust_flag#42, year_total#43]
-Arguments: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43], [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43]
-
-(37) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#44, c_customer_id#45, c_first_name#46, c_last_name#47, c_preferred_cust_flag#48, c_birth_country#49, c_login#50, c_email_address#51]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(38) CometFilter
-Input [8]: [c_customer_sk#44, c_customer_id#45, c_first_name#46, c_last_name#47, c_preferred_cust_flag#48, c_birth_country#49, c_login#50, c_email_address#51]
-Condition : (isnotnull(c_customer_sk#44) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#45, 16, true, false, true)))
-
-(39) CometProject
-Input [8]: [c_customer_sk#44, c_customer_id#45, c_first_name#46, c_last_name#47, c_preferred_cust_flag#48, c_birth_country#49, c_login#50, c_email_address#51]
-Arguments: [c_customer_sk#44, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57], [c_customer_sk#44, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#45, 16, true, false, true) AS c_customer_id#52, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#46, 20, true, false, t [...]
-
-(40) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#61), dynamicpruningexpression(ws_sold_date_sk#61 IN dynamicpruning#62)]
-PushedFilters: [IsNotNull(ws_bill_customer_sk)]
-ReadSchema: struct<ws_bill_customer_sk:int,ws_ext_discount_amt:decimal(7,2),ws_ext_list_price:decimal(7,2)>
-
-(41) CometFilter
-Input [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Condition : isnotnull(ws_bill_customer_sk#58)
-
-(42) CometBroadcastExchange
-Input [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Arguments: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-
-(43) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#44, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57]
-Right output [4]: [ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Arguments: [c_customer_sk#44], [ws_bill_customer_sk#58], Inner, BuildRight
-
-(44) CometProject
-Input [12]: [c_customer_sk#44, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_bill_customer_sk#58, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-
-(45) ReusedExchange [Reuses operator id: 11]
-Output [2]: [d_date_sk#63, d_year#64]
-
-(46) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61]
-Right output [2]: [d_date_sk#63, d_year#64]
-Arguments: [ws_sold_date_sk#61], [d_date_sk#63], Inner, BuildRight
-
-(47) CometProject
-Input [12]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, ws_sold_date_sk#61, d_date_sk#63, d_year#64]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, d_year#64], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, d_year#64]
-
-(48) CometHashAggregate
-Input [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, ws_ext_discount_amt#59, ws_ext_list_price#60, d_year#64]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64]
-Functions [1]: [partial_sum(UnscaledValue((ws_ext_list_price#60 - ws_ext_discount_amt#59)))]
-
-(49) CometExchange
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64, sum#65]
-Arguments: hashpartitioning(c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=3]
-
-(50) CometHashAggregate
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64, sum#65]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#49, c_login#56, c_email_address#57, d_year#64]
-Functions [1]: [sum(UnscaledValue((ws_ext_list_price#60 - ws_ext_discount_amt#59)))]
-
-(51) CometFilter
-Input [2]: [customer_id#66, year_total#67]
-Condition : (isnotnull(year_total#67) AND (year_total#67 > 0.00))
-
-(52) CometBroadcastExchange
-Input [2]: [customer_id#66, year_total#67]
-Arguments: [customer_id#66, year_total#67]
-
-(53) CometBroadcastHashJoin
-Left output [4]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43]
-Right output [2]: [customer_id#66, year_total#67]
-Arguments: [customer_id#23], [customer_id#66], Inner, BuildRight
-
-(54) CometProject
-Input [6]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, customer_id#66, year_total#67]
-Arguments: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67], [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67]
-
-(55) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
-Output [8]: [c_customer_sk#68, c_customer_id#69, c_first_name#70, c_last_name#71, c_preferred_cust_flag#72, c_birth_country#73, c_login#74, c_email_address#75]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer]
-PushedFilters: [IsNotNull(c_customer_sk)]
-ReadSchema: struct<c_customer_sk:int,c_customer_id:string,c_first_name:string,c_last_name:string,c_preferred_cust_flag:string,c_birth_country:string,c_login:string,c_email_address:string>
-
-(56) CometFilter
-Input [8]: [c_customer_sk#68, c_customer_id#69, c_first_name#70, c_last_name#71, c_preferred_cust_flag#72, c_birth_country#73, c_login#74, c_email_address#75]
-Condition : (isnotnull(c_customer_sk#68) AND isnotnull(staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#69, 16, true, false, true)))
-
-(57) CometProject
-Input [8]: [c_customer_sk#68, c_customer_id#69, c_first_name#70, c_last_name#71, c_preferred_cust_flag#72, c_birth_country#73, c_login#74, c_email_address#75]
-Arguments: [c_customer_sk#68, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57], [c_customer_sk#68, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_customer_id#69, 16, true, false, true) AS c_customer_id#52, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, c_first_name#70, 20, true, false, t [...]
-
-(58) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#79), dynamicpruningexpression(ws_sold_date_sk#79 IN dynamicpruning#80)]
-PushedFilters: [IsNotNull(ws_bill_customer_sk)]
-ReadSchema: struct<ws_bill_customer_sk:int,ws_ext_discount_amt:decimal(7,2),ws_ext_list_price:decimal(7,2)>
-
-(59) CometFilter
-Input [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Condition : isnotnull(ws_bill_customer_sk#76)
-
-(60) CometBroadcastExchange
-Input [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Arguments: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-
-(61) CometBroadcastHashJoin
-Left output [8]: [c_customer_sk#68, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57]
-Right output [4]: [ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Arguments: [c_customer_sk#68], [ws_bill_customer_sk#76], Inner, BuildRight
-
-(62) CometProject
-Input [12]: [c_customer_sk#68, c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_bill_customer_sk#76, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-
-(63) ReusedExchange [Reuses operator id: 28]
-Output [2]: [d_date_sk#81, d_year#82]
-
-(64) CometBroadcastHashJoin
-Left output [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79]
-Right output [2]: [d_date_sk#81, d_year#82]
-Arguments: [ws_sold_date_sk#79], [d_date_sk#81], Inner, BuildRight
-
-(65) CometProject
-Input [12]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, ws_sold_date_sk#79, d_date_sk#81, d_year#82]
-Arguments: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, d_year#82], [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, d_year#82]
-
-(66) CometHashAggregate
-Input [10]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, ws_ext_discount_amt#77, ws_ext_list_price#78, d_year#82]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82]
-Functions [1]: [partial_sum(UnscaledValue((ws_ext_list_price#78 - ws_ext_discount_amt#77)))]
-
-(67) CometExchange
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82, sum#83]
-Arguments: hashpartitioning(c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=4]
-
-(68) CometHashAggregate
-Input [9]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82, sum#83]
-Keys [8]: [c_customer_id#52, c_first_name#53, c_last_name#54, c_preferred_cust_flag#55, c_birth_country#73, c_login#56, c_email_address#57, d_year#82]
-Functions [1]: [sum(UnscaledValue((ws_ext_list_price#78 - ws_ext_discount_amt#77)))]
-
-(69) CometBroadcastExchange
-Input [2]: [customer_id#84, year_total#85]
-Arguments: [customer_id#84, year_total#85]
-
-(70) CometBroadcastHashJoin
-Left output [5]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67]
-Right output [2]: [customer_id#84, year_total#85]
-Arguments: [customer_id#23], [customer_id#84], Inner, (CASE WHEN (year_total#67 > 0.00) THEN (year_total#85 / year_total#67) END > CASE WHEN (year_total#24 > 0.00) THEN (year_total#43 / year_total#24) END), BuildRight
-
-(71) CometProject
-Input [7]: [customer_id#23, year_total#24, customer_preferred_cust_flag#42, year_total#43, year_total#67, customer_id#84, year_total#85]
-Arguments: [customer_preferred_cust_flag#42], [customer_preferred_cust_flag#42]
-
-(72) CometTakeOrderedAndProject
-Input [1]: [customer_preferred_cust_flag#42]
-Arguments: TakeOrderedAndProject(limit=100, orderBy=[customer_preferred_cust_flag#42 ASC NULLS FIRST], output=[customer_preferred_cust_flag#42]), [customer_preferred_cust_flag#42], 100, 0, [customer_preferred_cust_flag#42 ASC NULLS FIRST], [customer_preferred_cust_flag#42]
-
-(73) CometColumnarToRow [codegen id : 1]
-Input [1]: [customer_preferred_cust_flag#42]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 4 Hosting Expression = ss_sold_date_sk#18 IN dynamicpruning#19
-BroadcastExchange (77)
-+- * CometColumnarToRow (76)
- +- CometFilter (75)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (74)
-
-
-(74) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#20, d_year#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(75) CometFilter
-Input [2]: [d_date_sk#20, d_year#21]
-Condition : ((isnotnull(d_year#21) AND (d_year#21 = 2001)) AND isnotnull(d_date_sk#20))
-
-(76) CometColumnarToRow [codegen id : 1]
-Input [2]: [d_date_sk#20, d_year#21]
-
-(77) BroadcastExchange
-Input [2]: [d_date_sk#20, d_year#21]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=5]
-
-Subquery:2 Hosting operator id = 21 Hosting Expression = ss_sold_date_sk#36 IN dynamicpruning#37
-BroadcastExchange (81)
-+- * CometColumnarToRow (80)
- +- CometFilter (79)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (78)
-
-
-(78) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#38, d_year#39]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(79) CometFilter
-Input [2]: [d_date_sk#38, d_year#39]
-Condition : ((isnotnull(d_year#39) AND (d_year#39 = 2002)) AND isnotnull(d_date_sk#38))
-
-(80) CometColumnarToRow [codegen id : 1]
-Input [2]: [d_date_sk#38, d_year#39]
-
-(81) BroadcastExchange
-Input [2]: [d_date_sk#38, d_year#39]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=6]
-
-Subquery:3 Hosting operator id = 40 Hosting Expression = ws_sold_date_sk#61 IN dynamicpruning#19
-
-Subquery:4 Hosting operator id = 58 Hosting Expression = ws_sold_date_sk#79 IN dynamicpruning#37
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/extended.txt
deleted file mode 100644
index 781eae905..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/extended.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-CometColumnarToRow
-+- CometTakeOrderedAndProject
- +- CometProject
- +- CometBroadcastHashJoin
- :- CometProject
- : +- CometBroadcastHashJoin
- : :- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometFilter
- : : : +- CometHashAggregate
- : : : +- CometExchange
- : : : +- CometHashAggregate
- : : : +- CometProject
- : : : +- CometBroadcastHashJoin
- : : : :- CometProject
- : : : : +- CometBroadcastHashJoin
- : : : : :- CometProject
- : : : : : +- CometFilter
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
- : : : : +- CometBroadcastExchange
- : : : : +- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
- : : : : +- SubqueryBroadcast
- : : : : +- BroadcastExchange
- : : : : +- CometColumnarToRow
- : : : : +- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : : +- CometBroadcastExchange
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : +- CometBroadcastExchange
- : : +- CometHashAggregate
- : : +- CometExchange
- : : +- CometHashAggregate
- : : +- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometProject
- : : : +- CometBroadcastHashJoin
- : : : :- CometProject
- : : : : +- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
- : : : +- CometBroadcastExchange
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
- : : : +- SubqueryBroadcast
- : : : +- BroadcastExchange
- : : : +- CometColumnarToRow
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : +- CometBroadcastExchange
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : +- CometBroadcastExchange
- : +- CometFilter
- : +- CometHashAggregate
- : +- CometExchange
- : +- CometHashAggregate
- : +- CometProject
- : +- CometBroadcastHashJoin
- : :- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometProject
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
- : : +- CometBroadcastExchange
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
- : : +- ReusedSubquery
- : +- CometBroadcastExchange
- : +- CometFilter
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- +- CometBroadcastExchange
- +- CometHashAggregate
- +- CometExchange
- +- CometHashAggregate
- +- CometProject
- +- CometBroadcastHashJoin
- :- CometProject
- : +- CometBroadcastHashJoin
- : :- CometProject
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer
- : +- CometBroadcastExchange
- : +- CometFilter
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
- : +- ReusedSubquery
- +- CometBroadcastExchange
- +- CometFilter
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-
-Comet accelerated 80 out of 86 eligible operators (93%). Final plan contains 3 transitions between Spark and Comet.
\ No newline at end of file
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/simplified.txt
deleted file mode 100644
index 4599ecf53..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q11/simplified.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometTakeOrderedAndProject [customer_preferred_cust_flag]
- CometProject [customer_preferred_cust_flag]
- CometBroadcastHashJoin [customer_id,year_total,customer_preferred_cust_flag,year_total,year_total,customer_id,year_total]
- CometProject [customer_id,year_total,customer_preferred_cust_flag,year_total,year_total]
- CometBroadcastHashJoin [customer_id,year_total,customer_preferred_cust_flag,year_total,customer_id,year_total]
- CometProject [customer_id,year_total,customer_preferred_cust_flag,year_total]
- CometBroadcastHashJoin [customer_id,year_total,customer_id,customer_preferred_cust_flag,year_total]
- CometFilter [customer_id,year_total]
- CometHashAggregate [c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum] [customer_id,year_total,c_customer_id,sum(UnscaledValue((ss_ext_list_price - ss_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #1
- CometHashAggregate [ss_ext_list_price,ss_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk] #2
- CometFilter [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [d_date_sk,d_year] #4
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [customer_id,customer_preferred_cust_flag,year_total] #5
- CometHashAggregate [c_first_name,c_last_name,d_year,c_birth_country,c_login,c_email_address,sum] [customer_id,customer_preferred_cust_flag,year_total,c_customer_id,c_preferred_cust_flag,sum(UnscaledValue((ss_ext_list_price - ss_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address] #6
- CometHashAggregate [ss_ext_list_price,ss_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,d_year,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk] #7
- CometFilter [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_customer_sk,ss_ext_discount_amt,ss_ext_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #2
- BroadcastExchange #8
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [d_date_sk,d_year] #9
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [customer_id,year_total] #10
- CometFilter [customer_id,year_total]
- CometHashAggregate [c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum] [customer_id,year_total,c_customer_id,sum(UnscaledValue((ws_ext_list_price - ws_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year] #11
- CometHashAggregate [ws_ext_list_price,ws_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk] #12
- CometFilter [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- ReusedExchange [d_date_sk,d_year] #4
- CometBroadcastExchange [customer_id,year_total] #13
- CometHashAggregate [c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum] [customer_id,year_total,c_customer_id,sum(UnscaledValue((ws_ext_list_price - ws_ext_discount_amt)))]
- CometExchange [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year] #14
- CometHashAggregate [ws_ext_list_price,ws_ext_discount_amt] [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year,sum]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,d_year]
- CometBroadcastHashJoin [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk,d_date_sk,d_year]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometBroadcastHashJoin [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometProject [c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_login,c_email_address] [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometFilter [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer [c_customer_sk,c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address]
- CometBroadcastExchange [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk] #15
- CometFilter [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_bill_customer_sk,ws_ext_discount_amt,ws_ext_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- ReusedExchange [d_date_sk,d_year] #9
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_datafusion/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_datafusion/explain.txt
deleted file mode 100644
index 19d16c378..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_datafusion/explain.txt
+++ /dev/null
@@ -1,163 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (23)
-+- * Project (22)
- +- Window (21)
- +- * CometColumnarToRow (20)
- +- CometSort (19)
- +- CometColumnarExchange (18)
- +- * HashAggregate (17)
- +- * CometColumnarToRow (16)
- +- CometColumnarExchange (15)
- +- * HashAggregate (14)
- +- * Project (13)
- +- * BroadcastHashJoin Inner BuildRight (12)
- :- * Project (10)
- : +- * BroadcastHashJoin Inner BuildRight (9)
- : :- * Filter (3)
- : : +- * ColumnarToRow (2)
- : : +- Scan parquet spark_catalog.default.web_sales (1)
- : +- BroadcastExchange (8)
- : +- * CometColumnarToRow (7)
- : +- CometProject (6)
- : +- CometFilter (5)
- : +- CometNativeScan parquet spark_catalog.default.item (4)
- +- ReusedExchange (11)
-
-
-(1) Scan parquet spark_catalog.default.web_sales
-Output [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#3), dynamicpruningexpression(ws_sold_date_sk#3 IN dynamicpruning#4)]
-PushedFilters: [IsNotNull(ws_item_sk)]
-ReadSchema: struct<ws_item_sk:int,ws_ext_sales_price:decimal(7,2)>
-
-(2) ColumnarToRow [codegen id : 3]
-Input [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-
-(3) Filter [codegen id : 3]
-Input [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Condition : isnotnull(ws_item_sk#1)
-
-(4) CometNativeScan parquet spark_catalog.default.item
-Output [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk)]
-ReadSchema: struct<i_item_sk:int,i_item_id:string,i_item_desc:string,i_current_price:decimal(7,2),i_class:string,i_category:string>
-
-(5) CometFilter
-Input [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Condition : (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_category#10, 50, true, false, true) IN (Sports ,Books ,Home ) AND isnotnull(i_item_sk#5))
-
-(6) CometProject
-Input [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Arguments: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [i_item_sk#5, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_item_id#6, 16, true, false, true) AS i_item_id#11, i_item_desc#7, i_current_price#8, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_class#9, 50, true, false, true) AS i_class#12, staticinvoke(class org.ap [...]
-
-(7) CometColumnarToRow [codegen id : 1]
-Input [6]: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(8) BroadcastExchange
-Input [6]: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=1]
-
-(9) BroadcastHashJoin [codegen id : 3]
-Left keys [1]: [ws_item_sk#1]
-Right keys [1]: [i_item_sk#5]
-Join type: Inner
-Join condition: None
-
-(10) Project [codegen id : 3]
-Output [7]: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Input [9]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(11) ReusedExchange [Reuses operator id: 28]
-Output [1]: [d_date_sk#14]
-
-(12) BroadcastHashJoin [codegen id : 3]
-Left keys [1]: [ws_sold_date_sk#3]
-Right keys [1]: [d_date_sk#14]
-Join type: Inner
-Join condition: None
-
-(13) Project [codegen id : 3]
-Output [6]: [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Input [8]: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13, d_date_sk#14]
-
-(14) HashAggregate [codegen id : 3]
-Input [6]: [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Keys [5]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8]
-Functions [1]: [partial_sum(UnscaledValue(ws_ext_sales_price#2))]
-Aggregate Attributes [1]: [sum#15]
-Results [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-
-(15) CometColumnarExchange
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-Arguments: hashpartitioning(i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=2]
-
-(16) CometColumnarToRow [codegen id : 4]
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-
-(17) HashAggregate [codegen id : 4]
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-Keys [5]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8]
-Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#2))]
-Aggregate Attributes [1]: [sum(UnscaledValue(ws_ext_sales_price#2))#17]
-Results [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, MakeDecimal(sum(UnscaledValue(ws_ext_sales_price#2))#17,17,2) AS itemrevenue#18, MakeDecimal(sum(UnscaledValue(ws_ext_sales_price#2))#17,17,2) AS _w0#19, i_item_id#11]
-
-(18) CometColumnarExchange
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, _w0#19, i_item_id#11]
-Arguments: hashpartitioning(i_class#12, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=3]
-
-(19) CometSort
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, _w0#19, i_item_id#11]
-Arguments: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, _w0#19, i_item_id#11], [i_class#12 ASC NULLS FIRST]
-
-(20) CometColumnarToRow [codegen id : 5]
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, _w0#19, i_item_id#11]
-
-(21) Window
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, _w0#19, i_item_id#11]
-Arguments: [sum(_w0#19) windowspecdefinition(i_class#12, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#20], [i_class#12]
-
-(22) Project [codegen id : 6]
-Output [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, ((_w0#19 * 100) / _we0#20) AS revenueratio#21, i_item_id#11]
-Input [8]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, _w0#19, i_item_id#11, _we0#20]
-
-(23) TakeOrderedAndProject
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, revenueratio#21, i_item_id#11]
-Arguments: 100, [i_category#13 ASC NULLS FIRST, i_class#12 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST, i_item_desc#7 ASC NULLS FIRST, revenueratio#21 ASC NULLS FIRST], [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#18, revenueratio#21]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = ws_sold_date_sk#3 IN dynamicpruning#4
-BroadcastExchange (28)
-+- * CometColumnarToRow (27)
- +- CometProject (26)
- +- CometFilter (25)
- +- CometNativeScan parquet spark_catalog.default.date_dim (24)
-
-
-(24) CometNativeScan parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#14, d_date#22]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,1999-02-22), LessThanOrEqual(d_date,1999-03-24), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_date:date>
-
-(25) CometFilter
-Input [2]: [d_date_sk#14, d_date#22]
-Condition : (((isnotnull(d_date#22) AND (d_date#22 >= 1999-02-22)) AND (d_date#22 <= 1999-03-24)) AND isnotnull(d_date_sk#14))
-
-(26) CometProject
-Input [2]: [d_date_sk#14, d_date#22]
-Arguments: [d_date_sk#14], [d_date_sk#14]
-
-(27) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#14]
-
-(28) BroadcastExchange
-Input [1]: [d_date_sk#14]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=4]
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_datafusion/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_datafusion/simplified.txt
deleted file mode 100644
index b7b0a8977..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_datafusion/simplified.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-TakeOrderedAndProject [i_category,i_class,i_item_id,i_item_desc,revenueratio,i_current_price,itemrevenue]
- WholeStageCodegen (6)
- Project [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,_we0,i_item_id]
- InputAdapter
- Window [_w0,i_class]
- WholeStageCodegen (5)
- CometColumnarToRow
- InputAdapter
- CometSort [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,i_item_id]
- CometColumnarExchange [i_class] #1
- WholeStageCodegen (4)
- HashAggregate [i_item_id,i_item_desc,i_category,i_class,i_current_price,sum] [sum(UnscaledValue(ws_ext_sales_price)),itemrevenue,_w0,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [i_item_id,i_item_desc,i_category,i_class,i_current_price] #2
- WholeStageCodegen (3)
- HashAggregate [i_item_id,i_item_desc,i_category,i_class,i_current_price,ws_ext_sales_price] [sum,sum]
- Project [ws_ext_sales_price,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- Project [ws_ext_sales_price,ws_sold_date_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- BroadcastHashJoin [ws_item_sk,i_item_sk]
- Filter [ws_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_date]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_date]
- InputAdapter
- BroadcastExchange #4
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [i_item_id,i_class,i_category] [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometFilter [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometNativeScan parquet spark_catalog.default.item [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- InputAdapter
- ReusedExchange [d_date_sk] #3
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_iceberg_compat/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_iceberg_compat/explain.txt
deleted file mode 100644
index 93308784a..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_iceberg_compat/explain.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (23)
-+- * Project (22)
- +- Window (21)
- +- * CometColumnarToRow (20)
- +- CometSort (19)
- +- CometExchange (18)
- +- CometHashAggregate (17)
- +- CometExchange (16)
- +- CometHashAggregate (15)
- +- CometProject (14)
- +- CometBroadcastHashJoin (13)
- :- CometProject (8)
- : +- CometBroadcastHashJoin (7)
- : :- CometFilter (2)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (1)
- : +- CometBroadcastExchange (6)
- : +- CometProject (5)
- : +- CometFilter (4)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item (3)
- +- CometBroadcastExchange (12)
- +- CometProject (11)
- +- CometFilter (10)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (9)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#3), dynamicpruningexpression(ws_sold_date_sk#3 IN dynamicpruning#4)]
-PushedFilters: [IsNotNull(ws_item_sk)]
-ReadSchema: struct<ws_item_sk:int,ws_ext_sales_price:decimal(7,2)>
-
-(2) CometFilter
-Input [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Condition : isnotnull(ws_item_sk#1)
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.item
-Output [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk)]
-ReadSchema: struct<i_item_sk:int,i_item_id:string,i_item_desc:string,i_current_price:decimal(7,2),i_class:string,i_category:string>
-
-(4) CometFilter
-Input [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Condition : (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_category#10, 50, true, false, true) IN (Sports ,Books ,Home ) AND isnotnull(i_item_sk#5))
-
-(5) CometProject
-Input [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Arguments: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [i_item_sk#5, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_item_id#6, 16, true, false, true) AS i_item_id#11, i_item_desc#7, i_current_price#8, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_class#9, 50, true, false, true) AS i_class#12, staticinvoke(class org.ap [...]
-
-(6) CometBroadcastExchange
-Input [6]: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(7) CometBroadcastHashJoin
-Left output [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Right output [6]: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: [ws_item_sk#1], [i_item_sk#5], Inner, BuildRight
-
-(8) CometProject
-Input [9]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(9) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#14, d_date#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,1999-02-22), LessThanOrEqual(d_date,1999-03-24), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_date:date>
-
-(10) CometFilter
-Input [2]: [d_date_sk#14, d_date#15]
-Condition : (((isnotnull(d_date#15) AND (d_date#15 >= 1999-02-22)) AND (d_date#15 <= 1999-03-24)) AND isnotnull(d_date_sk#14))
-
-(11) CometProject
-Input [2]: [d_date_sk#14, d_date#15]
-Arguments: [d_date_sk#14], [d_date_sk#14]
-
-(12) CometBroadcastExchange
-Input [1]: [d_date_sk#14]
-Arguments: [d_date_sk#14]
-
-(13) CometBroadcastHashJoin
-Left output [7]: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Right output [1]: [d_date_sk#14]
-Arguments: [ws_sold_date_sk#3], [d_date_sk#14], Inner, BuildRight
-
-(14) CometProject
-Input [8]: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13, d_date_sk#14]
-Arguments: [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(15) CometHashAggregate
-Input [6]: [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Keys [5]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8]
-Functions [1]: [partial_sum(UnscaledValue(ws_ext_sales_price#2))]
-
-(16) CometExchange
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-Arguments: hashpartitioning(i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(17) CometHashAggregate
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-Keys [5]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8]
-Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#2))]
-
-(18) CometExchange
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-Arguments: hashpartitioning(i_class#12, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]
-
-(19) CometSort
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-Arguments: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11], [i_class#12 ASC NULLS FIRST]
-
-(20) CometColumnarToRow [codegen id : 1]
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-
-(21) Window
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-Arguments: [sum(_w0#18) windowspecdefinition(i_class#12, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#19], [i_class#12]
-
-(22) Project [codegen id : 2]
-Output [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, ((_w0#18 * 100) / _we0#19) AS revenueratio#20, i_item_id#11]
-Input [8]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11, _we0#19]
-
-(23) TakeOrderedAndProject
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, revenueratio#20, i_item_id#11]
-Arguments: 100, [i_category#13 ASC NULLS FIRST, i_class#12 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST, i_item_desc#7 ASC NULLS FIRST, revenueratio#20 ASC NULLS FIRST], [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, revenueratio#20]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = ws_sold_date_sk#3 IN dynamicpruning#4
-BroadcastExchange (28)
-+- * CometColumnarToRow (27)
- +- CometProject (26)
- +- CometFilter (25)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (24)
-
-
-(24) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#14, d_date#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,1999-02-22), LessThanOrEqual(d_date,1999-03-24), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_date:date>
-
-(25) CometFilter
-Input [2]: [d_date_sk#14, d_date#15]
-Condition : (((isnotnull(d_date#15) AND (d_date#15 >= 1999-02-22)) AND (d_date#15 <= 1999-03-24)) AND isnotnull(d_date_sk#14))
-
-(26) CometProject
-Input [2]: [d_date_sk#14, d_date#15]
-Arguments: [d_date_sk#14], [d_date_sk#14]
-
-(27) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#14]
-
-(28) BroadcastExchange
-Input [1]: [d_date_sk#14]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_iceberg_compat/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_iceberg_compat/simplified.txt
deleted file mode 100644
index fb83fd2f9..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12.native_iceberg_compat/simplified.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-TakeOrderedAndProject [i_category,i_class,i_item_id,i_item_desc,revenueratio,i_current_price,itemrevenue]
- WholeStageCodegen (2)
- Project [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,_we0,i_item_id]
- InputAdapter
- Window [_w0,i_class]
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometSort [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,i_item_id]
- CometExchange [i_class] #1
- CometHashAggregate [sum] [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,i_item_id,sum(UnscaledValue(ws_ext_sales_price))]
- CometExchange [i_item_id,i_item_desc,i_category,i_class,i_current_price] #2
- CometHashAggregate [ws_ext_sales_price] [i_item_id,i_item_desc,i_category,i_class,i_current_price,sum]
- CometProject [ws_ext_sales_price,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometBroadcastHashJoin [ws_ext_sales_price,ws_sold_date_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category,d_date_sk]
- CometProject [ws_ext_sales_price,ws_sold_date_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometBroadcastHashJoin [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk,i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometFilter [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_date]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_date]
- CometBroadcastExchange [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category] #4
- CometProject [i_item_id,i_class,i_category] [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometFilter [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.item [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometBroadcastExchange [d_date_sk] #5
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_date]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_date]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/explain.txt
deleted file mode 100644
index 93308784a..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/explain.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (23)
-+- * Project (22)
- +- Window (21)
- +- * CometColumnarToRow (20)
- +- CometSort (19)
- +- CometExchange (18)
- +- CometHashAggregate (17)
- +- CometExchange (16)
- +- CometHashAggregate (15)
- +- CometProject (14)
- +- CometBroadcastHashJoin (13)
- :- CometProject (8)
- : +- CometBroadcastHashJoin (7)
- : :- CometFilter (2)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (1)
- : +- CometBroadcastExchange (6)
- : +- CometProject (5)
- : +- CometFilter (4)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item (3)
- +- CometBroadcastExchange (12)
- +- CometProject (11)
- +- CometFilter (10)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (9)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
-Output [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#3), dynamicpruningexpression(ws_sold_date_sk#3 IN dynamicpruning#4)]
-PushedFilters: [IsNotNull(ws_item_sk)]
-ReadSchema: struct<ws_item_sk:int,ws_ext_sales_price:decimal(7,2)>
-
-(2) CometFilter
-Input [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Condition : isnotnull(ws_item_sk#1)
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.item
-Output [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk)]
-ReadSchema: struct<i_item_sk:int,i_item_id:string,i_item_desc:string,i_current_price:decimal(7,2),i_class:string,i_category:string>
-
-(4) CometFilter
-Input [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Condition : (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_category#10, 50, true, false, true) IN (Sports ,Books ,Home ) AND isnotnull(i_item_sk#5))
-
-(5) CometProject
-Input [6]: [i_item_sk#5, i_item_id#6, i_item_desc#7, i_current_price#8, i_class#9, i_category#10]
-Arguments: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [i_item_sk#5, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_item_id#6, 16, true, false, true) AS i_item_id#11, i_item_desc#7, i_current_price#8, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, i_class#9, 50, true, false, true) AS i_class#12, staticinvoke(class org.ap [...]
-
-(6) CometBroadcastExchange
-Input [6]: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(7) CometBroadcastHashJoin
-Left output [3]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3]
-Right output [6]: [i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: [ws_item_sk#1], [i_item_sk#5], Inner, BuildRight
-
-(8) CometProject
-Input [9]: [ws_item_sk#1, ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_sk#5, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Arguments: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(9) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#14, d_date#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,1999-02-22), LessThanOrEqual(d_date,1999-03-24), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_date:date>
-
-(10) CometFilter
-Input [2]: [d_date_sk#14, d_date#15]
-Condition : (((isnotnull(d_date#15) AND (d_date#15 >= 1999-02-22)) AND (d_date#15 <= 1999-03-24)) AND isnotnull(d_date_sk#14))
-
-(11) CometProject
-Input [2]: [d_date_sk#14, d_date#15]
-Arguments: [d_date_sk#14], [d_date_sk#14]
-
-(12) CometBroadcastExchange
-Input [1]: [d_date_sk#14]
-Arguments: [d_date_sk#14]
-
-(13) CometBroadcastHashJoin
-Left output [7]: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Right output [1]: [d_date_sk#14]
-Arguments: [ws_sold_date_sk#3], [d_date_sk#14], Inner, BuildRight
-
-(14) CometProject
-Input [8]: [ws_ext_sales_price#2, ws_sold_date_sk#3, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13, d_date_sk#14]
-Arguments: [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13], [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-
-(15) CometHashAggregate
-Input [6]: [ws_ext_sales_price#2, i_item_id#11, i_item_desc#7, i_current_price#8, i_class#12, i_category#13]
-Keys [5]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8]
-Functions [1]: [partial_sum(UnscaledValue(ws_ext_sales_price#2))]
-
-(16) CometExchange
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-Arguments: hashpartitioning(i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(17) CometHashAggregate
-Input [6]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8, sum#16]
-Keys [5]: [i_item_id#11, i_item_desc#7, i_category#13, i_class#12, i_current_price#8]
-Functions [1]: [sum(UnscaledValue(ws_ext_sales_price#2))]
-
-(18) CometExchange
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-Arguments: hashpartitioning(i_class#12, 5), ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=2]
-
-(19) CometSort
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-Arguments: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11], [i_class#12 ASC NULLS FIRST]
-
-(20) CometColumnarToRow [codegen id : 1]
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-
-(21) Window
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11]
-Arguments: [sum(_w0#18) windowspecdefinition(i_class#12, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#19], [i_class#12]
-
-(22) Project [codegen id : 2]
-Output [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, ((_w0#18 * 100) / _we0#19) AS revenueratio#20, i_item_id#11]
-Input [8]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, _w0#18, i_item_id#11, _we0#19]
-
-(23) TakeOrderedAndProject
-Input [7]: [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, revenueratio#20, i_item_id#11]
-Arguments: 100, [i_category#13 ASC NULLS FIRST, i_class#12 ASC NULLS FIRST, i_item_id#11 ASC NULLS FIRST, i_item_desc#7 ASC NULLS FIRST, revenueratio#20 ASC NULLS FIRST], [i_item_desc#7, i_category#13, i_class#12, i_current_price#8, itemrevenue#17, revenueratio#20]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = ws_sold_date_sk#3 IN dynamicpruning#4
-BroadcastExchange (28)
-+- * CometColumnarToRow (27)
- +- CometProject (26)
- +- CometFilter (25)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (24)
-
-
-(24) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#14, d_date#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_date), GreaterThanOrEqual(d_date,1999-02-22), LessThanOrEqual(d_date,1999-03-24), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_date:date>
-
-(25) CometFilter
-Input [2]: [d_date_sk#14, d_date#15]
-Condition : (((isnotnull(d_date#15) AND (d_date#15 >= 1999-02-22)) AND (d_date#15 <= 1999-03-24)) AND isnotnull(d_date_sk#14))
-
-(26) CometProject
-Input [2]: [d_date_sk#14, d_date#15]
-Arguments: [d_date_sk#14], [d_date_sk#14]
-
-(27) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#14]
-
-(28) BroadcastExchange
-Input [1]: [d_date_sk#14]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/extended.txt
deleted file mode 100644
index 3f41c97ff..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/extended.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-TakeOrderedAndProject
-+- Project
- +- Window [COMET: WindowExec is not fully compatible with Spark (Native WindowExec has known correctness issues). To enable it anyway, set spark.comet.operator.WindowExec.allowIncompatible=true. For more information, refer to the Comet Compatibility Guide (https://datafusion.apache.org/comet/user-guide/compatibility.html).]
- +- CometColumnarToRow
- +- CometSort
- +- CometExchange
- +- CometHashAggregate
- +- CometExchange
- +- CometHashAggregate
- +- CometProject
- +- CometBroadcastHashJoin
- :- CometProject
- : +- CometBroadcastHashJoin
- : :- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales
- : : +- SubqueryBroadcast
- : : +- BroadcastExchange
- : : +- CometColumnarToRow
- : : +- CometProject
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : +- CometBroadcastExchange
- : +- CometProject
- : +- CometFilter
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item
- +- CometBroadcastExchange
- +- CometProject
- +- CometFilter
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-
-Comet accelerated 22 out of 27 eligible operators (81%). Final plan contains 2 transitions between Spark and Comet.
\ No newline at end of file
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/simplified.txt
deleted file mode 100644
index fb83fd2f9..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q12/simplified.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-TakeOrderedAndProject [i_category,i_class,i_item_id,i_item_desc,revenueratio,i_current_price,itemrevenue]
- WholeStageCodegen (2)
- Project [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,_we0,i_item_id]
- InputAdapter
- Window [_w0,i_class]
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometSort [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,i_item_id]
- CometExchange [i_class] #1
- CometHashAggregate [sum] [i_item_desc,i_category,i_class,i_current_price,itemrevenue,_w0,i_item_id,sum(UnscaledValue(ws_ext_sales_price))]
- CometExchange [i_item_id,i_item_desc,i_category,i_class,i_current_price] #2
- CometHashAggregate [ws_ext_sales_price] [i_item_id,i_item_desc,i_category,i_class,i_current_price,sum]
- CometProject [ws_ext_sales_price,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometBroadcastHashJoin [ws_ext_sales_price,ws_sold_date_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category,d_date_sk]
- CometProject [ws_ext_sales_price,ws_sold_date_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometBroadcastHashJoin [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk,i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometFilter [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales [ws_item_sk,ws_ext_sales_price,ws_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_date]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_date]
- CometBroadcastExchange [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category] #4
- CometProject [i_item_id,i_class,i_category] [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometFilter [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.item [i_item_sk,i_item_id,i_item_desc,i_current_price,i_class,i_category]
- CometBroadcastExchange [d_date_sk] #5
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_date]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_date]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_datafusion/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_datafusion/explain.txt
deleted file mode 100644
index dbacf525e..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_datafusion/explain.txt
+++ /dev/null
@@ -1,241 +0,0 @@
-== Physical Plan ==
-* HashAggregate (36)
-+- * CometColumnarToRow (35)
- +- CometColumnarExchange (34)
- +- * HashAggregate (33)
- +- * Project (32)
- +- * BroadcastHashJoin Inner BuildRight (31)
- :- * Project (26)
- : +- * BroadcastHashJoin Inner BuildRight (25)
- : :- * Project (19)
- : : +- * BroadcastHashJoin Inner BuildRight (18)
- : : :- * Project (16)
- : : : +- * BroadcastHashJoin Inner BuildRight (15)
- : : : :- * Project (9)
- : : : : +- * BroadcastHashJoin Inner BuildRight (8)
- : : : : :- * Filter (3)
- : : : : : +- * ColumnarToRow (2)
- : : : : : +- Scan parquet spark_catalog.default.store_sales (1)
- : : : : +- BroadcastExchange (7)
- : : : : +- * CometColumnarToRow (6)
- : : : : +- CometFilter (5)
- : : : : +- CometNativeScan parquet spark_catalog.default.store (4)
- : : : +- BroadcastExchange (14)
- : : : +- * CometColumnarToRow (13)
- : : : +- CometProject (12)
- : : : +- CometFilter (11)
- : : : +- CometNativeScan parquet spark_catalog.default.customer_address (10)
- : : +- ReusedExchange (17)
- : +- BroadcastExchange (24)
- : +- * CometColumnarToRow (23)
- : +- CometProject (22)
- : +- CometFilter (21)
- : +- CometNativeScan parquet spark_catalog.default.customer_demographics (20)
- +- BroadcastExchange (30)
- +- * CometColumnarToRow (29)
- +- CometFilter (28)
- +- CometNativeScan parquet spark_catalog.default.household_demographics (27)
-
-
-(1) Scan parquet spark_catalog.default.store_sales
-Output [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#10), dynamicpruningexpression(ss_sold_date_sk#10 IN dynamicpruning#11)]
-PushedFilters: [IsNotNull(ss_store_sk), IsNotNull(ss_addr_sk), IsNotNull(ss_cdemo_sk), IsNotNull(ss_hdemo_sk), Or(Or(And(GreaterThanOrEqual(ss_net_profit,100.00),LessThanOrEqual(ss_net_profit,200.00)),And(GreaterThanOrEqual(ss_net_profit,150.00),LessThanOrEqual(ss_net_profit,300.00))),And(GreaterThanOrEqual(ss_net_profit,50.00),LessThanOrEqual(ss_net_profit,250.00))), Or(Or(And(GreaterThanOrEqual(ss_sales_price,100.00),LessThanOrEqual(ss_sales_price,150.00)),And(GreaterThanOrEqual(ss_sal [...]
-ReadSchema: struct<ss_cdemo_sk:int,ss_hdemo_sk:int,ss_addr_sk:int,ss_store_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2),ss_ext_sales_price:decimal(7,2),ss_ext_wholesale_cost:decimal(7,2),ss_net_profit:decimal(7,2)>
-
-(2) ColumnarToRow [codegen id : 6]
-Input [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-
-(3) Filter [codegen id : 6]
-Input [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Condition : (((((isnotnull(ss_store_sk#4) AND isnotnull(ss_addr_sk#3)) AND isnotnull(ss_cdemo_sk#1)) AND isnotnull(ss_hdemo_sk#2)) AND ((((ss_net_profit#9 >= 100.00) AND (ss_net_profit#9 <= 200.00)) OR ((ss_net_profit#9 >= 150.00) AND (ss_net_profit#9 <= 300.00))) OR ((ss_net_profit#9 >= 50.00) AND (ss_net_profit#9 <= 250.00)))) AND ((((ss_sales_price#6 >= 100.00) AND (ss_sales_price#6 <= 150.00)) OR ((ss_sales_price#6 >= 50.00) AND (ss_sales_price#6 <= 100.00))) OR ((ss_sales_price#6 >= [...]
-
-(4) CometNativeScan parquet spark_catalog.default.store
-Output [1]: [s_store_sk#12]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/store]
-PushedFilters: [IsNotNull(s_store_sk)]
-ReadSchema: struct<s_store_sk:int>
-
-(5) CometFilter
-Input [1]: [s_store_sk#12]
-Condition : isnotnull(s_store_sk#12)
-
-(6) CometColumnarToRow [codegen id : 1]
-Input [1]: [s_store_sk#12]
-
-(7) BroadcastExchange
-Input [1]: [s_store_sk#12]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=1]
-
-(8) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_store_sk#4]
-Right keys [1]: [s_store_sk#12]
-Join type: Inner
-Join condition: None
-
-(9) Project [codegen id : 6]
-Output [9]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Input [11]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10, s_store_sk#12]
-
-(10) CometNativeScan parquet spark_catalog.default.customer_address
-Output [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_address]
-PushedFilters: [IsNotNull(ca_country), EqualTo(ca_country,United States), IsNotNull(ca_address_sk)]
-ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>
-
-(11) CometFilter
-Input [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Condition : (((isnotnull(ca_country#15) AND (ca_country#15 = United States)) AND isnotnull(ca_address_sk#13)) AND ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) IN (TX,OH) OR staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) IN (OR,NM,KY)) OR staticinvoke(class org.apache.spark.sql.catalyst.util.Char [...]
-
-(12) CometProject
-Input [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Arguments: [ca_address_sk#13, ca_state#16], [ca_address_sk#13, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) AS ca_state#16]
-
-(13) CometColumnarToRow [codegen id : 2]
-Input [2]: [ca_address_sk#13, ca_state#16]
-
-(14) BroadcastExchange
-Input [2]: [ca_address_sk#13, ca_state#16]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=2]
-
-(15) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_addr_sk#3]
-Right keys [1]: [ca_address_sk#13]
-Join type: Inner
-Join condition: ((((ca_state#16 IN (TX,OH) AND (ss_net_profit#9 >= 100.00)) AND (ss_net_profit#9 <= 200.00)) OR ((ca_state#16 IN (OR,NM,KY) AND (ss_net_profit#9 >= 150.00)) AND (ss_net_profit#9 <= 300.00))) OR ((ca_state#16 IN (VA,TX,MS) AND (ss_net_profit#9 >= 50.00)) AND (ss_net_profit#9 <= 250.00)))
-
-(16) Project [codegen id : 6]
-Output [7]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10]
-Input [11]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10, ca_address_sk#13, ca_state#16]
-
-(17) ReusedExchange [Reuses operator id: 41]
-Output [1]: [d_date_sk#17]
-
-(18) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_sold_date_sk#10]
-Right keys [1]: [d_date_sk#17]
-Join type: Inner
-Join condition: None
-
-(19) Project [codegen id : 6]
-Output [6]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Input [8]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10, d_date_sk#17]
-
-(20) CometNativeScan parquet spark_catalog.default.customer_demographics
-Output [3]: [cd_demo_sk#18, cd_marital_status#19, cd_education_status#20]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_demographics]
-PushedFilters: [IsNotNull(cd_demo_sk)]
-ReadSchema: struct<cd_demo_sk:int,cd_marital_status:string,cd_education_status:string>
-
-(21) CometFilter
-Input [3]: [cd_demo_sk#18, cd_marital_status#19, cd_education_status#20]
-Condition : (isnotnull(cd_demo_sk#18) AND ((((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#19, 1, true, false, true) = M) AND (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_education_status#20, 20, true, false, true) = Advanced Degree )) OR ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSide [...]
-
-(22) CometProject
-Input [3]: [cd_demo_sk#18, cd_marital_status#19, cd_education_status#20]
-Arguments: [cd_demo_sk#18, cd_marital_status#21, cd_education_status#22], [cd_demo_sk#18, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#19, 1, true, false, true) AS cd_marital_status#21, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_education_status#20, 20, true, false, true) AS cd_education_status#22]
-
-(23) CometColumnarToRow [codegen id : 4]
-Input [3]: [cd_demo_sk#18, cd_marital_status#21, cd_education_status#22]
-
-(24) BroadcastExchange
-Input [3]: [cd_demo_sk#18, cd_marital_status#21, cd_education_status#22]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=3]
-
-(25) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_cdemo_sk#1]
-Right keys [1]: [cd_demo_sk#18]
-Join type: Inner
-Join condition: ((((((cd_marital_status#21 = M) AND (cd_education_status#22 = Advanced Degree )) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) OR ((((cd_marital_status#21 = S) AND (cd_education_status#22 = College )) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00))) OR ((((cd_marital_status#21 = W) AND (cd_education_status#22 = 2 yr Degree )) AND (ss_sales_price#6 >= 150.00)) AND (ss_sales_price#6 <= 200.00)))
-
-(26) Project [codegen id : 6]
-Output [7]: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#21, cd_education_status#22]
-Input [9]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_demo_sk#18, cd_marital_status#21, cd_education_status#22]
-
-(27) CometNativeScan parquet spark_catalog.default.household_demographics
-Output [2]: [hd_demo_sk#23, hd_dep_count#24]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/household_demographics]
-PushedFilters: [IsNotNull(hd_demo_sk), Or(EqualTo(hd_dep_count,3),EqualTo(hd_dep_count,1))]
-ReadSchema: struct<hd_demo_sk:int,hd_dep_count:int>
-
-(28) CometFilter
-Input [2]: [hd_demo_sk#23, hd_dep_count#24]
-Condition : (isnotnull(hd_demo_sk#23) AND ((hd_dep_count#24 = 3) OR (hd_dep_count#24 = 1)))
-
-(29) CometColumnarToRow [codegen id : 5]
-Input [2]: [hd_demo_sk#23, hd_dep_count#24]
-
-(30) BroadcastExchange
-Input [2]: [hd_demo_sk#23, hd_dep_count#24]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=4]
-
-(31) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_hdemo_sk#2]
-Right keys [1]: [hd_demo_sk#23]
-Join type: Inner
-Join condition: (((((((cd_marital_status#21 = M) AND (cd_education_status#22 = Advanced Degree )) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) AND (hd_dep_count#24 = 3)) OR (((((cd_marital_status#21 = S) AND (cd_education_status#22 = College )) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00)) AND (hd_dep_count#24 = 1))) OR (((((cd_marital_status#21 = W) AND (cd_education_status#22 = 2 yr Degree )) AND (ss_sales_price#6 >= 1 [...]
-
-(32) Project [codegen id : 6]
-Output [3]: [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Input [9]: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#21, cd_education_status#22, hd_demo_sk#23, hd_dep_count#24]
-
-(33) HashAggregate [codegen id : 6]
-Input [3]: [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Keys: []
-Functions [4]: [partial_avg(ss_quantity#5), partial_avg(UnscaledValue(ss_ext_sales_price#7)), partial_avg(UnscaledValue(ss_ext_wholesale_cost#8)), partial_sum(UnscaledValue(ss_ext_wholesale_cost#8))]
-Aggregate Attributes [7]: [sum#25, count#26, sum#27, count#28, sum#29, count#30, sum#31]
-Results [7]: [sum#32, count#33, sum#34, count#35, sum#36, count#37, sum#38]
-
-(34) CometColumnarExchange
-Input [7]: [sum#32, count#33, sum#34, count#35, sum#36, count#37, sum#38]
-Arguments: SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=5]
-
-(35) CometColumnarToRow [codegen id : 7]
-Input [7]: [sum#32, count#33, sum#34, count#35, sum#36, count#37, sum#38]
-
-(36) HashAggregate [codegen id : 7]
-Input [7]: [sum#32, count#33, sum#34, count#35, sum#36, count#37, sum#38]
-Keys: []
-Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_ext_sales_price#7)), avg(UnscaledValue(ss_ext_wholesale_cost#8)), sum(UnscaledValue(ss_ext_wholesale_cost#8))]
-Aggregate Attributes [4]: [avg(ss_quantity#5)#39, avg(UnscaledValue(ss_ext_sales_price#7))#40, avg(UnscaledValue(ss_ext_wholesale_cost#8))#41, sum(UnscaledValue(ss_ext_wholesale_cost#8))#42]
-Results [4]: [avg(ss_quantity#5)#39 AS avg(ss_quantity)#43, cast((avg(UnscaledValue(ss_ext_sales_price#7))#40 / 100.0) as decimal(11,6)) AS avg(ss_ext_sales_price)#44, cast((avg(UnscaledValue(ss_ext_wholesale_cost#8))#41 / 100.0) as decimal(11,6)) AS avg(ss_ext_wholesale_cost)#45, MakeDecimal(sum(UnscaledValue(ss_ext_wholesale_cost#8))#42,17,2) AS sum(ss_ext_wholesale_cost)#46]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = ss_sold_date_sk#10 IN dynamicpruning#11
-BroadcastExchange (41)
-+- * CometColumnarToRow (40)
- +- CometProject (39)
- +- CometFilter (38)
- +- CometNativeScan parquet spark_catalog.default.date_dim (37)
-
-
-(37) CometNativeScan parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#17, d_year#47]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(38) CometFilter
-Input [2]: [d_date_sk#17, d_year#47]
-Condition : ((isnotnull(d_year#47) AND (d_year#47 = 2001)) AND isnotnull(d_date_sk#17))
-
-(39) CometProject
-Input [2]: [d_date_sk#17, d_year#47]
-Arguments: [d_date_sk#17], [d_date_sk#17]
-
-(40) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#17]
-
-(41) BroadcastExchange
-Input [1]: [d_date_sk#17]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=6]
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_datafusion/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_datafusion/simplified.txt
deleted file mode 100644
index a33ae5a16..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_datafusion/simplified.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-WholeStageCodegen (7)
- HashAggregate [sum,count,sum,count,sum,count,sum] [avg(ss_quantity),avg(UnscaledValue(ss_ext_sales_price)),avg(UnscaledValue(ss_ext_wholesale_cost)),sum(UnscaledValue(ss_ext_wholesale_cost)),avg(ss_quantity),avg(ss_ext_sales_price),avg(ss_ext_wholesale_cost),sum(ss_ext_wholesale_cost),sum,count,sum,count,sum,count,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange #1
- WholeStageCodegen (6)
- HashAggregate [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost] [sum,count,sum,count,sum,count,sum,sum,count,sum,count,sum,count,sum]
- Project [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost]
- BroadcastHashJoin [ss_hdemo_sk,hd_demo_sk,cd_marital_status,cd_education_status,ss_sales_price,hd_dep_count]
- Project [ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_marital_status,cd_education_status]
- BroadcastHashJoin [ss_cdemo_sk,cd_demo_sk,cd_marital_status,cd_education_status,ss_sales_price]
- Project [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- Project [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_sold_date_sk]
- BroadcastHashJoin [ss_addr_sk,ca_address_sk,ca_state,ss_net_profit]
- Project [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- BroadcastHashJoin [ss_store_sk,s_store_sk]
- Filter [ss_store_sk,ss_addr_sk,ss_cdemo_sk,ss_hdemo_sk,ss_net_profit,ss_sales_price]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #2
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- InputAdapter
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [s_store_sk]
- CometNativeScan parquet spark_catalog.default.store [s_store_sk]
- InputAdapter
- BroadcastExchange #4
- WholeStageCodegen (2)
- CometColumnarToRow
- InputAdapter
- CometProject [ca_state] [ca_address_sk,ca_state]
- CometFilter [ca_address_sk,ca_state,ca_country]
- CometNativeScan parquet spark_catalog.default.customer_address [ca_address_sk,ca_state,ca_country]
- InputAdapter
- ReusedExchange [d_date_sk] #2
- InputAdapter
- BroadcastExchange #5
- WholeStageCodegen (4)
- CometColumnarToRow
- InputAdapter
- CometProject [cd_marital_status,cd_education_status] [cd_demo_sk,cd_marital_status,cd_education_status]
- CometFilter [cd_demo_sk,cd_marital_status,cd_education_status]
- CometNativeScan parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_marital_status,cd_education_status]
- InputAdapter
- BroadcastExchange #6
- WholeStageCodegen (5)
- CometColumnarToRow
- InputAdapter
- CometFilter [hd_demo_sk,hd_dep_count]
- CometNativeScan parquet spark_catalog.default.household_demographics [hd_demo_sk,hd_dep_count]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_iceberg_compat/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_iceberg_compat/explain.txt
deleted file mode 100644
index 74da8ba88..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_iceberg_compat/explain.txt
+++ /dev/null
@@ -1,231 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (34)
-+- CometHashAggregate (33)
- +- CometExchange (32)
- +- CometHashAggregate (31)
- +- CometProject (30)
- +- CometBroadcastHashJoin (29)
- :- CometProject (25)
- : +- CometBroadcastHashJoin (24)
- : :- CometProject (19)
- : : +- CometBroadcastHashJoin (18)
- : : :- CometProject (13)
- : : : +- CometBroadcastHashJoin (12)
- : : : :- CometProject (7)
- : : : : +- CometBroadcastHashJoin (6)
- : : : : :- CometFilter (2)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (1)
- : : : : +- CometBroadcastExchange (5)
- : : : : +- CometFilter (4)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store (3)
- : : : +- CometBroadcastExchange (11)
- : : : +- CometProject (10)
- : : : +- CometFilter (9)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address (8)
- : : +- CometBroadcastExchange (17)
- : : +- CometProject (16)
- : : +- CometFilter (15)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (14)
- : +- CometBroadcastExchange (23)
- : +- CometProject (22)
- : +- CometFilter (21)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics (20)
- +- CometBroadcastExchange (28)
- +- CometFilter (27)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics (26)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#10), dynamicpruningexpression(ss_sold_date_sk#10 IN dynamicpruning#11)]
-PushedFilters: [IsNotNull(ss_store_sk), IsNotNull(ss_addr_sk), IsNotNull(ss_cdemo_sk), IsNotNull(ss_hdemo_sk), Or(Or(And(GreaterThanOrEqual(ss_net_profit,100.00),LessThanOrEqual(ss_net_profit,200.00)),And(GreaterThanOrEqual(ss_net_profit,150.00),LessThanOrEqual(ss_net_profit,300.00))),And(GreaterThanOrEqual(ss_net_profit,50.00),LessThanOrEqual(ss_net_profit,250.00))), Or(Or(And(GreaterThanOrEqual(ss_sales_price,100.00),LessThanOrEqual(ss_sales_price,150.00)),And(GreaterThanOrEqual(ss_sal [...]
-ReadSchema: struct<ss_cdemo_sk:int,ss_hdemo_sk:int,ss_addr_sk:int,ss_store_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2),ss_ext_sales_price:decimal(7,2),ss_ext_wholesale_cost:decimal(7,2),ss_net_profit:decimal(7,2)>
-
-(2) CometFilter
-Input [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Condition : (((((isnotnull(ss_store_sk#4) AND isnotnull(ss_addr_sk#3)) AND isnotnull(ss_cdemo_sk#1)) AND isnotnull(ss_hdemo_sk#2)) AND ((((ss_net_profit#9 >= 100.00) AND (ss_net_profit#9 <= 200.00)) OR ((ss_net_profit#9 >= 150.00) AND (ss_net_profit#9 <= 300.00))) OR ((ss_net_profit#9 >= 50.00) AND (ss_net_profit#9 <= 250.00)))) AND ((((ss_sales_price#6 >= 100.00) AND (ss_sales_price#6 <= 150.00)) OR ((ss_sales_price#6 >= 50.00) AND (ss_sales_price#6 <= 100.00))) OR ((ss_sales_price#6 >= [...]
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.store
-Output [1]: [s_store_sk#12]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/store]
-PushedFilters: [IsNotNull(s_store_sk)]
-ReadSchema: struct<s_store_sk:int>
-
-(4) CometFilter
-Input [1]: [s_store_sk#12]
-Condition : isnotnull(s_store_sk#12)
-
-(5) CometBroadcastExchange
-Input [1]: [s_store_sk#12]
-Arguments: [s_store_sk#12]
-
-(6) CometBroadcastHashJoin
-Left output [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Right output [1]: [s_store_sk#12]
-Arguments: [ss_store_sk#4], [s_store_sk#12], Inner, BuildRight
-
-(7) CometProject
-Input [11]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10, s_store_sk#12]
-Arguments: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10], [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-
-(8) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
-Output [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_address]
-PushedFilters: [IsNotNull(ca_country), EqualTo(ca_country,United States), IsNotNull(ca_address_sk)]
-ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>
-
-(9) CometFilter
-Input [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Condition : (((isnotnull(ca_country#15) AND (ca_country#15 = United States)) AND isnotnull(ca_address_sk#13)) AND ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) IN (TX,OH) OR staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) IN (OR,NM,KY)) OR staticinvoke(class org.apache.spark.sql.catalyst.util.Char [...]
-
-(10) CometProject
-Input [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Arguments: [ca_address_sk#13, ca_state#16], [ca_address_sk#13, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) AS ca_state#16]
-
-(11) CometBroadcastExchange
-Input [2]: [ca_address_sk#13, ca_state#16]
-Arguments: [ca_address_sk#13, ca_state#16]
-
-(12) CometBroadcastHashJoin
-Left output [9]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Right output [2]: [ca_address_sk#13, ca_state#16]
-Arguments: [ss_addr_sk#3], [ca_address_sk#13], Inner, ((((ca_state#16 IN (TX,OH) AND (ss_net_profit#9 >= 100.00)) AND (ss_net_profit#9 <= 200.00)) OR ((ca_state#16 IN (OR,NM,KY) AND (ss_net_profit#9 >= 150.00)) AND (ss_net_profit#9 <= 300.00))) OR ((ca_state#16 IN (VA,TX,MS) AND (ss_net_profit#9 >= 50.00)) AND (ss_net_profit#9 <= 250.00))), BuildRight
-
-(13) CometProject
-Input [11]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10, ca_address_sk#13, ca_state#16]
-Arguments: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10], [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10]
-
-(14) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#17, d_year#18]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(15) CometFilter
-Input [2]: [d_date_sk#17, d_year#18]
-Condition : ((isnotnull(d_year#18) AND (d_year#18 = 2001)) AND isnotnull(d_date_sk#17))
-
-(16) CometProject
-Input [2]: [d_date_sk#17, d_year#18]
-Arguments: [d_date_sk#17], [d_date_sk#17]
-
-(17) CometBroadcastExchange
-Input [1]: [d_date_sk#17]
-Arguments: [d_date_sk#17]
-
-(18) CometBroadcastHashJoin
-Left output [7]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10]
-Right output [1]: [d_date_sk#17]
-Arguments: [ss_sold_date_sk#10], [d_date_sk#17], Inner, BuildRight
-
-(19) CometProject
-Input [8]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10, d_date_sk#17]
-Arguments: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8], [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-
-(20) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics
-Output [3]: [cd_demo_sk#19, cd_marital_status#20, cd_education_status#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_demographics]
-PushedFilters: [IsNotNull(cd_demo_sk)]
-ReadSchema: struct<cd_demo_sk:int,cd_marital_status:string,cd_education_status:string>
-
-(21) CometFilter
-Input [3]: [cd_demo_sk#19, cd_marital_status#20, cd_education_status#21]
-Condition : (isnotnull(cd_demo_sk#19) AND ((((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#20, 1, true, false, true) = M) AND (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_education_status#21, 20, true, false, true) = Advanced Degree )) OR ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSide [...]
-
-(22) CometProject
-Input [3]: [cd_demo_sk#19, cd_marital_status#20, cd_education_status#21]
-Arguments: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23], [cd_demo_sk#19, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#20, 1, true, false, true) AS cd_marital_status#22, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_education_status#21, 20, true, false, true) AS cd_education_status#23]
-
-(23) CometBroadcastExchange
-Input [3]: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-Arguments: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-
-(24) CometBroadcastHashJoin
-Left output [6]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Right output [3]: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-Arguments: [ss_cdemo_sk#1], [cd_demo_sk#19], Inner, ((((((cd_marital_status#22 = M) AND (cd_education_status#23 = Advanced Degree )) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) OR ((((cd_marital_status#22 = S) AND (cd_education_status#23 = College )) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00))) OR ((((cd_marital_status#22 = W) AND (cd_education_status#23 = 2 yr Degree )) AND (ss_sales_price#6 >= 150.00)) AND (ss_sales [...]
-
-(25) CometProject
-Input [9]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-Arguments: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23], [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23]
-
-(26) CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics
-Output [2]: [hd_demo_sk#24, hd_dep_count#25]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/household_demographics]
-PushedFilters: [IsNotNull(hd_demo_sk), Or(EqualTo(hd_dep_count,3),EqualTo(hd_dep_count,1))]
-ReadSchema: struct<hd_demo_sk:int,hd_dep_count:int>
-
-(27) CometFilter
-Input [2]: [hd_demo_sk#24, hd_dep_count#25]
-Condition : (isnotnull(hd_demo_sk#24) AND ((hd_dep_count#25 = 3) OR (hd_dep_count#25 = 1)))
-
-(28) CometBroadcastExchange
-Input [2]: [hd_demo_sk#24, hd_dep_count#25]
-Arguments: [hd_demo_sk#24, hd_dep_count#25]
-
-(29) CometBroadcastHashJoin
-Left output [7]: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23]
-Right output [2]: [hd_demo_sk#24, hd_dep_count#25]
-Arguments: [ss_hdemo_sk#2], [hd_demo_sk#24], Inner, (((((((cd_marital_status#22 = M) AND (cd_education_status#23 = Advanced Degree )) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) AND (hd_dep_count#25 = 3)) OR (((((cd_marital_status#22 = S) AND (cd_education_status#23 = College )) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00)) AND (hd_dep_count#25 = 1))) OR (((((cd_marital_status#22 = W) AND (cd_education_status#23 = 2 yr Degree [...]
-
-(30) CometProject
-Input [9]: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23, hd_demo_sk#24, hd_dep_count#25]
-Arguments: [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8], [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-
-(31) CometHashAggregate
-Input [3]: [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Keys: []
-Functions [4]: [partial_avg(ss_quantity#5), partial_avg(UnscaledValue(ss_ext_sales_price#7)), partial_avg(UnscaledValue(ss_ext_wholesale_cost#8)), partial_sum(UnscaledValue(ss_ext_wholesale_cost#8))]
-
-(32) CometExchange
-Input [7]: [sum#26, count#27, sum#28, count#29, sum#30, count#31, sum#32]
-Arguments: SinglePartition, ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(33) CometHashAggregate
-Input [7]: [sum#26, count#27, sum#28, count#29, sum#30, count#31, sum#32]
-Keys: []
-Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_ext_sales_price#7)), avg(UnscaledValue(ss_ext_wholesale_cost#8)), sum(UnscaledValue(ss_ext_wholesale_cost#8))]
-
-(34) CometColumnarToRow [codegen id : 1]
-Input [4]: [avg(ss_quantity)#33, avg(ss_ext_sales_price)#34, avg(ss_ext_wholesale_cost)#35, sum(ss_ext_wholesale_cost)#36]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = ss_sold_date_sk#10 IN dynamicpruning#11
-BroadcastExchange (39)
-+- * CometColumnarToRow (38)
- +- CometProject (37)
- +- CometFilter (36)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (35)
-
-
-(35) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#17, d_year#18]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(36) CometFilter
-Input [2]: [d_date_sk#17, d_year#18]
-Condition : ((isnotnull(d_year#18) AND (d_year#18 = 2001)) AND isnotnull(d_date_sk#17))
-
-(37) CometProject
-Input [2]: [d_date_sk#17, d_year#18]
-Arguments: [d_date_sk#17], [d_date_sk#17]
-
-(38) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#17]
-
-(39) BroadcastExchange
-Input [1]: [d_date_sk#17]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=2]
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_iceberg_compat/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_iceberg_compat/simplified.txt
deleted file mode 100644
index 8ef882a43..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13.native_iceberg_compat/simplified.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometHashAggregate [sum,count,sum,count,sum,count,sum] [avg(ss_quantity),avg(ss_ext_sales_price),avg(ss_ext_wholesale_cost),sum(ss_ext_wholesale_cost),avg(ss_quantity),avg(UnscaledValue(ss_ext_sales_price)),avg(UnscaledValue(ss_ext_wholesale_cost)),sum(UnscaledValue(ss_ext_wholesale_cost))]
- CometExchange #1
- CometHashAggregate [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost] [sum,count,sum,count,sum,count,sum]
- CometProject [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost]
- CometBroadcastHashJoin [ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_marital_status,cd_education_status,hd_demo_sk,hd_dep_count]
- CometProject [ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_marital_status,cd_education_status]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_demo_sk,cd_marital_status,cd_education_status]
- CometProject [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_sold_date_sk,d_date_sk]
- CometProject [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_sold_date_sk]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk,ca_address_sk,ca_state]
- CometProject [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk,s_store_sk]
- CometFilter [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #2
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [s_store_sk] #3
- CometFilter [s_store_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store [s_store_sk]
- CometBroadcastExchange [ca_address_sk,ca_state] #4
- CometProject [ca_state] [ca_address_sk,ca_state]
- CometFilter [ca_address_sk,ca_state,ca_country]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address [ca_address_sk,ca_state,ca_country]
- CometBroadcastExchange [d_date_sk] #5
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [cd_demo_sk,cd_marital_status,cd_education_status] #6
- CometProject [cd_marital_status,cd_education_status] [cd_demo_sk,cd_marital_status,cd_education_status]
- CometFilter [cd_demo_sk,cd_marital_status,cd_education_status]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_marital_status,cd_education_status]
- CometBroadcastExchange [hd_demo_sk,hd_dep_count] #7
- CometFilter [hd_demo_sk,hd_dep_count]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics [hd_demo_sk,hd_dep_count]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/explain.txt
deleted file mode 100644
index 74da8ba88..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/explain.txt
+++ /dev/null
@@ -1,231 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (34)
-+- CometHashAggregate (33)
- +- CometExchange (32)
- +- CometHashAggregate (31)
- +- CometProject (30)
- +- CometBroadcastHashJoin (29)
- :- CometProject (25)
- : +- CometBroadcastHashJoin (24)
- : :- CometProject (19)
- : : +- CometBroadcastHashJoin (18)
- : : :- CometProject (13)
- : : : +- CometBroadcastHashJoin (12)
- : : : :- CometProject (7)
- : : : : +- CometBroadcastHashJoin (6)
- : : : : :- CometFilter (2)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (1)
- : : : : +- CometBroadcastExchange (5)
- : : : : +- CometFilter (4)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store (3)
- : : : +- CometBroadcastExchange (11)
- : : : +- CometProject (10)
- : : : +- CometFilter (9)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address (8)
- : : +- CometBroadcastExchange (17)
- : : +- CometProject (16)
- : : +- CometFilter (15)
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (14)
- : +- CometBroadcastExchange (23)
- : +- CometProject (22)
- : +- CometFilter (21)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics (20)
- +- CometBroadcastExchange (28)
- +- CometFilter (27)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics (26)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#10), dynamicpruningexpression(ss_sold_date_sk#10 IN dynamicpruning#11)]
-PushedFilters: [IsNotNull(ss_store_sk), IsNotNull(ss_addr_sk), IsNotNull(ss_cdemo_sk), IsNotNull(ss_hdemo_sk), Or(Or(And(GreaterThanOrEqual(ss_net_profit,100.00),LessThanOrEqual(ss_net_profit,200.00)),And(GreaterThanOrEqual(ss_net_profit,150.00),LessThanOrEqual(ss_net_profit,300.00))),And(GreaterThanOrEqual(ss_net_profit,50.00),LessThanOrEqual(ss_net_profit,250.00))), Or(Or(And(GreaterThanOrEqual(ss_sales_price,100.00),LessThanOrEqual(ss_sales_price,150.00)),And(GreaterThanOrEqual(ss_sal [...]
-ReadSchema: struct<ss_cdemo_sk:int,ss_hdemo_sk:int,ss_addr_sk:int,ss_store_sk:int,ss_quantity:int,ss_sales_price:decimal(7,2),ss_ext_sales_price:decimal(7,2),ss_ext_wholesale_cost:decimal(7,2),ss_net_profit:decimal(7,2)>
-
-(2) CometFilter
-Input [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Condition : (((((isnotnull(ss_store_sk#4) AND isnotnull(ss_addr_sk#3)) AND isnotnull(ss_cdemo_sk#1)) AND isnotnull(ss_hdemo_sk#2)) AND ((((ss_net_profit#9 >= 100.00) AND (ss_net_profit#9 <= 200.00)) OR ((ss_net_profit#9 >= 150.00) AND (ss_net_profit#9 <= 300.00))) OR ((ss_net_profit#9 >= 50.00) AND (ss_net_profit#9 <= 250.00)))) AND ((((ss_sales_price#6 >= 100.00) AND (ss_sales_price#6 <= 150.00)) OR ((ss_sales_price#6 >= 50.00) AND (ss_sales_price#6 <= 100.00))) OR ((ss_sales_price#6 >= [...]
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.store
-Output [1]: [s_store_sk#12]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/store]
-PushedFilters: [IsNotNull(s_store_sk)]
-ReadSchema: struct<s_store_sk:int>
-
-(4) CometFilter
-Input [1]: [s_store_sk#12]
-Condition : isnotnull(s_store_sk#12)
-
-(5) CometBroadcastExchange
-Input [1]: [s_store_sk#12]
-Arguments: [s_store_sk#12]
-
-(6) CometBroadcastHashJoin
-Left output [10]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Right output [1]: [s_store_sk#12]
-Arguments: [ss_store_sk#4], [s_store_sk#12], Inner, BuildRight
-
-(7) CometProject
-Input [11]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_store_sk#4, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10, s_store_sk#12]
-Arguments: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10], [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-
-(8) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
-Output [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_address]
-PushedFilters: [IsNotNull(ca_country), EqualTo(ca_country,United States), IsNotNull(ca_address_sk)]
-ReadSchema: struct<ca_address_sk:int,ca_state:string,ca_country:string>
-
-(9) CometFilter
-Input [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Condition : (((isnotnull(ca_country#15) AND (ca_country#15 = United States)) AND isnotnull(ca_address_sk#13)) AND ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) IN (TX,OH) OR staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) IN (OR,NM,KY)) OR staticinvoke(class org.apache.spark.sql.catalyst.util.Char [...]
-
-(10) CometProject
-Input [3]: [ca_address_sk#13, ca_state#14, ca_country#15]
-Arguments: [ca_address_sk#13, ca_state#16], [ca_address_sk#13, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, ca_state#14, 2, true, false, true) AS ca_state#16]
-
-(11) CometBroadcastExchange
-Input [2]: [ca_address_sk#13, ca_state#16]
-Arguments: [ca_address_sk#13, ca_state#16]
-
-(12) CometBroadcastHashJoin
-Left output [9]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10]
-Right output [2]: [ca_address_sk#13, ca_state#16]
-Arguments: [ss_addr_sk#3], [ca_address_sk#13], Inner, ((((ca_state#16 IN (TX,OH) AND (ss_net_profit#9 >= 100.00)) AND (ss_net_profit#9 <= 200.00)) OR ((ca_state#16 IN (OR,NM,KY) AND (ss_net_profit#9 >= 150.00)) AND (ss_net_profit#9 <= 300.00))) OR ((ca_state#16 IN (VA,TX,MS) AND (ss_net_profit#9 >= 50.00)) AND (ss_net_profit#9 <= 250.00))), BuildRight
-
-(13) CometProject
-Input [11]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_net_profit#9, ss_sold_date_sk#10, ca_address_sk#13, ca_state#16]
-Arguments: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10], [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10]
-
-(14) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#17, d_year#18]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(15) CometFilter
-Input [2]: [d_date_sk#17, d_year#18]
-Condition : ((isnotnull(d_year#18) AND (d_year#18 = 2001)) AND isnotnull(d_date_sk#17))
-
-(16) CometProject
-Input [2]: [d_date_sk#17, d_year#18]
-Arguments: [d_date_sk#17], [d_date_sk#17]
-
-(17) CometBroadcastExchange
-Input [1]: [d_date_sk#17]
-Arguments: [d_date_sk#17]
-
-(18) CometBroadcastHashJoin
-Left output [7]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10]
-Right output [1]: [d_date_sk#17]
-Arguments: [ss_sold_date_sk#10], [d_date_sk#17], Inner, BuildRight
-
-(19) CometProject
-Input [8]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, ss_sold_date_sk#10, d_date_sk#17]
-Arguments: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8], [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-
-(20) CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics
-Output [3]: [cd_demo_sk#19, cd_marital_status#20, cd_education_status#21]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/customer_demographics]
-PushedFilters: [IsNotNull(cd_demo_sk)]
-ReadSchema: struct<cd_demo_sk:int,cd_marital_status:string,cd_education_status:string>
-
-(21) CometFilter
-Input [3]: [cd_demo_sk#19, cd_marital_status#20, cd_education_status#21]
-Condition : (isnotnull(cd_demo_sk#19) AND ((((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#20, 1, true, false, true) = M) AND (staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_education_status#21, 20, true, false, true) = Advanced Degree )) OR ((staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSide [...]
-
-(22) CometProject
-Input [3]: [cd_demo_sk#19, cd_marital_status#20, cd_education_status#21]
-Arguments: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23], [cd_demo_sk#19, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_marital_status#20, 1, true, false, true) AS cd_marital_status#22, staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, readSidePadding, cd_education_status#21, 20, true, false, true) AS cd_education_status#23]
-
-(23) CometBroadcastExchange
-Input [3]: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-Arguments: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-
-(24) CometBroadcastHashJoin
-Left output [6]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Right output [3]: [cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-Arguments: [ss_cdemo_sk#1], [cd_demo_sk#19], Inner, ((((((cd_marital_status#22 = M) AND (cd_education_status#23 = Advanced Degree )) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) OR ((((cd_marital_status#22 = S) AND (cd_education_status#23 = College )) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00))) OR ((((cd_marital_status#22 = W) AND (cd_education_status#23 = 2 yr Degree )) AND (ss_sales_price#6 >= 150.00)) AND (ss_sales [...]
-
-(25) CometProject
-Input [9]: [ss_cdemo_sk#1, ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_demo_sk#19, cd_marital_status#22, cd_education_status#23]
-Arguments: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23], [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23]
-
-(26) CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics
-Output [2]: [hd_demo_sk#24, hd_dep_count#25]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/household_demographics]
-PushedFilters: [IsNotNull(hd_demo_sk), Or(EqualTo(hd_dep_count,3),EqualTo(hd_dep_count,1))]
-ReadSchema: struct<hd_demo_sk:int,hd_dep_count:int>
-
-(27) CometFilter
-Input [2]: [hd_demo_sk#24, hd_dep_count#25]
-Condition : (isnotnull(hd_demo_sk#24) AND ((hd_dep_count#25 = 3) OR (hd_dep_count#25 = 1)))
-
-(28) CometBroadcastExchange
-Input [2]: [hd_demo_sk#24, hd_dep_count#25]
-Arguments: [hd_demo_sk#24, hd_dep_count#25]
-
-(29) CometBroadcastHashJoin
-Left output [7]: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23]
-Right output [2]: [hd_demo_sk#24, hd_dep_count#25]
-Arguments: [ss_hdemo_sk#2], [hd_demo_sk#24], Inner, (((((((cd_marital_status#22 = M) AND (cd_education_status#23 = Advanced Degree )) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) AND (hd_dep_count#25 = 3)) OR (((((cd_marital_status#22 = S) AND (cd_education_status#23 = College )) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00)) AND (hd_dep_count#25 = 1))) OR (((((cd_marital_status#22 = W) AND (cd_education_status#23 = 2 yr Degree [...]
-
-(30) CometProject
-Input [9]: [ss_hdemo_sk#2, ss_quantity#5, ss_sales_price#6, ss_ext_sales_price#7, ss_ext_wholesale_cost#8, cd_marital_status#22, cd_education_status#23, hd_demo_sk#24, hd_dep_count#25]
-Arguments: [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8], [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-
-(31) CometHashAggregate
-Input [3]: [ss_quantity#5, ss_ext_sales_price#7, ss_ext_wholesale_cost#8]
-Keys: []
-Functions [4]: [partial_avg(ss_quantity#5), partial_avg(UnscaledValue(ss_ext_sales_price#7)), partial_avg(UnscaledValue(ss_ext_wholesale_cost#8)), partial_sum(UnscaledValue(ss_ext_wholesale_cost#8))]
-
-(32) CometExchange
-Input [7]: [sum#26, count#27, sum#28, count#29, sum#30, count#31, sum#32]
-Arguments: SinglePartition, ENSURE_REQUIREMENTS, CometNativeShuffle, [plan_id=1]
-
-(33) CometHashAggregate
-Input [7]: [sum#26, count#27, sum#28, count#29, sum#30, count#31, sum#32]
-Keys: []
-Functions [4]: [avg(ss_quantity#5), avg(UnscaledValue(ss_ext_sales_price#7)), avg(UnscaledValue(ss_ext_wholesale_cost#8)), sum(UnscaledValue(ss_ext_wholesale_cost#8))]
-
-(34) CometColumnarToRow [codegen id : 1]
-Input [4]: [avg(ss_quantity)#33, avg(ss_ext_sales_price)#34, avg(ss_ext_wholesale_cost)#35, sum(ss_ext_wholesale_cost)#36]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 1 Hosting Expression = ss_sold_date_sk#10 IN dynamicpruning#11
-BroadcastExchange (39)
-+- * CometColumnarToRow (38)
- +- CometProject (37)
- +- CometFilter (36)
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (35)
-
-
-(35) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#17, d_year#18]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(36) CometFilter
-Input [2]: [d_date_sk#17, d_year#18]
-Condition : ((isnotnull(d_year#18) AND (d_year#18 = 2001)) AND isnotnull(d_date_sk#17))
-
-(37) CometProject
-Input [2]: [d_date_sk#17, d_year#18]
-Arguments: [d_date_sk#17], [d_date_sk#17]
-
-(38) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#17]
-
-(39) BroadcastExchange
-Input [1]: [d_date_sk#17]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=2]
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/extended.txt
deleted file mode 100644
index 08e9beb69..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/extended.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-CometColumnarToRow
-+- CometHashAggregate
- +- CometExchange
- +- CometHashAggregate
- +- CometProject
- +- CometBroadcastHashJoin
- :- CometProject
- : +- CometBroadcastHashJoin
- : :- CometProject
- : : +- CometBroadcastHashJoin
- : : :- CometProject
- : : : +- CometBroadcastHashJoin
- : : : :- CometProject
- : : : : +- CometBroadcastHashJoin
- : : : : :- CometFilter
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
- : : : : : +- SubqueryBroadcast
- : : : : : +- BroadcastExchange
- : : : : : +- CometColumnarToRow
- : : : : : +- CometProject
- : : : : : +- CometFilter
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : : : : +- CometBroadcastExchange
- : : : : +- CometFilter
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store
- : : : +- CometBroadcastExchange
- : : : +- CometProject
- : : : +- CometFilter
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address
- : : +- CometBroadcastExchange
- : : +- CometProject
- : : +- CometFilter
- : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
- : +- CometBroadcastExchange
- : +- CometProject
- : +- CometFilter
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics
- +- CometBroadcastExchange
- +- CometFilter
- +- CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics
-
-Comet accelerated 36 out of 38 eligible operators (94%). Final plan contains 2 transitions between Spark and Comet.
\ No newline at end of file
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/simplified.txt
deleted file mode 100644
index 8ef882a43..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q13/simplified.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometHashAggregate [sum,count,sum,count,sum,count,sum] [avg(ss_quantity),avg(ss_ext_sales_price),avg(ss_ext_wholesale_cost),sum(ss_ext_wholesale_cost),avg(ss_quantity),avg(UnscaledValue(ss_ext_sales_price)),avg(UnscaledValue(ss_ext_wholesale_cost)),sum(UnscaledValue(ss_ext_wholesale_cost))]
- CometExchange #1
- CometHashAggregate [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost] [sum,count,sum,count,sum,count,sum]
- CometProject [ss_quantity,ss_ext_sales_price,ss_ext_wholesale_cost]
- CometBroadcastHashJoin [ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_marital_status,cd_education_status,hd_demo_sk,hd_dep_count]
- CometProject [ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_marital_status,cd_education_status]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,cd_demo_sk,cd_marital_status,cd_education_status]
- CometProject [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_sold_date_sk,d_date_sk]
- CometProject [ss_cdemo_sk,ss_hdemo_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_sold_date_sk]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk,ca_address_sk,ca_state]
- CometProject [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- CometBroadcastHashJoin [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk,s_store_sk]
- CometFilter [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales [ss_cdemo_sk,ss_hdemo_sk,ss_addr_sk,ss_store_sk,ss_quantity,ss_sales_price,ss_ext_sales_price,ss_ext_wholesale_cost,ss_net_profit,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #2
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [s_store_sk] #3
- CometFilter [s_store_sk]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.store [s_store_sk]
- CometBroadcastExchange [ca_address_sk,ca_state] #4
- CometProject [ca_state] [ca_address_sk,ca_state]
- CometFilter [ca_address_sk,ca_state,ca_country]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_address [ca_address_sk,ca_state,ca_country]
- CometBroadcastExchange [d_date_sk] #5
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- CometBroadcastExchange [cd_demo_sk,cd_marital_status,cd_education_status] #6
- CometProject [cd_marital_status,cd_education_status] [cd_demo_sk,cd_marital_status,cd_education_status]
- CometFilter [cd_demo_sk,cd_marital_status,cd_education_status]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.customer_demographics [cd_demo_sk,cd_marital_status,cd_education_status]
- CometBroadcastExchange [hd_demo_sk,hd_dep_count] #7
- CometFilter [hd_demo_sk,hd_dep_count]
- CometScan [native_iceberg_compat] parquet spark_catalog.default.household_demographics [hd_demo_sk,hd_dep_count]
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_datafusion/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_datafusion/explain.txt
deleted file mode 100644
index f7377ccf8..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_datafusion/explain.txt
+++ /dev/null
@@ -1,822 +0,0 @@
-== Physical Plan ==
-TakeOrderedAndProject (110)
-+- * HashAggregate (109)
- +- * CometColumnarToRow (108)
- +- CometColumnarExchange (107)
- +- * HashAggregate (106)
- +- * Expand (105)
- +- Union (104)
- :- * Project (69)
- : +- * Filter (68)
- : +- * HashAggregate (67)
- : +- * CometColumnarToRow (66)
- : +- CometColumnarExchange (65)
- : +- * HashAggregate (64)
- : +- * Project (63)
- : +- * BroadcastHashJoin Inner BuildRight (62)
- : :- * Project (60)
- : : +- * BroadcastHashJoin Inner BuildRight (59)
- : : :- * BroadcastHashJoin LeftSemi BuildRight (52)
- : : : :- * Filter (3)
- : : : : +- * ColumnarToRow (2)
- : : : : +- Scan parquet spark_catalog.default.store_sales (1)
- : : : +- BroadcastExchange (51)
- : : : +- * Project (50)
- : : : +- * BroadcastHashJoin Inner BuildRight (49)
- : : : :- * CometColumnarToRow (6)
- : : : : +- CometFilter (5)
- : : : : +- CometNativeScan parquet spark_catalog.default.item (4)
- : : : +- BroadcastExchange (48)
- : : : +- * BroadcastHashJoin LeftSemi BuildRight (47)
- : : : :- * CometColumnarToRow (36)
- : : : : +- CometHashAggregate (35)
- : : : : +- CometColumnarExchange (34)
- : : : : +- * HashAggregate (33)
- : : : : +- * Project (32)
- : : : : +- * BroadcastHashJoin Inner BuildRight (31)
- : : : : :- * Project (29)
- : : : : : +- * BroadcastHashJoin Inner BuildRight (28)
- : : : : : :- * Filter (9)
- : : : : : : +- * ColumnarToRow (8)
- : : : : : : +- Scan parquet spark_catalog.default.store_sales (7)
- : : : : : +- BroadcastExchange (27)
- : : : : : +- * BroadcastHashJoin LeftSemi BuildRight (26)
- : : : : : :- * CometColumnarToRow (12)
- : : : : : : +- CometFilter (11)
- : : : : : : +- CometNativeScan parquet spark_catalog.default.item (10)
- : : : : : +- BroadcastExchange (25)
- : : : : : +- * Project (24)
- : : : : : +- * BroadcastHashJoin Inner BuildRight (23)
- : : : : : :- * Project (21)
- : : : : : : +- * BroadcastHashJoin Inner BuildRight (20)
- : : : : : : :- * Filter (15)
- : : : : : : : +- * ColumnarToRow (14)
- : : : : : : : +- Scan parquet spark_catalog.default.catalog_sales (13)
- : : : : : : +- BroadcastExchange (19)
- : : : : : : +- * CometColumnarToRow (18)
- : : : : : : +- CometFilter (17)
- : : : : : : +- CometNativeScan parquet spark_catalog.default.item (16)
- : : : : : +- ReusedExchange (22)
- : : : : +- ReusedExchange (30)
- : : : +- BroadcastExchange (46)
- : : : +- * Project (45)
- : : : +- * BroadcastHashJoin Inner BuildRight (44)
- : : : :- * Project (42)
- : : : : +- * BroadcastHashJoin Inner BuildRight (41)
- : : : : :- * Filter (39)
- : : : : : +- * ColumnarToRow (38)
- : : : : : +- Scan parquet spark_catalog.default.web_sales (37)
- : : : : +- ReusedExchange (40)
- : : : +- ReusedExchange (43)
- : : +- BroadcastExchange (58)
- : : +- * BroadcastHashJoin LeftSemi BuildRight (57)
- : : :- * CometColumnarToRow (55)
- : : : +- CometFilter (54)
- : : : +- CometNativeScan parquet spark_catalog.default.item (53)
- : : +- ReusedExchange (56)
- : +- ReusedExchange (61)
- :- * Project (86)
- : +- * Filter (85)
- : +- * HashAggregate (84)
- : +- * CometColumnarToRow (83)
- : +- CometColumnarExchange (82)
- : +- * HashAggregate (81)
- : +- * Project (80)
- : +- * BroadcastHashJoin Inner BuildRight (79)
- : :- * Project (77)
- : : +- * BroadcastHashJoin Inner BuildRight (76)
- : : :- * BroadcastHashJoin LeftSemi BuildRight (74)
- : : : :- * Filter (72)
- : : : : +- * ColumnarToRow (71)
- : : : : +- Scan parquet spark_catalog.default.catalog_sales (70)
- : : : +- ReusedExchange (73)
- : : +- ReusedExchange (75)
- : +- ReusedExchange (78)
- +- * Project (103)
- +- * Filter (102)
- +- * HashAggregate (101)
- +- * CometColumnarToRow (100)
- +- CometColumnarExchange (99)
- +- * HashAggregate (98)
- +- * Project (97)
- +- * BroadcastHashJoin Inner BuildRight (96)
- :- * Project (94)
- : +- * BroadcastHashJoin Inner BuildRight (93)
- : :- * BroadcastHashJoin LeftSemi BuildRight (91)
- : : :- * Filter (89)
- : : : +- * ColumnarToRow (88)
- : : : +- Scan parquet spark_catalog.default.web_sales (87)
- : : +- ReusedExchange (90)
- : +- ReusedExchange (92)
- +- ReusedExchange (95)
-
-
-(1) Scan parquet spark_catalog.default.store_sales
-Output [4]: [ss_item_sk#1, ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#4), dynamicpruningexpression(ss_sold_date_sk#4 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(ss_item_sk)]
-ReadSchema: struct<ss_item_sk:int,ss_quantity:int,ss_list_price:decimal(7,2)>
-
-(2) ColumnarToRow [codegen id : 25]
-Input [4]: [ss_item_sk#1, ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4]
-
-(3) Filter [codegen id : 25]
-Input [4]: [ss_item_sk#1, ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4]
-Condition : isnotnull(ss_item_sk#1)
-
-(4) CometNativeScan parquet spark_catalog.default.item
-Output [4]: [i_item_sk#6, i_brand_id#7, i_class_id#8, i_category_id#9]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(5) CometFilter
-Input [4]: [i_item_sk#6, i_brand_id#7, i_class_id#8, i_category_id#9]
-Condition : ((isnotnull(i_brand_id#7) AND isnotnull(i_class_id#8)) AND isnotnull(i_category_id#9))
-
-(6) CometColumnarToRow [codegen id : 11]
-Input [4]: [i_item_sk#6, i_brand_id#7, i_class_id#8, i_category_id#9]
-
-(7) Scan parquet spark_catalog.default.store_sales
-Output [2]: [ss_item_sk#10, ss_sold_date_sk#11]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#11), dynamicpruningexpression(ss_sold_date_sk#11 IN dynamicpruning#12)]
-PushedFilters: [IsNotNull(ss_item_sk)]
-ReadSchema: struct<ss_item_sk:int>
-
-(8) ColumnarToRow [codegen id : 6]
-Input [2]: [ss_item_sk#10, ss_sold_date_sk#11]
-
-(9) Filter [codegen id : 6]
-Input [2]: [ss_item_sk#10, ss_sold_date_sk#11]
-Condition : isnotnull(ss_item_sk#10)
-
-(10) CometNativeScan parquet spark_catalog.default.item
-Output [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(11) CometFilter
-Input [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-Condition : (((isnotnull(i_item_sk#13) AND isnotnull(i_brand_id#14)) AND isnotnull(i_class_id#15)) AND isnotnull(i_category_id#16))
-
-(12) CometColumnarToRow [codegen id : 4]
-Input [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-
-(13) Scan parquet spark_catalog.default.catalog_sales
-Output [2]: [cs_item_sk#17, cs_sold_date_sk#18]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#18), dynamicpruningexpression(cs_sold_date_sk#18 IN dynamicpruning#12)]
-PushedFilters: [IsNotNull(cs_item_sk)]
-ReadSchema: struct<cs_item_sk:int>
-
-(14) ColumnarToRow [codegen id : 3]
-Input [2]: [cs_item_sk#17, cs_sold_date_sk#18]
-
-(15) Filter [codegen id : 3]
-Input [2]: [cs_item_sk#17, cs_sold_date_sk#18]
-Condition : isnotnull(cs_item_sk#17)
-
-(16) CometNativeScan parquet spark_catalog.default.item
-Output [4]: [i_item_sk#19, i_brand_id#20, i_class_id#21, i_category_id#22]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(17) CometFilter
-Input [4]: [i_item_sk#19, i_brand_id#20, i_class_id#21, i_category_id#22]
-Condition : isnotnull(i_item_sk#19)
-
-(18) CometColumnarToRow [codegen id : 1]
-Input [4]: [i_item_sk#19, i_brand_id#20, i_class_id#21, i_category_id#22]
-
-(19) BroadcastExchange
-Input [4]: [i_item_sk#19, i_brand_id#20, i_class_id#21, i_category_id#22]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=1]
-
-(20) BroadcastHashJoin [codegen id : 3]
-Left keys [1]: [cs_item_sk#17]
-Right keys [1]: [i_item_sk#19]
-Join type: Inner
-Join condition: None
-
-(21) Project [codegen id : 3]
-Output [4]: [cs_sold_date_sk#18, i_brand_id#20, i_class_id#21, i_category_id#22]
-Input [6]: [cs_item_sk#17, cs_sold_date_sk#18, i_item_sk#19, i_brand_id#20, i_class_id#21, i_category_id#22]
-
-(22) ReusedExchange [Reuses operator id: 140]
-Output [1]: [d_date_sk#23]
-
-(23) BroadcastHashJoin [codegen id : 3]
-Left keys [1]: [cs_sold_date_sk#18]
-Right keys [1]: [d_date_sk#23]
-Join type: Inner
-Join condition: None
-
-(24) Project [codegen id : 3]
-Output [3]: [i_brand_id#20, i_class_id#21, i_category_id#22]
-Input [5]: [cs_sold_date_sk#18, i_brand_id#20, i_class_id#21, i_category_id#22, d_date_sk#23]
-
-(25) BroadcastExchange
-Input [3]: [i_brand_id#20, i_class_id#21, i_category_id#22]
-Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, int, true], 0), isnull(input[0, int, true]), coalesce(input[1, int, true], 0), isnull(input[1, int, true]), coalesce(input[2, int, true], 0), isnull(input[2, int, true])),false), [plan_id=2]
-
-(26) BroadcastHashJoin [codegen id : 4]
-Left keys [6]: [coalesce(i_brand_id#14, 0), isnull(i_brand_id#14), coalesce(i_class_id#15, 0), isnull(i_class_id#15), coalesce(i_category_id#16, 0), isnull(i_category_id#16)]
-Right keys [6]: [coalesce(i_brand_id#20, 0), isnull(i_brand_id#20), coalesce(i_class_id#21, 0), isnull(i_class_id#21), coalesce(i_category_id#22, 0), isnull(i_category_id#22)]
-Join type: LeftSemi
-Join condition: None
-
-(27) BroadcastExchange
-Input [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=3]
-
-(28) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_item_sk#10]
-Right keys [1]: [i_item_sk#13]
-Join type: Inner
-Join condition: None
-
-(29) Project [codegen id : 6]
-Output [4]: [ss_sold_date_sk#11, i_brand_id#14, i_class_id#15, i_category_id#16]
-Input [6]: [ss_item_sk#10, ss_sold_date_sk#11, i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-
-(30) ReusedExchange [Reuses operator id: 140]
-Output [1]: [d_date_sk#24]
-
-(31) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ss_sold_date_sk#11]
-Right keys [1]: [d_date_sk#24]
-Join type: Inner
-Join condition: None
-
-(32) Project [codegen id : 6]
-Output [3]: [i_brand_id#14 AS brand_id#25, i_class_id#15 AS class_id#26, i_category_id#16 AS category_id#27]
-Input [5]: [ss_sold_date_sk#11, i_brand_id#14, i_class_id#15, i_category_id#16, d_date_sk#24]
-
-(33) HashAggregate [codegen id : 6]
-Input [3]: [brand_id#25, class_id#26, category_id#27]
-Keys [3]: [brand_id#25, class_id#26, category_id#27]
-Functions: []
-Aggregate Attributes: []
-Results [3]: [brand_id#25, class_id#26, category_id#27]
-
-(34) CometColumnarExchange
-Input [3]: [brand_id#25, class_id#26, category_id#27]
-Arguments: hashpartitioning(brand_id#25, class_id#26, category_id#27, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=4]
-
-(35) CometHashAggregate
-Input [3]: [brand_id#25, class_id#26, category_id#27]
-Keys [3]: [brand_id#25, class_id#26, category_id#27]
-Functions: []
-
-(36) CometColumnarToRow [codegen id : 10]
-Input [3]: [brand_id#25, class_id#26, category_id#27]
-
-(37) Scan parquet spark_catalog.default.web_sales
-Output [2]: [ws_item_sk#28, ws_sold_date_sk#29]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#29), dynamicpruningexpression(ws_sold_date_sk#29 IN dynamicpruning#12)]
-PushedFilters: [IsNotNull(ws_item_sk)]
-ReadSchema: struct<ws_item_sk:int>
-
-(38) ColumnarToRow [codegen id : 9]
-Input [2]: [ws_item_sk#28, ws_sold_date_sk#29]
-
-(39) Filter [codegen id : 9]
-Input [2]: [ws_item_sk#28, ws_sold_date_sk#29]
-Condition : isnotnull(ws_item_sk#28)
-
-(40) ReusedExchange [Reuses operator id: 19]
-Output [4]: [i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33]
-
-(41) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [ws_item_sk#28]
-Right keys [1]: [i_item_sk#30]
-Join type: Inner
-Join condition: None
-
-(42) Project [codegen id : 9]
-Output [4]: [ws_sold_date_sk#29, i_brand_id#31, i_class_id#32, i_category_id#33]
-Input [6]: [ws_item_sk#28, ws_sold_date_sk#29, i_item_sk#30, i_brand_id#31, i_class_id#32, i_category_id#33]
-
-(43) ReusedExchange [Reuses operator id: 140]
-Output [1]: [d_date_sk#34]
-
-(44) BroadcastHashJoin [codegen id : 9]
-Left keys [1]: [ws_sold_date_sk#29]
-Right keys [1]: [d_date_sk#34]
-Join type: Inner
-Join condition: None
-
-(45) Project [codegen id : 9]
-Output [3]: [i_brand_id#31, i_class_id#32, i_category_id#33]
-Input [5]: [ws_sold_date_sk#29, i_brand_id#31, i_class_id#32, i_category_id#33, d_date_sk#34]
-
-(46) BroadcastExchange
-Input [3]: [i_brand_id#31, i_class_id#32, i_category_id#33]
-Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, int, true], 0), isnull(input[0, int, true]), coalesce(input[1, int, true], 0), isnull(input[1, int, true]), coalesce(input[2, int, true], 0), isnull(input[2, int, true])),false), [plan_id=5]
-
-(47) BroadcastHashJoin [codegen id : 10]
-Left keys [6]: [coalesce(brand_id#25, 0), isnull(brand_id#25), coalesce(class_id#26, 0), isnull(class_id#26), coalesce(category_id#27, 0), isnull(category_id#27)]
-Right keys [6]: [coalesce(i_brand_id#31, 0), isnull(i_brand_id#31), coalesce(i_class_id#32, 0), isnull(i_class_id#32), coalesce(i_category_id#33, 0), isnull(i_category_id#33)]
-Join type: LeftSemi
-Join condition: None
-
-(48) BroadcastExchange
-Input [3]: [brand_id#25, class_id#26, category_id#27]
-Arguments: HashedRelationBroadcastMode(List(input[0, int, true], input[1, int, true], input[2, int, true]),false), [plan_id=6]
-
-(49) BroadcastHashJoin [codegen id : 11]
-Left keys [3]: [i_brand_id#7, i_class_id#8, i_category_id#9]
-Right keys [3]: [brand_id#25, class_id#26, category_id#27]
-Join type: Inner
-Join condition: None
-
-(50) Project [codegen id : 11]
-Output [1]: [i_item_sk#6 AS ss_item_sk#35]
-Input [7]: [i_item_sk#6, i_brand_id#7, i_class_id#8, i_category_id#9, brand_id#25, class_id#26, category_id#27]
-
-(51) BroadcastExchange
-Input [1]: [ss_item_sk#35]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=7]
-
-(52) BroadcastHashJoin [codegen id : 25]
-Left keys [1]: [ss_item_sk#1]
-Right keys [1]: [ss_item_sk#35]
-Join type: LeftSemi
-Join condition: None
-
-(53) CometNativeScan parquet spark_catalog.default.item
-Output [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(54) CometFilter
-Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39]
-Condition : isnotnull(i_item_sk#36)
-
-(55) CometColumnarToRow [codegen id : 23]
-Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39]
-
-(56) ReusedExchange [Reuses operator id: 51]
-Output [1]: [ss_item_sk#35]
-
-(57) BroadcastHashJoin [codegen id : 23]
-Left keys [1]: [i_item_sk#36]
-Right keys [1]: [ss_item_sk#35]
-Join type: LeftSemi
-Join condition: None
-
-(58) BroadcastExchange
-Input [4]: [i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [plan_id=8]
-
-(59) BroadcastHashJoin [codegen id : 25]
-Left keys [1]: [ss_item_sk#1]
-Right keys [1]: [i_item_sk#36]
-Join type: Inner
-Join condition: None
-
-(60) Project [codegen id : 25]
-Output [6]: [ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4, i_brand_id#37, i_class_id#38, i_category_id#39]
-Input [8]: [ss_item_sk#1, ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4, i_item_sk#36, i_brand_id#37, i_class_id#38, i_category_id#39]
-
-(61) ReusedExchange [Reuses operator id: 135]
-Output [1]: [d_date_sk#40]
-
-(62) BroadcastHashJoin [codegen id : 25]
-Left keys [1]: [ss_sold_date_sk#4]
-Right keys [1]: [d_date_sk#40]
-Join type: Inner
-Join condition: None
-
-(63) Project [codegen id : 25]
-Output [5]: [ss_quantity#2, ss_list_price#3, i_brand_id#37, i_class_id#38, i_category_id#39]
-Input [7]: [ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4, i_brand_id#37, i_class_id#38, i_category_id#39, d_date_sk#40]
-
-(64) HashAggregate [codegen id : 25]
-Input [5]: [ss_quantity#2, ss_list_price#3, i_brand_id#37, i_class_id#38, i_category_id#39]
-Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39]
-Functions [2]: [partial_sum((cast(ss_quantity#2 as decimal(10,0)) * ss_list_price#3)), partial_count(1)]
-Aggregate Attributes [3]: [sum#41, isEmpty#42, count#43]
-Results [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#44, isEmpty#45, count#46]
-
-(65) CometColumnarExchange
-Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#44, isEmpty#45, count#46]
-Arguments: hashpartitioning(i_brand_id#37, i_class_id#38, i_category_id#39, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=9]
-
-(66) CometColumnarToRow [codegen id : 26]
-Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#44, isEmpty#45, count#46]
-
-(67) HashAggregate [codegen id : 26]
-Input [6]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum#44, isEmpty#45, count#46]
-Keys [3]: [i_brand_id#37, i_class_id#38, i_category_id#39]
-Functions [2]: [sum((cast(ss_quantity#2 as decimal(10,0)) * ss_list_price#3)), count(1)]
-Aggregate Attributes [2]: [sum((cast(ss_quantity#2 as decimal(10,0)) * ss_list_price#3))#47, count(1)#48]
-Results [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sum((cast(ss_quantity#2 as decimal(10,0)) * ss_list_price#3))#47 AS sales#49, count(1)#48 AS number_sales#50]
-
-(68) Filter [codegen id : 26]
-Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sales#49, number_sales#50]
-Condition : (isnotnull(sales#49) AND (cast(sales#49 as decimal(32,6)) > cast(Subquery scalar-subquery#51, [id=#52] as decimal(32,6))))
-
-(69) Project [codegen id : 26]
-Output [6]: [sales#49, number_sales#50, store AS channel#53, i_brand_id#37 AS i_brand_id#54, i_class_id#38 AS i_class_id#55, i_category_id#39 AS i_category_id#56]
-Input [5]: [i_brand_id#37, i_class_id#38, i_category_id#39, sales#49, number_sales#50]
-
-(70) Scan parquet spark_catalog.default.catalog_sales
-Output [4]: [cs_item_sk#57, cs_quantity#58, cs_list_price#59, cs_sold_date_sk#60]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#60), dynamicpruningexpression(cs_sold_date_sk#60 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(cs_item_sk)]
-ReadSchema: struct<cs_item_sk:int,cs_quantity:int,cs_list_price:decimal(7,2)>
-
-(71) ColumnarToRow [codegen id : 51]
-Input [4]: [cs_item_sk#57, cs_quantity#58, cs_list_price#59, cs_sold_date_sk#60]
-
-(72) Filter [codegen id : 51]
-Input [4]: [cs_item_sk#57, cs_quantity#58, cs_list_price#59, cs_sold_date_sk#60]
-Condition : isnotnull(cs_item_sk#57)
-
-(73) ReusedExchange [Reuses operator id: 51]
-Output [1]: [ss_item_sk#61]
-
-(74) BroadcastHashJoin [codegen id : 51]
-Left keys [1]: [cs_item_sk#57]
-Right keys [1]: [ss_item_sk#61]
-Join type: LeftSemi
-Join condition: None
-
-(75) ReusedExchange [Reuses operator id: 58]
-Output [4]: [i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65]
-
-(76) BroadcastHashJoin [codegen id : 51]
-Left keys [1]: [cs_item_sk#57]
-Right keys [1]: [i_item_sk#62]
-Join type: Inner
-Join condition: None
-
-(77) Project [codegen id : 51]
-Output [6]: [cs_quantity#58, cs_list_price#59, cs_sold_date_sk#60, i_brand_id#63, i_class_id#64, i_category_id#65]
-Input [8]: [cs_item_sk#57, cs_quantity#58, cs_list_price#59, cs_sold_date_sk#60, i_item_sk#62, i_brand_id#63, i_class_id#64, i_category_id#65]
-
-(78) ReusedExchange [Reuses operator id: 135]
-Output [1]: [d_date_sk#66]
-
-(79) BroadcastHashJoin [codegen id : 51]
-Left keys [1]: [cs_sold_date_sk#60]
-Right keys [1]: [d_date_sk#66]
-Join type: Inner
-Join condition: None
-
-(80) Project [codegen id : 51]
-Output [5]: [cs_quantity#58, cs_list_price#59, i_brand_id#63, i_class_id#64, i_category_id#65]
-Input [7]: [cs_quantity#58, cs_list_price#59, cs_sold_date_sk#60, i_brand_id#63, i_class_id#64, i_category_id#65, d_date_sk#66]
-
-(81) HashAggregate [codegen id : 51]
-Input [5]: [cs_quantity#58, cs_list_price#59, i_brand_id#63, i_class_id#64, i_category_id#65]
-Keys [3]: [i_brand_id#63, i_class_id#64, i_category_id#65]
-Functions [2]: [partial_sum((cast(cs_quantity#58 as decimal(10,0)) * cs_list_price#59)), partial_count(1)]
-Aggregate Attributes [3]: [sum#67, isEmpty#68, count#69]
-Results [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#70, isEmpty#71, count#72]
-
-(82) CometColumnarExchange
-Input [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#70, isEmpty#71, count#72]
-Arguments: hashpartitioning(i_brand_id#63, i_class_id#64, i_category_id#65, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=10]
-
-(83) CometColumnarToRow [codegen id : 52]
-Input [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#70, isEmpty#71, count#72]
-
-(84) HashAggregate [codegen id : 52]
-Input [6]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum#70, isEmpty#71, count#72]
-Keys [3]: [i_brand_id#63, i_class_id#64, i_category_id#65]
-Functions [2]: [sum((cast(cs_quantity#58 as decimal(10,0)) * cs_list_price#59)), count(1)]
-Aggregate Attributes [2]: [sum((cast(cs_quantity#58 as decimal(10,0)) * cs_list_price#59))#73, count(1)#74]
-Results [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sum((cast(cs_quantity#58 as decimal(10,0)) * cs_list_price#59))#73 AS sales#75, count(1)#74 AS number_sales#76]
-
-(85) Filter [codegen id : 52]
-Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sales#75, number_sales#76]
-Condition : (isnotnull(sales#75) AND (cast(sales#75 as decimal(32,6)) > cast(ReusedSubquery Subquery scalar-subquery#51, [id=#52] as decimal(32,6))))
-
-(86) Project [codegen id : 52]
-Output [6]: [sales#75, number_sales#76, catalog AS channel#77, i_brand_id#63, i_class_id#64, i_category_id#65]
-Input [5]: [i_brand_id#63, i_class_id#64, i_category_id#65, sales#75, number_sales#76]
-
-(87) Scan parquet spark_catalog.default.web_sales
-Output [4]: [ws_item_sk#78, ws_quantity#79, ws_list_price#80, ws_sold_date_sk#81]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#81), dynamicpruningexpression(ws_sold_date_sk#81 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(ws_item_sk)]
-ReadSchema: struct<ws_item_sk:int,ws_quantity:int,ws_list_price:decimal(7,2)>
-
-(88) ColumnarToRow [codegen id : 77]
-Input [4]: [ws_item_sk#78, ws_quantity#79, ws_list_price#80, ws_sold_date_sk#81]
-
-(89) Filter [codegen id : 77]
-Input [4]: [ws_item_sk#78, ws_quantity#79, ws_list_price#80, ws_sold_date_sk#81]
-Condition : isnotnull(ws_item_sk#78)
-
-(90) ReusedExchange [Reuses operator id: 51]
-Output [1]: [ss_item_sk#82]
-
-(91) BroadcastHashJoin [codegen id : 77]
-Left keys [1]: [ws_item_sk#78]
-Right keys [1]: [ss_item_sk#82]
-Join type: LeftSemi
-Join condition: None
-
-(92) ReusedExchange [Reuses operator id: 58]
-Output [4]: [i_item_sk#83, i_brand_id#84, i_class_id#85, i_category_id#86]
-
-(93) BroadcastHashJoin [codegen id : 77]
-Left keys [1]: [ws_item_sk#78]
-Right keys [1]: [i_item_sk#83]
-Join type: Inner
-Join condition: None
-
-(94) Project [codegen id : 77]
-Output [6]: [ws_quantity#79, ws_list_price#80, ws_sold_date_sk#81, i_brand_id#84, i_class_id#85, i_category_id#86]
-Input [8]: [ws_item_sk#78, ws_quantity#79, ws_list_price#80, ws_sold_date_sk#81, i_item_sk#83, i_brand_id#84, i_class_id#85, i_category_id#86]
-
-(95) ReusedExchange [Reuses operator id: 135]
-Output [1]: [d_date_sk#87]
-
-(96) BroadcastHashJoin [codegen id : 77]
-Left keys [1]: [ws_sold_date_sk#81]
-Right keys [1]: [d_date_sk#87]
-Join type: Inner
-Join condition: None
-
-(97) Project [codegen id : 77]
-Output [5]: [ws_quantity#79, ws_list_price#80, i_brand_id#84, i_class_id#85, i_category_id#86]
-Input [7]: [ws_quantity#79, ws_list_price#80, ws_sold_date_sk#81, i_brand_id#84, i_class_id#85, i_category_id#86, d_date_sk#87]
-
-(98) HashAggregate [codegen id : 77]
-Input [5]: [ws_quantity#79, ws_list_price#80, i_brand_id#84, i_class_id#85, i_category_id#86]
-Keys [3]: [i_brand_id#84, i_class_id#85, i_category_id#86]
-Functions [2]: [partial_sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80)), partial_count(1)]
-Aggregate Attributes [3]: [sum#88, isEmpty#89, count#90]
-Results [6]: [i_brand_id#84, i_class_id#85, i_category_id#86, sum#91, isEmpty#92, count#93]
-
-(99) CometColumnarExchange
-Input [6]: [i_brand_id#84, i_class_id#85, i_category_id#86, sum#91, isEmpty#92, count#93]
-Arguments: hashpartitioning(i_brand_id#84, i_class_id#85, i_category_id#86, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=11]
-
-(100) CometColumnarToRow [codegen id : 78]
-Input [6]: [i_brand_id#84, i_class_id#85, i_category_id#86, sum#91, isEmpty#92, count#93]
-
-(101) HashAggregate [codegen id : 78]
-Input [6]: [i_brand_id#84, i_class_id#85, i_category_id#86, sum#91, isEmpty#92, count#93]
-Keys [3]: [i_brand_id#84, i_class_id#85, i_category_id#86]
-Functions [2]: [sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80)), count(1)]
-Aggregate Attributes [2]: [sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#94, count(1)#95]
-Results [5]: [i_brand_id#84, i_class_id#85, i_category_id#86, sum((cast(ws_quantity#79 as decimal(10,0)) * ws_list_price#80))#94 AS sales#96, count(1)#95 AS number_sales#97]
-
-(102) Filter [codegen id : 78]
-Input [5]: [i_brand_id#84, i_class_id#85, i_category_id#86, sales#96, number_sales#97]
-Condition : (isnotnull(sales#96) AND (cast(sales#96 as decimal(32,6)) > cast(ReusedSubquery Subquery scalar-subquery#51, [id=#52] as decimal(32,6))))
-
-(103) Project [codegen id : 78]
-Output [6]: [sales#96, number_sales#97, web AS channel#98, i_brand_id#84, i_class_id#85, i_category_id#86]
-Input [5]: [i_brand_id#84, i_class_id#85, i_category_id#86, sales#96, number_sales#97]
-
-(104) Union
-
-(105) Expand [codegen id : 79]
-Input [6]: [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56]
-Arguments: [[sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, i_category_id#56, 0], [sales#49, number_sales#50, channel#53, i_brand_id#54, i_class_id#55, null, 1], [sales#49, number_sales#50, channel#53, i_brand_id#54, null, null, 3], [sales#49, number_sales#50, channel#53, null, null, null, 7], [sales#49, number_sales#50, null, null, null, null, 15]], [sales#49, number_sales#50, channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103]
-
-(106) HashAggregate [codegen id : 79]
-Input [7]: [sales#49, number_sales#50, channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103]
-Keys [5]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103]
-Functions [2]: [partial_sum(sales#49), partial_sum(number_sales#50)]
-Aggregate Attributes [3]: [sum#104, isEmpty#105, sum#106]
-Results [8]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103, sum#107, isEmpty#108, sum#109]
-
-(107) CometColumnarExchange
-Input [8]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103, sum#107, isEmpty#108, sum#109]
-Arguments: hashpartitioning(channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103, 5), ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=12]
-
-(108) CometColumnarToRow [codegen id : 80]
-Input [8]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103, sum#107, isEmpty#108, sum#109]
-
-(109) HashAggregate [codegen id : 80]
-Input [8]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103, sum#107, isEmpty#108, sum#109]
-Keys [5]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, spark_grouping_id#103]
-Functions [2]: [sum(sales#49), sum(number_sales#50)]
-Aggregate Attributes [2]: [sum(sales#49)#110, sum(number_sales#50)#111]
-Results [6]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, sum(sales#49)#110 AS sum(sales)#112, sum(number_sales#50)#111 AS sum(number_sales)#113]
-
-(110) TakeOrderedAndProject
-Input [6]: [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, sum(sales)#112, sum(number_sales)#113]
-Arguments: 100, [channel#99 ASC NULLS FIRST, i_brand_id#100 ASC NULLS FIRST, i_class_id#101 ASC NULLS FIRST, i_category_id#102 ASC NULLS FIRST], [channel#99, i_brand_id#100, i_class_id#101, i_category_id#102, sum(sales)#112, sum(number_sales)#113]
-
-===== Subqueries =====
-
-Subquery:1 Hosting operator id = 68 Hosting Expression = Subquery scalar-subquery#51, [id=#52]
-* HashAggregate (130)
-+- * CometColumnarToRow (129)
- +- CometColumnarExchange (128)
- +- * HashAggregate (127)
- +- Union (126)
- :- * Project (115)
- : +- * BroadcastHashJoin Inner BuildRight (114)
- : :- * ColumnarToRow (112)
- : : +- Scan parquet spark_catalog.default.store_sales (111)
- : +- ReusedExchange (113)
- :- * Project (120)
- : +- * BroadcastHashJoin Inner BuildRight (119)
- : :- * ColumnarToRow (117)
- : : +- Scan parquet spark_catalog.default.catalog_sales (116)
- : +- ReusedExchange (118)
- +- * Project (125)
- +- * BroadcastHashJoin Inner BuildRight (124)
- :- * ColumnarToRow (122)
- : +- Scan parquet spark_catalog.default.web_sales (121)
- +- ReusedExchange (123)
-
-
-(111) Scan parquet spark_catalog.default.store_sales
-Output [3]: [ss_quantity#114, ss_list_price#115, ss_sold_date_sk#116]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#116), dynamicpruningexpression(ss_sold_date_sk#116 IN dynamicpruning#12)]
-ReadSchema: struct<ss_quantity:int,ss_list_price:decimal(7,2)>
-
-(112) ColumnarToRow [codegen id : 2]
-Input [3]: [ss_quantity#114, ss_list_price#115, ss_sold_date_sk#116]
-
-(113) ReusedExchange [Reuses operator id: 140]
-Output [1]: [d_date_sk#117]
-
-(114) BroadcastHashJoin [codegen id : 2]
-Left keys [1]: [ss_sold_date_sk#116]
-Right keys [1]: [d_date_sk#117]
-Join type: Inner
-Join condition: None
-
-(115) Project [codegen id : 2]
-Output [2]: [ss_quantity#114 AS quantity#118, ss_list_price#115 AS list_price#119]
-Input [4]: [ss_quantity#114, ss_list_price#115, ss_sold_date_sk#116, d_date_sk#117]
-
-(116) Scan parquet spark_catalog.default.catalog_sales
-Output [3]: [cs_quantity#120, cs_list_price#121, cs_sold_date_sk#122]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#122), dynamicpruningexpression(cs_sold_date_sk#122 IN dynamicpruning#12)]
-ReadSchema: struct<cs_quantity:int,cs_list_price:decimal(7,2)>
-
-(117) ColumnarToRow [codegen id : 4]
-Input [3]: [cs_quantity#120, cs_list_price#121, cs_sold_date_sk#122]
-
-(118) ReusedExchange [Reuses operator id: 140]
-Output [1]: [d_date_sk#123]
-
-(119) BroadcastHashJoin [codegen id : 4]
-Left keys [1]: [cs_sold_date_sk#122]
-Right keys [1]: [d_date_sk#123]
-Join type: Inner
-Join condition: None
-
-(120) Project [codegen id : 4]
-Output [2]: [cs_quantity#120 AS quantity#124, cs_list_price#121 AS list_price#125]
-Input [4]: [cs_quantity#120, cs_list_price#121, cs_sold_date_sk#122, d_date_sk#123]
-
-(121) Scan parquet spark_catalog.default.web_sales
-Output [3]: [ws_quantity#126, ws_list_price#127, ws_sold_date_sk#128]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ws_sold_date_sk#128), dynamicpruningexpression(ws_sold_date_sk#128 IN dynamicpruning#12)]
-ReadSchema: struct<ws_quantity:int,ws_list_price:decimal(7,2)>
-
-(122) ColumnarToRow [codegen id : 6]
-Input [3]: [ws_quantity#126, ws_list_price#127, ws_sold_date_sk#128]
-
-(123) ReusedExchange [Reuses operator id: 140]
-Output [1]: [d_date_sk#129]
-
-(124) BroadcastHashJoin [codegen id : 6]
-Left keys [1]: [ws_sold_date_sk#128]
-Right keys [1]: [d_date_sk#129]
-Join type: Inner
-Join condition: None
-
-(125) Project [codegen id : 6]
-Output [2]: [ws_quantity#126 AS quantity#130, ws_list_price#127 AS list_price#131]
-Input [4]: [ws_quantity#126, ws_list_price#127, ws_sold_date_sk#128, d_date_sk#129]
-
-(126) Union
-
-(127) HashAggregate [codegen id : 7]
-Input [2]: [quantity#118, list_price#119]
-Keys: []
-Functions [1]: [partial_avg((cast(quantity#118 as decimal(10,0)) * list_price#119))]
-Aggregate Attributes [2]: [sum#132, count#133]
-Results [2]: [sum#134, count#135]
-
-(128) CometColumnarExchange
-Input [2]: [sum#134, count#135]
-Arguments: SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=13]
-
-(129) CometColumnarToRow [codegen id : 8]
-Input [2]: [sum#134, count#135]
-
-(130) HashAggregate [codegen id : 8]
-Input [2]: [sum#134, count#135]
-Keys: []
-Functions [1]: [avg((cast(quantity#118 as decimal(10,0)) * list_price#119))]
-Aggregate Attributes [1]: [avg((cast(quantity#118 as decimal(10,0)) * list_price#119))#136]
-Results [1]: [avg((cast(quantity#118 as decimal(10,0)) * list_price#119))#136 AS average_sales#137]
-
-Subquery:2 Hosting operator id = 111 Hosting Expression = ss_sold_date_sk#116 IN dynamicpruning#12
-
-Subquery:3 Hosting operator id = 116 Hosting Expression = cs_sold_date_sk#122 IN dynamicpruning#12
-
-Subquery:4 Hosting operator id = 121 Hosting Expression = ws_sold_date_sk#128 IN dynamicpruning#12
-
-Subquery:5 Hosting operator id = 1 Hosting Expression = ss_sold_date_sk#4 IN dynamicpruning#5
-BroadcastExchange (135)
-+- * CometColumnarToRow (134)
- +- CometProject (133)
- +- CometFilter (132)
- +- CometNativeScan parquet spark_catalog.default.date_dim (131)
-
-
-(131) CometNativeScan parquet spark_catalog.default.date_dim
-Output [3]: [d_date_sk#40, d_year#138, d_moy#139]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), EqualTo(d_year,2001), EqualTo(d_moy,11), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int,d_moy:int>
-
-(132) CometFilter
-Input [3]: [d_date_sk#40, d_year#138, d_moy#139]
-Condition : ((((isnotnull(d_year#138) AND isnotnull(d_moy#139)) AND (d_year#138 = 2001)) AND (d_moy#139 = 11)) AND isnotnull(d_date_sk#40))
-
-(133) CometProject
-Input [3]: [d_date_sk#40, d_year#138, d_moy#139]
-Arguments: [d_date_sk#40], [d_date_sk#40]
-
-(134) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#40]
-
-(135) BroadcastExchange
-Input [1]: [d_date_sk#40]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=14]
-
-Subquery:6 Hosting operator id = 7 Hosting Expression = ss_sold_date_sk#11 IN dynamicpruning#12
-BroadcastExchange (140)
-+- * CometColumnarToRow (139)
- +- CometProject (138)
- +- CometFilter (137)
- +- CometNativeScan parquet spark_catalog.default.date_dim (136)
-
-
-(136) CometNativeScan parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#24, d_year#140]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(137) CometFilter
-Input [2]: [d_date_sk#24, d_year#140]
-Condition : (((isnotnull(d_year#140) AND (d_year#140 >= 1999)) AND (d_year#140 <= 2001)) AND isnotnull(d_date_sk#24))
-
-(138) CometProject
-Input [2]: [d_date_sk#24, d_year#140]
-Arguments: [d_date_sk#24], [d_date_sk#24]
-
-(139) CometColumnarToRow [codegen id : 1]
-Input [1]: [d_date_sk#24]
-
-(140) BroadcastExchange
-Input [1]: [d_date_sk#24]
-Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [plan_id=15]
-
-Subquery:7 Hosting operator id = 13 Hosting Expression = cs_sold_date_sk#18 IN dynamicpruning#12
-
-Subquery:8 Hosting operator id = 37 Hosting Expression = ws_sold_date_sk#29 IN dynamicpruning#12
-
-Subquery:9 Hosting operator id = 85 Hosting Expression = ReusedSubquery Subquery scalar-subquery#51, [id=#52]
-
-Subquery:10 Hosting operator id = 70 Hosting Expression = cs_sold_date_sk#60 IN dynamicpruning#5
-
-Subquery:11 Hosting operator id = 102 Hosting Expression = ReusedSubquery Subquery scalar-subquery#51, [id=#52]
-
-Subquery:12 Hosting operator id = 87 Hosting Expression = ws_sold_date_sk#81 IN dynamicpruning#5
-
-
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_datafusion/simplified.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_datafusion/simplified.txt
deleted file mode 100644
index c989fe9a8..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_datafusion/simplified.txt
+++ /dev/null
@@ -1,220 +0,0 @@
-TakeOrderedAndProject [channel,i_brand_id,i_class_id,i_category_id,sum(sales),sum(number_sales)]
- WholeStageCodegen (80)
- HashAggregate [channel,i_brand_id,i_class_id,i_category_id,spark_grouping_id,sum,isEmpty,sum] [sum(sales),sum(number_salesL),sum(sales),sum(number_sales),sum,isEmpty,sum]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [channel,i_brand_id,i_class_id,i_category_id,spark_grouping_id] #1
- WholeStageCodegen (79)
- HashAggregate [channel,i_brand_id,i_class_id,i_category_id,spark_grouping_id,sales,number_sales] [sum,isEmpty,sum,sum,isEmpty,sum]
- Expand [sales,number_sales,channel,i_brand_id,i_class_id,i_category_id]
- InputAdapter
- Union
- WholeStageCodegen (26)
- Project [sales,number_sales,i_brand_id,i_class_id,i_category_id]
- Filter [sales]
- Subquery #3
- WholeStageCodegen (8)
- HashAggregate [sum,count] [avg((cast(quantity as decimal(10,0)) * list_price)),average_sales,sum,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange #13
- WholeStageCodegen (7)
- HashAggregate [quantity,list_price] [sum,count,sum,count]
- InputAdapter
- Union
- WholeStageCodegen (2)
- Project [ss_quantity,ss_list_price]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_quantity,ss_list_price,ss_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- InputAdapter
- ReusedExchange [d_date_sk] #7
- WholeStageCodegen (4)
- Project [cs_quantity,cs_list_price]
- BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.catalog_sales [cs_quantity,cs_list_price,cs_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- InputAdapter
- ReusedExchange [d_date_sk] #7
- WholeStageCodegen (6)
- Project [ws_quantity,ws_list_price]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_quantity,ws_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- InputAdapter
- ReusedExchange [d_date_sk] #7
- HashAggregate [i_brand_id,i_class_id,i_category_id,sum,isEmpty,count] [sum((cast(ss_quantity as decimal(10,0)) * ss_list_price)),count(1),sales,number_sales,sum,isEmpty,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [i_brand_id,i_class_id,i_category_id] #2
- WholeStageCodegen (25)
- HashAggregate [i_brand_id,i_class_id,i_category_id,ss_quantity,ss_list_price] [sum,isEmpty,count,sum,isEmpty,count]
- Project [ss_quantity,ss_list_price,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- Project [ss_quantity,ss_list_price,ss_sold_date_sk,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ss_item_sk,i_item_sk]
- BroadcastHashJoin [ss_item_sk,ss_item_sk]
- Filter [ss_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_item_sk,ss_quantity,ss_list_price,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #1
- BroadcastExchange #3
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year,d_moy]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year,d_moy]
- InputAdapter
- BroadcastExchange #4
- WholeStageCodegen (11)
- Project [i_item_sk]
- BroadcastHashJoin [i_brand_id,i_class_id,i_category_id,brand_id,class_id,category_id]
- CometColumnarToRow
- InputAdapter
- CometFilter [i_item_sk,i_brand_id,i_class_id,i_category_id]
- CometNativeScan parquet spark_catalog.default.item [i_item_sk,i_brand_id,i_class_id,i_category_id]
- InputAdapter
- BroadcastExchange #5
- WholeStageCodegen (10)
- BroadcastHashJoin [brand_id,class_id,category_id,i_brand_id,i_class_id,i_category_id]
- CometColumnarToRow
- InputAdapter
- CometHashAggregate [brand_id,class_id,category_id]
- CometColumnarExchange [brand_id,class_id,category_id] #6
- WholeStageCodegen (6)
- HashAggregate [brand_id,class_id,category_id]
- Project [i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ss_sold_date_sk,d_date_sk]
- Project [ss_sold_date_sk,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ss_item_sk,i_item_sk]
- Filter [ss_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.store_sales [ss_item_sk,ss_sold_date_sk]
- SubqueryBroadcast [d_date_sk] #2
- BroadcastExchange #7
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometProject [d_date_sk]
- CometFilter [d_date_sk,d_year]
- CometNativeScan parquet spark_catalog.default.date_dim [d_date_sk,d_year]
- InputAdapter
- BroadcastExchange #8
- WholeStageCodegen (4)
- BroadcastHashJoin [i_brand_id,i_class_id,i_category_id,i_brand_id,i_class_id,i_category_id]
- CometColumnarToRow
- InputAdapter
- CometFilter [i_item_sk,i_brand_id,i_class_id,i_category_id]
- CometNativeScan parquet spark_catalog.default.item [i_item_sk,i_brand_id,i_class_id,i_category_id]
- InputAdapter
- BroadcastExchange #9
- WholeStageCodegen (3)
- Project [i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
- Project [cs_sold_date_sk,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [cs_item_sk,i_item_sk]
- Filter [cs_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.catalog_sales [cs_item_sk,cs_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- InputAdapter
- BroadcastExchange #10
- WholeStageCodegen (1)
- CometColumnarToRow
- InputAdapter
- CometFilter [i_item_sk,i_brand_id,i_class_id,i_category_id]
- CometNativeScan parquet spark_catalog.default.item [i_item_sk,i_brand_id,i_class_id,i_category_id]
- InputAdapter
- ReusedExchange [d_date_sk] #7
- InputAdapter
- ReusedExchange [d_date_sk] #7
- InputAdapter
- BroadcastExchange #11
- WholeStageCodegen (9)
- Project [i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- Project [ws_sold_date_sk,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ws_item_sk,i_item_sk]
- Filter [ws_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_item_sk,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #2
- InputAdapter
- ReusedExchange [i_item_sk,i_brand_id,i_class_id,i_category_id] #10
- InputAdapter
- ReusedExchange [d_date_sk] #7
- InputAdapter
- BroadcastExchange #12
- WholeStageCodegen (23)
- BroadcastHashJoin [i_item_sk,ss_item_sk]
- CometColumnarToRow
- InputAdapter
- CometFilter [i_item_sk,i_brand_id,i_class_id,i_category_id]
- CometNativeScan parquet spark_catalog.default.item [i_item_sk,i_brand_id,i_class_id,i_category_id]
- InputAdapter
- ReusedExchange [ss_item_sk] #4
- InputAdapter
- ReusedExchange [d_date_sk] #3
- WholeStageCodegen (52)
- Project [sales,number_sales,i_brand_id,i_class_id,i_category_id]
- Filter [sales]
- ReusedSubquery [average_sales] #3
- HashAggregate [i_brand_id,i_class_id,i_category_id,sum,isEmpty,count] [sum((cast(cs_quantity as decimal(10,0)) * cs_list_price)),count(1),sales,number_sales,sum,isEmpty,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [i_brand_id,i_class_id,i_category_id] #14
- WholeStageCodegen (51)
- HashAggregate [i_brand_id,i_class_id,i_category_id,cs_quantity,cs_list_price] [sum,isEmpty,count,sum,isEmpty,count]
- Project [cs_quantity,cs_list_price,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [cs_sold_date_sk,d_date_sk]
- Project [cs_quantity,cs_list_price,cs_sold_date_sk,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [cs_item_sk,i_item_sk]
- BroadcastHashJoin [cs_item_sk,ss_item_sk]
- Filter [cs_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.catalog_sales [cs_item_sk,cs_quantity,cs_list_price,cs_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- InputAdapter
- ReusedExchange [ss_item_sk] #4
- InputAdapter
- ReusedExchange [i_item_sk,i_brand_id,i_class_id,i_category_id] #12
- InputAdapter
- ReusedExchange [d_date_sk] #3
- WholeStageCodegen (78)
- Project [sales,number_sales,i_brand_id,i_class_id,i_category_id]
- Filter [sales]
- ReusedSubquery [average_sales] #3
- HashAggregate [i_brand_id,i_class_id,i_category_id,sum,isEmpty,count] [sum((cast(ws_quantity as decimal(10,0)) * ws_list_price)),count(1),sales,number_sales,sum,isEmpty,count]
- CometColumnarToRow
- InputAdapter
- CometColumnarExchange [i_brand_id,i_class_id,i_category_id] #15
- WholeStageCodegen (77)
- HashAggregate [i_brand_id,i_class_id,i_category_id,ws_quantity,ws_list_price] [sum,isEmpty,count,sum,isEmpty,count]
- Project [ws_quantity,ws_list_price,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ws_sold_date_sk,d_date_sk]
- Project [ws_quantity,ws_list_price,ws_sold_date_sk,i_brand_id,i_class_id,i_category_id]
- BroadcastHashJoin [ws_item_sk,i_item_sk]
- BroadcastHashJoin [ws_item_sk,ss_item_sk]
- Filter [ws_item_sk]
- ColumnarToRow
- InputAdapter
- Scan parquet spark_catalog.default.web_sales [ws_item_sk,ws_quantity,ws_list_price,ws_sold_date_sk]
- ReusedSubquery [d_date_sk] #1
- InputAdapter
- ReusedExchange [ss_item_sk] #4
- InputAdapter
- ReusedExchange [i_item_sk,i_brand_id,i_class_id,i_category_id] #12
- InputAdapter
- ReusedExchange [d_date_sk] #3
diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_iceberg_compat/explain.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_iceberg_compat/explain.txt
deleted file mode 100644
index 22f1896b6..000000000
--- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q14a.native_iceberg_compat/explain.txt
+++ /dev/null
@@ -1,754 +0,0 @@
-== Physical Plan ==
-* CometColumnarToRow (102)
-+- CometTakeOrderedAndProject (101)
- +- CometHashAggregate (100)
- +- CometExchange (99)
- +- CometHashAggregate (98)
- +- CometExpand (97)
- +- CometUnion (96)
- :- CometProject (65)
- : +- CometFilter (64)
- : +- CometHashAggregate (63)
- : +- CometExchange (62)
- : +- CometHashAggregate (61)
- : +- CometProject (60)
- : +- CometBroadcastHashJoin (59)
- : :- CometProject (54)
- : : +- CometBroadcastHashJoin (53)
- : : :- CometBroadcastHashJoin (47)
- : : : :- CometFilter (2)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (1)
- : : : +- CometBroadcastExchange (46)
- : : : +- CometProject (45)
- : : : +- CometBroadcastHashJoin (44)
- : : : :- CometFilter (4)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item (3)
- : : : +- CometBroadcastExchange (43)
- : : : +- CometBroadcastHashJoin (42)
- : : : :- CometHashAggregate (32)
- : : : : +- CometExchange (31)
- : : : : +- CometHashAggregate (30)
- : : : : +- CometProject (29)
- : : : : +- CometBroadcastHashJoin (28)
- : : : : :- CometProject (26)
- : : : : : +- CometBroadcastHashJoin (25)
- : : : : : :- CometFilter (6)
- : : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales (5)
- : : : : : +- CometBroadcastExchange (24)
- : : : : : +- CometBroadcastHashJoin (23)
- : : : : : :- CometFilter (8)
- : : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item (7)
- : : : : : +- CometBroadcastExchange (22)
- : : : : : +- CometProject (21)
- : : : : : +- CometBroadcastHashJoin (20)
- : : : : : :- CometProject (15)
- : : : : : : +- CometBroadcastHashJoin (14)
- : : : : : : :- CometFilter (10)
- : : : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales (9)
- : : : : : : +- CometBroadcastExchange (13)
- : : : : : : +- CometFilter (12)
- : : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item (11)
- : : : : : +- CometBroadcastExchange (19)
- : : : : : +- CometProject (18)
- : : : : : +- CometFilter (17)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (16)
- : : : : +- ReusedExchange (27)
- : : : +- CometBroadcastExchange (41)
- : : : +- CometProject (40)
- : : : +- CometBroadcastHashJoin (39)
- : : : :- CometProject (37)
- : : : : +- CometBroadcastHashJoin (36)
- : : : : :- CometFilter (34)
- : : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (33)
- : : : : +- ReusedExchange (35)
- : : : +- ReusedExchange (38)
- : : +- CometBroadcastExchange (52)
- : : +- CometBroadcastHashJoin (51)
- : : :- CometFilter (49)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.item (48)
- : : +- ReusedExchange (50)
- : +- CometBroadcastExchange (58)
- : +- CometProject (57)
- : +- CometFilter (56)
- : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim (55)
- :- CometProject (80)
- : +- CometFilter (79)
- : +- CometHashAggregate (78)
- : +- CometExchange (77)
- : +- CometHashAggregate (76)
- : +- CometProject (75)
- : +- CometBroadcastHashJoin (74)
- : :- CometProject (72)
- : : +- CometBroadcastHashJoin (71)
- : : :- CometBroadcastHashJoin (69)
- : : : :- CometFilter (67)
- : : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales (66)
- : : : +- ReusedExchange (68)
- : : +- ReusedExchange (70)
- : +- ReusedExchange (73)
- +- CometProject (95)
- +- CometFilter (94)
- +- CometHashAggregate (93)
- +- CometExchange (92)
- +- CometHashAggregate (91)
- +- CometProject (90)
- +- CometBroadcastHashJoin (89)
- :- CometProject (87)
- : +- CometBroadcastHashJoin (86)
- : :- CometBroadcastHashJoin (84)
- : : :- CometFilter (82)
- : : : +- CometScan [native_iceberg_compat] parquet spark_catalog.default.web_sales (81)
- : : +- ReusedExchange (83)
- : +- ReusedExchange (85)
- +- ReusedExchange (88)
-
-
-(1) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [4]: [ss_item_sk#1, ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#4), dynamicpruningexpression(ss_sold_date_sk#4 IN dynamicpruning#5)]
-PushedFilters: [IsNotNull(ss_item_sk)]
-ReadSchema: struct<ss_item_sk:int,ss_quantity:int,ss_list_price:decimal(7,2)>
-
-(2) CometFilter
-Input [4]: [ss_item_sk#1, ss_quantity#2, ss_list_price#3, ss_sold_date_sk#4]
-Condition : isnotnull(ss_item_sk#1)
-
-(3) CometScan [native_iceberg_compat] parquet spark_catalog.default.item
-Output [4]: [i_item_sk#6, i_brand_id#7, i_class_id#8, i_category_id#9]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(4) CometFilter
-Input [4]: [i_item_sk#6, i_brand_id#7, i_class_id#8, i_category_id#9]
-Condition : ((isnotnull(i_brand_id#7) AND isnotnull(i_class_id#8)) AND isnotnull(i_category_id#9))
-
-(5) CometScan [native_iceberg_compat] parquet spark_catalog.default.store_sales
-Output [2]: [ss_item_sk#10, ss_sold_date_sk#11]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(ss_sold_date_sk#11), dynamicpruningexpression(ss_sold_date_sk#11 IN dynamicpruning#12)]
-PushedFilters: [IsNotNull(ss_item_sk)]
-ReadSchema: struct<ss_item_sk:int>
-
-(6) CometFilter
-Input [2]: [ss_item_sk#10, ss_sold_date_sk#11]
-Condition : isnotnull(ss_item_sk#10)
-
-(7) CometScan [native_iceberg_compat] parquet spark_catalog.default.item
-Output [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk), IsNotNull(i_brand_id), IsNotNull(i_class_id), IsNotNull(i_category_id)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(8) CometFilter
-Input [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-Condition : (((isnotnull(i_item_sk#13) AND isnotnull(i_brand_id#14)) AND isnotnull(i_class_id#15)) AND isnotnull(i_category_id#16))
-
-(9) CometScan [native_iceberg_compat] parquet spark_catalog.default.catalog_sales
-Output [2]: [cs_item_sk#17, cs_sold_date_sk#18]
-Batched: true
-Location: InMemoryFileIndex []
-PartitionFilters: [isnotnull(cs_sold_date_sk#18), dynamicpruningexpression(cs_sold_date_sk#18 IN dynamicpruning#19)]
-PushedFilters: [IsNotNull(cs_item_sk)]
-ReadSchema: struct<cs_item_sk:int>
-
-(10) CometFilter
-Input [2]: [cs_item_sk#17, cs_sold_date_sk#18]
-Condition : isnotnull(cs_item_sk#17)
-
-(11) CometScan [native_iceberg_compat] parquet spark_catalog.default.item
-Output [4]: [i_item_sk#20, i_brand_id#21, i_class_id#22, i_category_id#23]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/item]
-PushedFilters: [IsNotNull(i_item_sk)]
-ReadSchema: struct<i_item_sk:int,i_brand_id:int,i_class_id:int,i_category_id:int>
-
-(12) CometFilter
-Input [4]: [i_item_sk#20, i_brand_id#21, i_class_id#22, i_category_id#23]
-Condition : isnotnull(i_item_sk#20)
-
-(13) CometBroadcastExchange
-Input [4]: [i_item_sk#20, i_brand_id#21, i_class_id#22, i_category_id#23]
-Arguments: [i_item_sk#20, i_brand_id#21, i_class_id#22, i_category_id#23]
-
-(14) CometBroadcastHashJoin
-Left output [2]: [cs_item_sk#17, cs_sold_date_sk#18]
-Right output [4]: [i_item_sk#20, i_brand_id#21, i_class_id#22, i_category_id#23]
-Arguments: [cs_item_sk#17], [i_item_sk#20], Inner, BuildRight
-
-(15) CometProject
-Input [6]: [cs_item_sk#17, cs_sold_date_sk#18, i_item_sk#20, i_brand_id#21, i_class_id#22, i_category_id#23]
-Arguments: [cs_sold_date_sk#18, i_brand_id#21, i_class_id#22, i_category_id#23], [cs_sold_date_sk#18, i_brand_id#21, i_class_id#22, i_category_id#23]
-
-(16) CometScan [native_iceberg_compat] parquet spark_catalog.default.date_dim
-Output [2]: [d_date_sk#24, d_year#25]
-Batched: true
-Location [not included in comparison]/{warehouse_dir}/date_dim]
-PushedFilters: [IsNotNull(d_year), GreaterThanOrEqual(d_year,1999), LessThanOrEqual(d_year,2001), IsNotNull(d_date_sk)]
-ReadSchema: struct<d_date_sk:int,d_year:int>
-
-(17) CometFilter
-Input [2]: [d_date_sk#24, d_year#25]
-Condition : (((isnotnull(d_year#25) AND (d_year#25 >= 1999)) AND (d_year#25 <= 2001)) AND isnotnull(d_date_sk#24))
-
-(18) CometProject
-Input [2]: [d_date_sk#24, d_year#25]
-Arguments: [d_date_sk#24], [d_date_sk#24]
-
-(19) CometBroadcastExchange
-Input [1]: [d_date_sk#24]
-Arguments: [d_date_sk#24]
-
-(20) CometBroadcastHashJoin
-Left output [4]: [cs_sold_date_sk#18, i_brand_id#21, i_class_id#22, i_category_id#23]
-Right output [1]: [d_date_sk#24]
-Arguments: [cs_sold_date_sk#18], [d_date_sk#24], Inner, BuildRight
-
-(21) CometProject
-Input [5]: [cs_sold_date_sk#18, i_brand_id#21, i_class_id#22, i_category_id#23, d_date_sk#24]
-Arguments: [i_brand_id#21, i_class_id#22, i_category_id#23], [i_brand_id#21, i_class_id#22, i_category_id#23]
-
-(22) CometBroadcastExchange
-Input [3]: [i_brand_id#21, i_class_id#22, i_category_id#23]
-Arguments: [i_brand_id#21, i_class_id#22, i_category_id#23]
-
-(23) CometBroadcastHashJoin
-Left output [4]: [i_item_sk#13, i_brand_id#14, i_class_id#15, i_category_id#16]
-Right output [3]: [i_brand_id#21, i_class_id#22, i_category_id#23]
-Arguments: [coalesce(i_brand_id#14, 0), isnull(i_brand_id#14), coalesce(i_class_id#15, 0), isnull(i_class_id#15), coalesce(i_category_id#16, 0), isnull(i_category_id#16)], [coalesce(i_brand_id#21, 0), isnull(i_brand_id#21), coalesce(i_class_id#22, 0), isnull(i_class_id#22), coalesce(i_category_id#23, 0), isnull(i_category_id#23)], LeftSemi, BuildRight
-
-(24) CometBroadcastExchange
... 564190 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org