From f722439673b5f50b60804fef5aa0f45e55f70e61 Mon Sep 17 00:00:00 2001 From: yew1eb Date: Sat, 17 Jan 2026 19:10:36 +0800 Subject: [PATCH 1/2] [AURON #1907][CI] Fix YAML syntax error and rebase issue --- .github/workflows/tpcds-reusable.yml | 81 +++++++------------ dev/auron-it/run-it.sh | 4 +- .../tpcds-plan-stability/spark-3.5/q1.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q11.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q12.txt | 2 +- .../tpcds-plan-stability/spark-3.5/q13.txt | 16 ++-- .../tpcds-plan-stability/spark-3.5/q15.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q16.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q19.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q2.txt | 2 +- .../tpcds-plan-stability/spark-3.5/q20.txt | 2 +- .../tpcds-plan-stability/spark-3.5/q30.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q31.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q32.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q4.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q46.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q47.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q48.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q51.txt | 6 +- .../tpcds-plan-stability/spark-3.5/q53.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q57.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q58.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q6.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q61.txt | 2 +- .../tpcds-plan-stability/spark-3.5/q63.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q64.txt | 12 +-- .../tpcds-plan-stability/spark-3.5/q65.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q68.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q72.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q74.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q75.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q77.txt | 2 +- .../tpcds-plan-stability/spark-3.5/q81.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q85.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q89.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q90.txt | 2 +- .../tpcds-plan-stability/spark-3.5/q92.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q94.txt | 4 +- .../tpcds-plan-stability/spark-3.5/q95.txt | 8 +- .../tpcds-plan-stability/spark-3.5/q98.txt | 2 +- .../comparison/PlanStabilityChecker.scala | 1 + .../auron/integration/tpcds/TPCDSSuite.scala | 2 +- 42 files changed, 130 insertions(+), 150 deletions(-) diff --git a/.github/workflows/tpcds-reusable.yml b/.github/workflows/tpcds-reusable.yml index e165c802c..156b7662b 100644 --- a/.github/workflows/tpcds-reusable.yml +++ b/.github/workflows/tpcds-reusable.yml @@ -88,45 +88,6 @@ env: WGET_OPTS: "--tries=3 --timeout=30 -c" jobs: - build-validator: - name: Build TPC-DS Validator - runs-on: ubuntu-24.04 - steps: - - name: Cache TPC-DS Validator - uses: actions/cache@v5 - id: cache-tpcds-validator - with: - key: tpcds-validator_${{ inputs.scalaver }} - path: target/tpcds-validator_${{ inputs.scalaver }}-0.1.0-SNAPSHOT-with-dependencies.jar - - - name: Checkout TPC-DS Validator - uses: actions/checkout@v6 - if: steps.cache-tpcds-validator.outputs.cache-hit != 'true' - with: - repository: auron-project/tpcds-validator - - - name: Setup Java and Maven cache - uses: actions/setup-java@v5 - if: steps.cache-tpcds-validator.outputs.cache-hit != 'true' - with: - distribution: 'adopt-hotspot' - java-version: ${{ inputs.javaver }} - cache: 'maven' - - - name: Build TPC-DS Validator - if: steps.cache-tpcds-validator.outputs.cache-hit != 'true' - run: ./build/mvn package -DskipTests -Pscala-${{ inputs.scalaver }} - - - name: Upload TPC-DS Validator - uses: actions/upload-artifact@v6 - with: - name: > - tpcds-validator-${{ inputs.sparkver }}_${{ inputs.scalaver }}-jdk-${{ inputs.javaver - }}${{ inputs.celebornver && format('-{0}', inputs.celebornver) || '' - }}${{ inputs.unifflever && format('-{0}', inputs.unifflever) || '' }} - path: target/tpcds-validator_${{ inputs.scalaver }}-0.1.0-SNAPSHOT-with-dependencies.jar - overwrite: true - build-auron-jar: name: Build Auron JAR runs-on: ubuntu-24.04 @@ -159,8 +120,8 @@ jobs: clippy - name: Cargo clippy + # First eliminate unwrap; then enable -D warnings to enforce all default lints. run: | -# First eliminate unwrap; then enable -D warnings to enforce all default lints. cargo clippy --all-targets --workspace -- -A warnings -A clippy::all -D clippy::unwrap_used - name: Cargo test @@ -223,10 +184,18 @@ jobs: }}${{ inputs.unifflever && format('-{0}', inputs.unifflever) || '' }} path: target/auron-${{ inputs.sparkver }}_${{ inputs.scalaver }}-pre-*.jar overwrite: true + - name: Upload auron maven artifacts (Spark ${{ inputs.sparkver }}, Scala ${{ inputs.scalaver }}, JDK ${{ inputs.javaver }}) + uses: actions/upload-artifact@v4 + with: + name: auron-artifacts-${{ inputs.sparkver }}_${{ inputs.scalaver }}-jdk-${{ inputs.javaver + }}${{ inputs.celebornver && format('-{0}', inputs.celebornver) || '' + }}${{ inputs.unifflever && format('-{0}', inputs.unifflever) || '' }} + path: ~/.m2/repository/org/apache/auron + if-no-files-found: error run-tpcds-test: name: Run TPC-DS test ${{ matrix.query }} - needs: [build-validator, build-auron-jar] + needs: [build-auron-jar] runs-on: ubuntu-24.04 strategy: fail-fast: false @@ -286,13 +255,14 @@ jobs: }}${{ inputs.celebornver && format('-{0}', inputs.celebornver) || '' }}${{ inputs.unifflever && format('-{0}', inputs.unifflever) || '' }} - - name: Download TPC-DS Validator JAR + - name: Download auron maven artifacts uses: actions/download-artifact@v7 with: name: > - tpcds-validator-${{ inputs.sparkver }}_${{ inputs.scalaver }}-jdk-${{ inputs.javaver - }}${{ inputs.celebornver && format('-{0}', inputs.celebornver) || '' + auron-artifacts-${{ inputs.sparkver }}_${{ inputs.scalaver }}-jdk-${{ inputs.javaver + }}${{ inputs.celebornver && format('-{0}', inputs.celebornver) || '' }}${{ inputs.unifflever && format('-{0}', inputs.unifflever) || '' }} + path: ~/.m2/repository/org/apache/auron - name: Checkout TPC-DS Data uses: actions/checkout@v6 @@ -303,7 +273,10 @@ jobs: - name: Install Auron JAR run: | ls -la - cp auron-*${{ inputs.sparkver }}_${{ inputs.scalaver }}*.jar spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }}/jars/ + jar=$(ls -1 auron-${{ inputs.sparkver }}_${{ inputs.scalaver }}*.jar | head -n1) + [ -n "$jar" ] || { echo "No jar matched: auron-${{ inputs.sparkver }}_${{ inputs.scalaver }}*.jar"; exit 1; } + echo "AURON_SPARK_JAR=$jar" >> "$GITHUB_ENV" + cp "$jar" spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }}/jars/ - name: Setup Java and Maven cache uses: actions/setup-java@v5 @@ -406,16 +379,22 @@ jobs: cp uniffle-bin-${{ steps.get-dependency-version.outputs.uniffleversion }}/jars/client/spark3/*.jar spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }}/jars/ - name: Run TPC-DS Query ${{ matrix.query }} + env: + RUST_LOG: ERROR + RUST_BACKTRACE: 1 + SPARK_VERSION: ${{ inputs.sparkver }} + SCALA_VERSION: ${{ inputs.scalaver }} + SPARK_HOME: spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }} run: | ls -la - export RUST_LOG=ERROR - export RUST_BACKTRACE=1 - export SCALA_VERSION=${{ inputs.scalaver }} - export SPARK_HOME=spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }} - dev/run-tpcds-test \ + ls -la ~/.m2/repository/org/apache/auron + dev/auron-it/run-it.sh \ ${{ inputs.extrasparkconf }} \ + --type tpcds \ --data-location dev/tpcds_1g \ - --query-filter ${{ matrix.query }} + --query-filter ${{ matrix.query }} \ + --result-check \ + --plan-check - name: Upload RSS log if: ${{ failure() && (inputs.celebornver != '' || inputs.unifflever != '') }} diff --git a/dev/auron-it/run-it.sh b/dev/auron-it/run-it.sh index 8e0e694bb..eccc9a67f 100755 --- a/dev/auron-it/run-it.sh +++ b/dev/auron-it/run-it.sh @@ -70,8 +70,8 @@ while [[ $# -gt 0 ]]; do done exec $SPARK_HOME/bin/spark-submit \ - --driver-memory 5g \ - --conf spark.driver.memoryOverhead=3072 \ + --driver-memory 8g \ + --conf spark.driver.memoryOverhead=4g \ --conf spark.auron.memoryFraction=0.8 \ --conf spark.driver.extraJavaOptions=-XX:+UseG1GC \ --conf spark.ui.enabled=false \ diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt index b10e1f182..de3b33da9 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q1.txt @@ -440,13 +440,13 @@ Condition : isnotnull((avg(ctr_total_return) * 1.2)#26) Input [2]: [(avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] Arguments: [ctr_store_sk#21 ASC NULLS FIRST], false -(67) SortMergeJoin [codegen id : 1] +(67) SortMergeJoin [codegen id : X] Left keys [1]: [ctr_store_sk#12] Right keys [1]: [ctr_store_sk#21] Join type: Inner Join condition: (cast(ctr_total_return#13 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#26) -(68) Project [codegen id : 1] +(68) Project [codegen id : X] Output [2]: [ctr_customer_sk#11, ctr_store_sk#12] Input [5]: [ctr_customer_sk#11, ctr_store_sk#12, ctr_total_return#13, (avg(ctr_total_return) * 1.2)#26, ctr_store_sk#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt index dee507214..0011be99b 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q11.txt @@ -888,13 +888,13 @@ Input [2]: [customer_id#71, year_total#72] Input [2]: [customer_id#71, year_total#72] Arguments: [customer_id#71 ASC NULLS FIRST], false -(151) SortMergeJoin [codegen id : 1] +(151) SortMergeJoin [codegen id : X] Left keys [1]: [customer_id#19] Right keys [1]: [customer_id#71] Join type: Inner Join condition: (CASE WHEN (year_total#56 > 0.00) THEN (year_total#72 / year_total#56) END > CASE WHEN (year_total#20 > 0.00) THEN (year_total#37 / year_total#20) END) -(152) Project [codegen id : 1] +(152) Project [codegen id : X] Output [1]: [customer_preferred_cust_flag#36] Input [7]: [customer_id#19, year_total#20, customer_preferred_cust_flag#36, year_total#37, year_total#56, customer_id#71, year_total#72] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt index 0c56ed9fd..b20a8ba85 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q12.txt @@ -286,7 +286,7 @@ Arguments: [i_class#8 ASC NULLS FIRST], false Input [7]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, _w0#17, i_item_id#5] Arguments: [sum(_w0#17) windowspecdefinition(i_class#8, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#18], [i_class#8] -(49) Project [codegen id : 1] +(49) Project [codegen id : X] Output [7]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, ((_w0#17 * 100) / _we0#18) AS revenueratio#19, i_item_id#5] Input [8]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, _w0#17, i_item_id#5, _we0#18] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q13.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q13.txt index a952eab95..3d7d4e40e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q13.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q13.txt @@ -272,13 +272,13 @@ Input [2]: [ca_address_sk#12, ca_state#13] Input [2]: [ca_address_sk#12, ca_state#13] Arguments: [ca_address_sk#12 ASC NULLS FIRST], false -(33) SortMergeJoin [codegen id : 1] +(33) SortMergeJoin [codegen id : X] Left keys [1]: [ss_addr_sk#4] Right keys [1]: [ca_address_sk#12] Join type: Inner Join condition: ((((ca_state#13 IN (TX,OH) AND (ss_net_profit#10 >= 100.00)) AND (ss_net_profit#10 <= 200.00)) OR ((ca_state#13 IN (OR,NM,KY) AND (ss_net_profit#10 >= 150.00)) AND (ss_net_profit#10 <= 300.00))) OR ((ca_state#13 IN (VA,TX,MS) AND (ss_net_profit#10 >= 50.00)) AND (ss_net_profit#10 <= 250.00))) -(34) Project [codegen id : 1] +(34) Project [codegen id : X] Output [7]: [ss_sold_date_sk#1, ss_cdemo_sk#2, ss_hdemo_sk#3, ss_quantity#6, ss_sales_price#7, ss_ext_sales_price#8, ss_ext_wholesale_cost#9] Input [11]: [ss_sold_date_sk#1, ss_cdemo_sk#2, ss_hdemo_sk#3, ss_addr_sk#4, ss_quantity#6, ss_sales_price#7, ss_ext_sales_price#8, ss_ext_wholesale_cost#9, ss_net_profit#10, ca_address_sk#12, ca_state#13] @@ -405,13 +405,13 @@ Input [3]: [#17#17, #18#18, #19#19] Input [3]: [#17#17, #18#18, #19#19] Arguments: [cd_demo_sk#17 ASC NULLS FIRST], false -(65) SortMergeJoin [codegen id : 2] +(65) SortMergeJoin [codegen id : X] Left keys [1]: [ss_cdemo_sk#2] Right keys [1]: [cd_demo_sk#17] Join type: Inner Join condition: ((((((cd_marital_status#18 = M) AND (cd_education_status#19 = Advanced Degree)) AND (ss_sales_price#7 >= 100.00)) AND (ss_sales_price#7 <= 150.00)) OR ((((cd_marital_status#18 = S) AND (cd_education_status#19 = College)) AND (ss_sales_price#7 >= 50.00)) AND (ss_sales_price#7 <= 100.00))) OR ((((cd_marital_status#18 = W) AND (cd_education_status#19 = 2 yr Degree)) AND (ss_sales_price#7 >= 150.00)) AND (ss_sales_price#7 <= 200.00))) -(66) Project [codegen id : 2] +(66) Project [codegen id : X] Output [7]: [ss_hdemo_sk#3, ss_quantity#6, ss_sales_price#7, ss_ext_sales_price#8, ss_ext_wholesale_cost#9, cd_marital_status#18, cd_education_status#19] Input [9]: [ss_cdemo_sk#2, ss_hdemo_sk#3, ss_quantity#6, ss_sales_price#7, ss_ext_sales_price#8, ss_ext_wholesale_cost#9, #17#17, #18#18, #19#19] @@ -471,17 +471,17 @@ Input [2]: [#20#20, #21#21] Input [2]: [#20#20, #21#21] Arguments: [hd_demo_sk#20 ASC NULLS FIRST], false -(81) SortMergeJoin [codegen id : 3] +(81) SortMergeJoin [codegen id : X] Left keys [1]: [ss_hdemo_sk#3] Right keys [1]: [hd_demo_sk#20] Join type: Inner Join condition: (((((((cd_marital_status#18 = M) AND (cd_education_status#19 = Advanced Degree)) AND (ss_sales_price#7 >= 100.00)) AND (ss_sales_price#7 <= 150.00)) AND (hd_dep_count#21 = 3)) OR (((((cd_marital_status#18 = S) AND (cd_education_status#19 = College)) AND (ss_sales_price#7 >= 50.00)) AND (ss_sales_price#7 <= 100.00)) AND (hd_dep_count#21 = 1))) OR (((((cd_marital_status#18 = W) AND (cd_education_status#19 = 2 yr Degree)) AND (ss_sales_price#7 >= 150.00)) AND (ss_sales_price#7 <= 200.00)) AND (hd_dep_count#21 = 1))) -(82) Project [codegen id : 3] +(82) Project [codegen id : X] Output [3]: [ss_quantity#6, ss_ext_sales_price#8, ss_ext_wholesale_cost#9] Input [9]: [ss_hdemo_sk#3, ss_quantity#6, ss_sales_price#7, ss_ext_sales_price#8, ss_ext_wholesale_cost#9, cd_marital_status#18, cd_education_status#19, #20#20, #21#21] -(83) HashAggregate [codegen id : 3] +(83) HashAggregate [codegen id : X] Input [3]: [ss_quantity#6, ss_ext_sales_price#8, ss_ext_wholesale_cost#9] Keys: [] Functions [4]: [partial_avg(ss_quantity#6), partial_avg(UnscaledValue(ss_ext_sales_price#8)), partial_avg(UnscaledValue(ss_ext_wholesale_cost#9)), partial_sum(UnscaledValue(ss_ext_wholesale_cost#9))] @@ -496,7 +496,7 @@ Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=11] Output [7]: [sum#29, count#30, sum#31, count#32, sum#33, count#34, sum#35] Arguments: X -(86) HashAggregate [codegen id : 4] +(86) HashAggregate [codegen id : X] Input [7]: [sum#29, count#30, sum#31, count#32, sum#33, count#34, sum#35] Keys: [] Functions [4]: [avg(ss_quantity#6), avg(UnscaledValue(ss_ext_sales_price#8)), avg(UnscaledValue(ss_ext_wholesale_cost#9)), sum(UnscaledValue(ss_ext_wholesale_cost#9))] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt index dee7e5004..e4d563b23 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q15.txt @@ -225,13 +225,13 @@ Input [3]: [#6#6, #7#7, #8#8] Input [3]: [#6#6, #7#7, #8#8] Arguments: [ca_address_sk#6 ASC NULLS FIRST], false -(32) SortMergeJoin [codegen id : 1] +(32) SortMergeJoin [codegen id : X] Left keys [1]: [c_current_addr_sk#5] Right keys [1]: [ca_address_sk#6] Join type: Inner Join condition: ((substr(ca_zip#8, 1, 5) IN (85669,86197,88274,83405,86475,85392,85460,80348,81792) OR ca_state#7 IN (CA,WA,GA)) OR (cs_sales_price#3 > 500.00)) -(33) Project [codegen id : 1] +(33) Project [codegen id : X] Output [3]: [cs_sold_date_sk#1, cs_sales_price#3, ca_zip#8] Input [6]: [cs_sold_date_sk#1, cs_sales_price#3, c_current_addr_sk#5, #6#6, #7#7, #8#8] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt index 67a27cdfe..51e294987 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q16.txt @@ -199,13 +199,13 @@ Input [2]: [#8#8, #9#9] Input [2]: [#8#8, #9#9] Arguments: [cs_order_number#9 ASC NULLS FIRST], false -(16) SortMergeJoin [codegen id : 1] +(16) SortMergeJoin [codegen id : X] Left keys [1]: [cs_order_number#5] Right keys [1]: [cs_order_number#9] Join type: LeftSemi Join condition: NOT (cs_warehouse_sk#4 = cs_warehouse_sk#8) -(17) Project [codegen id : 1] +(17) Project [codegen id : X] Output [6]: [cs_ship_date_sk#1, cs_ship_addr_sk#2, cs_call_center_sk#3, cs_order_number#5, cs_ext_ship_cost#6, cs_net_profit#7] Input [7]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q19.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q19.txt index dc7466d29..0e7874f20 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q19.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q19.txt @@ -466,17 +466,17 @@ Input [2]: [#19#19, #20#20] Input [2]: [#19#19, #20#20] Arguments: [s_store_sk#19 ASC NULLS FIRST], false -(79) SortMergeJoin [codegen id : 1] +(79) SortMergeJoin [codegen id : X] Left keys [1]: [ss_store_sk#7] Right keys [1]: [s_store_sk#19] Join type: Inner Join condition: NOT (substr(ca_zip#18, 1, 5) = substr(s_zip#20, 1, 5)) -(80) Project [codegen id : 1] +(80) Project [codegen id : X] Output [5]: [ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13] Input [9]: [ss_store_sk#7, ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13, ca_zip#18, #19#19, #20#20] -(81) HashAggregate [codegen id : 1] +(81) HashAggregate [codegen id : X] Input [5]: [ss_ext_sales_price#8, i_brand_id#10, i_brand#11, i_manufact_id#12, i_manufact#13] Keys [4]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13] Functions [1]: [partial_sum(UnscaledValue(ss_ext_sales_price#8))] @@ -495,7 +495,7 @@ Arguments: X Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum#22] Arguments: coalesced -(85) HashAggregate [codegen id : 2] +(85) HashAggregate [codegen id : X] Input [5]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13, sum#22] Keys [4]: [i_brand#11, i_brand_id#10, i_manufact_id#12, i_manufact#13] Functions [1]: [sum(UnscaledValue(ss_ext_sales_price#8))] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt index bd2f2a6fa..00c8b6a6d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q2.txt @@ -442,7 +442,7 @@ Right keys [1]: [(d_week_seq2#76 - 53)] Join type: Inner Join condition: None -(71) Project [codegen id : 1] +(71) Project [codegen id : X] Output [8]: [d_week_seq1#43, round((sun_sales1#44 / sun_sales2#77), 2) AS round((sun_sales1 / sun_sales2), 2)#84, round((mon_sales1#45 / mon_sales2#78), 2) AS round((mon_sales1 / mon_sales2), 2)#85, round((tue_sales1#46 / tue_sales2#79), 2) AS round((tue_sales1 / tue_sales2), 2)#86, round((wed_sales1#47 / wed_sales2#80), 2) AS round((wed_sales1 / wed_sales2), 2)#87, round((thu_sales1#48 / thu_sales2#81), 2) AS round((thu_sales1 / thu_sales2), 2)#88, round((fri_sales1#49 / fri_sales2#82), 2) AS round((fri_sales1 / fri_sales2), 2)#89, round((sat_sales1#50 / sat_sales2#83), 2) AS round((sat_sales1 / sat_sales2), 2)#90] Input [16]: [d_week_seq1#43, sun_sales1#44, mon_sales1#45, tue_sales1#46, wed_sales1#47, thu_sales1#48, fri_sales1#49, sat_sales1#50, d_week_seq2#76, sun_sales2#77, mon_sales2#78, tue_sales2#79, wed_sales2#80, thu_sales2#81, fri_sales2#82, sat_sales2#83] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt index 2d1e4f16e..fcaa6348f 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q20.txt @@ -286,7 +286,7 @@ Arguments: [i_class#8 ASC NULLS FIRST], false Input [7]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, _w0#17, i_item_id#5] Arguments: [sum(_w0#17) windowspecdefinition(i_class#8, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#18], [i_class#8] -(49) Project [codegen id : 1] +(49) Project [codegen id : X] Output [7]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, ((_w0#17 * 100) / _we0#18) AS revenueratio#19, i_item_id#5] Input [8]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, _w0#17, i_item_id#5, _we0#18] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt index b5171f3e7..aef8ca2ee 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q30.txt @@ -605,13 +605,13 @@ Condition : isnotnull((avg(ctr_total_return) * 1.2)#30) Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] Arguments: [ctr_state#25 ASC NULLS FIRST], false -(95) SortMergeJoin [codegen id : 1] +(95) SortMergeJoin [codegen id : X] Left keys [1]: [ctr_state#14] Right keys [1]: [ctr_state#25] Join type: Inner Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#30) -(96) Project [codegen id : 1] +(96) Project [codegen id : X] Output [2]: [ctr_customer_sk#13, ctr_total_return#15] Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#30, ctr_state#25] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt index d11981afe..d4188dece 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q31.txt @@ -1317,13 +1317,13 @@ Input [2]: [ca_county#55, web_sales#58] Input [2]: [ca_county#55, web_sales#58] Arguments: [ca_county#55 ASC NULLS FIRST], false -(217) SortMergeJoin [codegen id : 1] +(217) SortMergeJoin [codegen id : X] Left keys [1]: [ca_county#43] Right keys [1]: [ca_county#55] Join type: Inner Join condition: (CASE WHEN (web_sales#47 > 0.00) THEN (web_sales#58 / web_sales#47) END > CASE WHEN (store_sales#13 > 0.00) THEN (store_sales#24 / store_sales#13) END) -(218) Project [codegen id : 1] +(218) Project [codegen id : X] Output [8]: [ca_county#8, d_year#5, store_sales#13, store_sales#24, store_sales#35, ca_county#43, web_sales#47, web_sales#58] Input [9]: [ca_county#8, d_year#5, store_sales#13, store_sales#24, store_sales#35, ca_county#43, web_sales#47, ca_county#55, web_sales#58] @@ -1488,13 +1488,13 @@ Input [2]: [ca_county#66, web_sales#69] Input [2]: [ca_county#66, web_sales#69] Arguments: [ca_county#66 ASC NULLS FIRST], false -(259) SortMergeJoin [codegen id : 2] +(259) SortMergeJoin [codegen id : X] Left keys [1]: [ca_county#43] Right keys [1]: [ca_county#66] Join type: Inner Join condition: (CASE WHEN (web_sales#58 > 0.00) THEN (web_sales#69 / web_sales#58) END > CASE WHEN (store_sales#24 > 0.00) THEN (store_sales#35 / store_sales#24) END) -(260) Project [codegen id : 2] +(260) Project [codegen id : X] Output [6]: [ca_county#8, d_year#5, (web_sales#58 / web_sales#47) AS web_q1_q2_increase#70, (store_sales#24 / store_sales#13) AS store_q1_q2_increase#71, (web_sales#69 / web_sales#58) AS web_q2_q3_increase#72, (store_sales#35 / store_sales#24) AS store_q2_q3_increase#73] Input [10]: [ca_county#8, d_year#5, store_sales#13, store_sales#24, store_sales#35, ca_county#43, web_sales#47, web_sales#58, ca_county#66, web_sales#69] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt index e4d065e04..f18f5a443 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q32.txt @@ -324,13 +324,13 @@ Condition : isnotnull((1.3 * avg(cs_ext_discount_amt))#16) Input [2]: [(1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] Arguments: [cs_item_sk#7 ASC NULLS FIRST], false -(49) SortMergeJoin [codegen id : 1] +(49) SortMergeJoin [codegen id : X] Left keys [1]: [i_item_sk#4] Right keys [1]: [cs_item_sk#7] Join type: Inner Join condition: (cast(cs_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(cs_ext_discount_amt))#16) -(50) Project [codegen id : 1] +(50) Project [codegen id : X] Output [2]: [cs_sold_date_sk#1, cs_ext_discount_amt#3] Input [5]: [cs_sold_date_sk#1, cs_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(cs_ext_discount_amt))#16, cs_item_sk#7] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt index 2c538c302..58b55aaa3 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q4.txt @@ -1008,13 +1008,13 @@ Input [2]: [customer_id#88, year_total#89] Input [2]: [customer_id#88, year_total#89] Arguments: [customer_id#88 ASC NULLS FIRST], false -(150) SortMergeJoin [codegen id : 1] +(150) SortMergeJoin [codegen id : X] Left keys [1]: [customer_id#22] Right keys [1]: [customer_id#88] Join type: Inner Join condition: (CASE WHEN (year_total#70 > 0.000000) THEN (year_total#89 / year_total#70) END > CASE WHEN (year_total#23 > 0.000000) THEN (year_total#48 / year_total#23) END) -(151) Project [codegen id : 1] +(151) Project [codegen id : X] Output [10]: [customer_id#22, customer_id#41, customer_first_name#42, customer_last_name#43, customer_preferred_cust_flag#44, customer_birth_country#45, customer_login#46, customer_email_address#47, year_total#70, year_total#89] Input [13]: [customer_id#22, year_total#23, customer_id#41, customer_first_name#42, customer_last_name#43, customer_preferred_cust_flag#44, customer_birth_country#45, customer_login#46, customer_email_address#47, year_total#48, year_total#70, customer_id#88, year_total#89] @@ -1318,13 +1318,13 @@ Input [2]: [customer_id#129, year_total#130] Input [2]: [customer_id#129, year_total#130] Arguments: [customer_id#129 ASC NULLS FIRST], false -(225) SortMergeJoin [codegen id : 2] +(225) SortMergeJoin [codegen id : X] Left keys [1]: [customer_id#22] Right keys [1]: [customer_id#129] Join type: Inner Join condition: (CASE WHEN (year_total#70 > 0.000000) THEN (year_total#89 / year_total#70) END > CASE WHEN (year_total#111 > 0.000000) THEN (year_total#130 / year_total#111) END) -(226) Project [codegen id : 2] +(226) Project [codegen id : X] Output [7]: [customer_id#41, customer_first_name#42, customer_last_name#43, customer_preferred_cust_flag#44, customer_birth_country#45, customer_login#46, customer_email_address#47] Input [13]: [customer_id#22, customer_id#41, customer_first_name#42, customer_last_name#43, customer_preferred_cust_flag#44, customer_birth_country#45, customer_login#46, customer_email_address#47, year_total#70, year_total#89, year_total#111, customer_id#129, year_total#130] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt index f8d465d69..ec3059175 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q46.txt @@ -564,13 +564,13 @@ Input [2]: [#33#33, #34#34] Input [2]: [#33#33, #34#34] Arguments: [ca_address_sk#33 ASC NULLS FIRST], false -(97) SortMergeJoin [codegen id : 1] +(97) SortMergeJoin [codegen id : X] Left keys [1]: [c_current_addr_sk#30] Right keys [1]: [ca_address_sk#33] Join type: Inner Join condition: NOT (ca_city#34 = bought_city#26) -(98) Project [codegen id : 1] +(98) Project [codegen id : X] Output [7]: [c_last_name#32, c_first_name#31, ca_city#34, bought_city#26, ss_ticket_number#6, amt#27, profit#28] Input [9]: [ss_ticket_number#6, bought_city#26, amt#27, profit#28, c_current_addr_sk#30, c_first_name#31, c_last_name#32, #33#33, #34#34] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt index 23a5d6644..edc49e4a6 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q47.txt @@ -498,11 +498,11 @@ Condition : (isnotnull(d_year#9) AND (d_year#9 = 1999)) Input [9]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, sum_sales#18, _w0#19, rn#20] Arguments: [avg(_w0#19) windowspecdefinition(i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS avg_monthly_sales#21], [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9] -(65) Filter [codegen id : 1] +(65) Filter [codegen id : X] Input [10]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, sum_sales#18, _w0#19, rn#20, avg_monthly_sales#21] Condition : ((isnotnull(avg_monthly_sales#21) AND (avg_monthly_sales#21 > 0.000000)) AND CASE WHEN (avg_monthly_sales#21 > 0.000000) THEN ((abs((sum_sales#18 - avg_monthly_sales#21)) / avg_monthly_sales#21) > 0.1000000000000000) END) -(66) Project [codegen id : 1] +(66) Project [codegen id : X] Output [9]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, sum_sales#18, avg_monthly_sales#21, rn#20] Input [10]: [i_category#3, i_brand#2, s_store_name#12, s_company_name#13, d_year#9, d_moy#10, sum_sales#18, _w0#19, rn#20, avg_monthly_sales#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt index dcba247fd..fa045281a 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q48.txt @@ -246,13 +246,13 @@ Input [3]: [#9#9, #10#10, #11#11] Input [3]: [#9#9, #10#10, #11#11] Arguments: [cd_demo_sk#9 ASC NULLS FIRST], false -(32) SortMergeJoin [codegen id : 1] +(32) SortMergeJoin [codegen id : X] Left keys [1]: [ss_cdemo_sk#2] Right keys [1]: [cd_demo_sk#9] Join type: Inner Join condition: ((((((cd_marital_status#10 = M) AND (cd_education_status#11 = 4 yr Degree)) AND (ss_sales_price#6 >= 100.00)) AND (ss_sales_price#6 <= 150.00)) OR ((((cd_marital_status#10 = D) AND (cd_education_status#11 = 2 yr Degree)) AND (ss_sales_price#6 >= 50.00)) AND (ss_sales_price#6 <= 100.00))) OR ((((cd_marital_status#10 = S) AND (cd_education_status#11 = College)) AND (ss_sales_price#6 >= 150.00)) AND (ss_sales_price#6 <= 200.00))) -(33) Project [codegen id : 1] +(33) Project [codegen id : X] Output [4]: [ss_sold_date_sk#1, ss_addr_sk#3, ss_quantity#5, ss_net_profit#7] Input [9]: [ss_sold_date_sk#1, ss_cdemo_sk#2, ss_addr_sk#3, ss_quantity#5, ss_sales_price#6, ss_net_profit#7, #9#9, #10#10, #11#11] @@ -316,13 +316,13 @@ Input [2]: [ca_address_sk#12, ca_state#13] Input [2]: [ca_address_sk#12, ca_state#13] Arguments: [ca_address_sk#12 ASC NULLS FIRST], false -(49) SortMergeJoin [codegen id : 2] +(49) SortMergeJoin [codegen id : X] Left keys [1]: [ss_addr_sk#3] Right keys [1]: [ca_address_sk#12] Join type: Inner Join condition: ((((ca_state#13 IN (CO,OH,TX) AND (ss_net_profit#7 >= 0.00)) AND (ss_net_profit#7 <= 2000.00)) OR ((ca_state#13 IN (OR,MN,KY) AND (ss_net_profit#7 >= 150.00)) AND (ss_net_profit#7 <= 3000.00))) OR ((ca_state#13 IN (VA,CA,MS) AND (ss_net_profit#7 >= 50.00)) AND (ss_net_profit#7 <= 25000.00))) -(50) Project [codegen id : 2] +(50) Project [codegen id : X] Output [2]: [ss_sold_date_sk#1, ss_quantity#5] Input [6]: [ss_sold_date_sk#1, ss_addr_sk#3, ss_quantity#5, ss_net_profit#7, ca_address_sk#12, ca_state#13] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt index 548e344ab..9f404f29e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q51.txt @@ -280,7 +280,7 @@ Arguments: [ws_item_sk#2 ASC NULLS FIRST, d_date#5 ASC NULLS FIRST], false Input [4]: [item_sk#11, d_date#5, _w0#12, ws_item_sk#2] Arguments: [sum(_w0#12) windowspecdefinition(ws_item_sk#2, d_date#5 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS cume_sales#13], [ws_item_sk#2], [d_date#5 ASC NULLS FIRST] -(34) Project [codegen id : 1] +(34) Project [codegen id : X] Output [3]: [item_sk#11, d_date#5, cume_sales#13] Input [5]: [item_sk#11, d_date#5, _w0#12, ws_item_sk#2, cume_sales#13] @@ -432,7 +432,7 @@ Arguments: [ss_item_sk#15 ASC NULLS FIRST, d_date#18 ASC NULLS FIRST], false Input [4]: [item_sk#22, d_date#18, _w0#23, ss_item_sk#15] Arguments: [sum(_w0#23) windowspecdefinition(ss_item_sk#15, d_date#18 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS cume_sales#24], [ss_item_sk#15], [d_date#18 ASC NULLS FIRST] -(71) Project [codegen id : 2] +(71) Project [codegen id : X] Output [3]: [item_sk#22, d_date#18, cume_sales#24] Input [5]: [item_sk#22, d_date#18, _w0#23, ss_item_sk#15, cume_sales#24] @@ -491,7 +491,7 @@ Arguments: [item_sk#25 ASC NULLS FIRST, d_date#26 ASC NULLS FIRST], false Input [4]: [item_sk#25, d_date#26, web_sales#27, store_sales#28] Arguments: [max(web_sales#27) windowspecdefinition(item_sk#25, d_date#26 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS web_cumulative#29, max(store_sales#28) windowspecdefinition(item_sk#25, d_date#26 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS store_cumulative#30], [item_sk#25], [d_date#26 ASC NULLS FIRST] -(86) Filter [codegen id : 3] +(86) Filter [codegen id : X] Input [6]: [item_sk#25, d_date#26, web_sales#27, store_sales#28, web_cumulative#29, store_cumulative#30] Condition : ((isnotnull(web_cumulative#29) AND isnotnull(store_cumulative#30)) AND (web_cumulative#29 > store_cumulative#30)) diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt index 110758e1f..1143f107b 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q53.txt @@ -380,11 +380,11 @@ Arguments: [i_manufact_id#5 ASC NULLS FIRST], false Input [3]: [i_manufact_id#5, sum_sales#22, _w0#23] Arguments: [avg(_w0#23) windowspecdefinition(i_manufact_id#5, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS avg_quarterly_sales#24], [i_manufact_id#5] -(65) Filter [codegen id : 1] +(65) Filter [codegen id : X] Input [4]: [i_manufact_id#5, sum_sales#22, _w0#23, avg_quarterly_sales#24] Condition : CASE WHEN (avg_quarterly_sales#24 > 0.000000) THEN ((abs((sum_sales#22 - avg_quarterly_sales#24)) / avg_quarterly_sales#24) > 0.1000000000000000) ELSE false END -(66) Project [codegen id : 1] +(66) Project [codegen id : X] Output [3]: [i_manufact_id#5, sum_sales#22, avg_quarterly_sales#24] Input [4]: [i_manufact_id#5, sum_sales#22, _w0#23, avg_quarterly_sales#24] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt index ac282457c..17fb351f5 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q57.txt @@ -498,11 +498,11 @@ Condition : (isnotnull(d_year#9) AND (d_year#9 = 1999)) Input [8]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, sum_sales#17, _w0#18, rn#19] Arguments: [avg(_w0#18) windowspecdefinition(i_category#3, i_brand#2, cc_name#12, d_year#9, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS avg_monthly_sales#20], [i_category#3, i_brand#2, cc_name#12, d_year#9] -(65) Filter [codegen id : 1] +(65) Filter [codegen id : X] Input [9]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, sum_sales#17, _w0#18, rn#19, avg_monthly_sales#20] Condition : ((isnotnull(avg_monthly_sales#20) AND (avg_monthly_sales#20 > 0.000000)) AND CASE WHEN (avg_monthly_sales#20 > 0.000000) THEN ((abs((sum_sales#17 - avg_monthly_sales#20)) / avg_monthly_sales#20) > 0.1000000000000000) END) -(66) Project [codegen id : 1] +(66) Project [codegen id : X] Output [8]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, sum_sales#17, avg_monthly_sales#20, rn#19] Input [9]: [i_category#3, i_brand#2, cc_name#12, d_year#9, d_moy#10, sum_sales#17, _w0#18, rn#19, avg_monthly_sales#20] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt index 1887feeef..b93dc834d 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q58.txt @@ -662,13 +662,13 @@ Condition : isnotnull(cs_item_rev#28) Input [2]: [item_id#27, cs_item_rev#28] Arguments: [item_id#27 ASC NULLS FIRST], false -(99) SortMergeJoin [codegen id : 1] +(99) SortMergeJoin [codegen id : X] Left keys [1]: [item_id#16] Right keys [1]: [item_id#27] Join type: Inner Join condition: ((((cast(ss_item_rev#17 as decimal(19,3)) >= (0.9 * cs_item_rev#28)) AND (cast(ss_item_rev#17 as decimal(20,3)) <= (1.1 * cs_item_rev#28))) AND (cast(cs_item_rev#28 as decimal(19,3)) >= (0.9 * ss_item_rev#17))) AND (cast(cs_item_rev#28 as decimal(20,3)) <= (1.1 * ss_item_rev#17))) -(100) Project [codegen id : 1] +(100) Project [codegen id : X] Output [3]: [item_id#16, ss_item_rev#17, cs_item_rev#28] Input [4]: [item_id#16, ss_item_rev#17, item_id#27, cs_item_rev#28] @@ -834,13 +834,13 @@ Condition : isnotnull(ws_item_rev#39) Input [2]: [item_id#38, ws_item_rev#39] Arguments: [item_id#38 ASC NULLS FIRST], false -(140) SortMergeJoin [codegen id : 2] +(140) SortMergeJoin [codegen id : X] Left keys [1]: [item_id#16] Right keys [1]: [item_id#38] Join type: Inner Join condition: ((((((((cast(ss_item_rev#17 as decimal(19,3)) >= (0.9 * ws_item_rev#39)) AND (cast(ss_item_rev#17 as decimal(20,3)) <= (1.1 * ws_item_rev#39))) AND (cast(cs_item_rev#28 as decimal(19,3)) >= (0.9 * ws_item_rev#39))) AND (cast(cs_item_rev#28 as decimal(20,3)) <= (1.1 * ws_item_rev#39))) AND (cast(ws_item_rev#39 as decimal(19,3)) >= (0.9 * ss_item_rev#17))) AND (cast(ws_item_rev#39 as decimal(20,3)) <= (1.1 * ss_item_rev#17))) AND (cast(ws_item_rev#39 as decimal(19,3)) >= (0.9 * cs_item_rev#28))) AND (cast(ws_item_rev#39 as decimal(20,3)) <= (1.1 * cs_item_rev#28))) -(141) Project [codegen id : 2] +(141) Project [codegen id : X] Output [8]: [item_id#16, ss_item_rev#17, (((ss_item_rev#17 / ((ss_item_rev#17 + cs_item_rev#28) + ws_item_rev#39)) / 3) * 100) AS ss_dev#40, cs_item_rev#28, (((cs_item_rev#28 / ((ss_item_rev#17 + cs_item_rev#28) + ws_item_rev#39)) / 3) * 100) AS cs_dev#41, ws_item_rev#39, (((ws_item_rev#39 / ((ss_item_rev#17 + cs_item_rev#28) + ws_item_rev#39)) / 3) * 100) AS ws_dev#42, (((ss_item_rev#17 + cs_item_rev#28) + ws_item_rev#39) / 3) AS average#43] Input [5]: [item_id#16, ss_item_rev#17, cs_item_rev#28, item_id#38, ws_item_rev#39] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt index ddadc008a..ea9187c71 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q6.txt @@ -471,13 +471,13 @@ Condition : isnotnull(avg(i_current_price)#22) Input [2]: [avg(i_current_price)#22, i_category#16] Arguments: [i_category#16 ASC NULLS FIRST], false -(76) SortMergeJoin [codegen id : 1] +(76) SortMergeJoin [codegen id : X] Left keys [1]: [i_category#14] Right keys [1]: [i_category#16] Join type: Inner Join condition: (cast(i_current_price#13 as decimal(14,7)) > (1.2 * avg(i_current_price)#22)) -(77) Project [codegen id : 1] +(77) Project [codegen id : X] Output [1]: [i_item_sk#12] Input [5]: [#12#12, #13#13, #14#14, avg(i_current_price)#22, i_category#16] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt index 8982df027..b8eabc015 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q61.txt @@ -1040,7 +1040,7 @@ Input [1]: [sum(UnscaledValue(ss_ext_sales_price#31))#40] Join type: Inner Join condition: None -(180) Project [codegen id : 1] +(180) Project [codegen id : X] Output [3]: [promotions#26, total#41, ((cast(promotions#26 as decimal(15,4)) / cast(total#41 as decimal(15,4))) * 100) AS ((CAST(promotions AS DECIMAL(15,4)) / CAST(total AS DECIMAL(15,4))) * 100)#42] Input [2]: [promotions#26, total#41] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt index ee2729f35..1ef1f32bd 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q63.txt @@ -380,11 +380,11 @@ Arguments: [i_manager_id#5 ASC NULLS FIRST], false Input [3]: [i_manager_id#5, sum_sales#22, _w0#23] Arguments: [avg(_w0#23) windowspecdefinition(i_manager_id#5, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS avg_monthly_sales#24], [i_manager_id#5] -(65) Filter [codegen id : 1] +(65) Filter [codegen id : X] Input [4]: [i_manager_id#5, sum_sales#22, _w0#23, avg_monthly_sales#24] Condition : CASE WHEN (avg_monthly_sales#24 > 0.000000) THEN ((abs((sum_sales#22 - avg_monthly_sales#24)) / avg_monthly_sales#24) > 0.1000000000000000) ELSE false END -(66) Project [codegen id : 1] +(66) Project [codegen id : X] Output [3]: [i_manager_id#5, sum_sales#22, avg_monthly_sales#24] Input [4]: [i_manager_id#5, sum_sales#22, _w0#23, avg_monthly_sales#24] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt index 939461e22..d4bbb1865 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q64.txt @@ -1455,13 +1455,13 @@ Input [2]: [#50#50, #51#51] Input [2]: [#50#50, #51#51] Arguments: [cd_demo_sk#50 ASC NULLS FIRST], false -(154) SortMergeJoin [codegen id : 1] +(154) SortMergeJoin [codegen id : X] Left keys [1]: [c_current_cdemo_sk#39] Right keys [1]: [cd_demo_sk#50] Join type: Inner Join condition: NOT (cd_marital_status#49 = cd_marital_status#51) -(155) Project [codegen id : 1] +(155) Project [codegen id : X] Output [14]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47] Input [18]: [ss_item_sk#2, ss_hdemo_sk#5, ss_addr_sk#6, ss_promo_sk#8, ss_wholesale_cost#10, ss_list_price#11, ss_coupon_amt#12, d_year#34, s_store_name#36, s_zip#37, c_current_cdemo_sk#39, c_current_hdemo_sk#40, c_current_addr_sk#41, d_year#45, d_year#47, cd_marital_status#49, #50#50, #51#51] @@ -2343,13 +2343,13 @@ Input [2]: [#129#129, #130#130] Input [2]: [#129#129, #130#130] Arguments: [cd_demo_sk#129 ASC NULLS FIRST], false -(373) SortMergeJoin [codegen id : 2] +(373) SortMergeJoin [codegen id : X] Left keys [1]: [c_current_cdemo_sk#118] Right keys [1]: [cd_demo_sk#129] Join type: Inner Join condition: NOT (cd_marital_status#128 = cd_marital_status#130) -(374) Project [codegen id : 2] +(374) Project [codegen id : X] Output [14]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126] Input [18]: [ss_item_sk#102, ss_hdemo_sk#105, ss_addr_sk#106, ss_promo_sk#108, ss_wholesale_cost#109, ss_list_price#110, ss_coupon_amt#111, d_year#113, s_store_name#115, s_zip#116, c_current_cdemo_sk#118, c_current_hdemo_sk#119, c_current_addr_sk#120, d_year#124, d_year#126, cd_marital_status#128, #129#129, #130#130] @@ -2805,13 +2805,13 @@ Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#1 Input [8]: [item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] Arguments: [item_sk#156 ASC NULLS FIRST, store_name#157 ASC NULLS FIRST, store_zip#158 ASC NULLS FIRST], false -(489) SortMergeJoin [codegen id : 3] +(489) SortMergeJoin [codegen id : X] Left keys [3]: [item_sk#85, store_name#86, store_zip#87] Right keys [3]: [item_sk#156, store_name#157, store_zip#158] Join type: Inner Join condition: (cnt#160 <= cnt#97) -(490) Project [codegen id : 3] +(490) Project [codegen id : X] Output [21]: [product_name#84, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, s1#161, s2#162, s3#163, syear#159, cnt#160] Input [25]: [product_name#84, item_sk#85, store_name#86, store_zip#87, b_street_number#88, b_streen_name#89, b_city#90, b_zip#91, c_street_number#92, c_street_name#93, c_city#94, c_zip#95, syear#96, cnt#97, s1#98, s2#99, s3#100, item_sk#156, store_name#157, store_zip#158, syear#159, cnt#160, s1#161, s2#162, s3#163] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt index fb0e3489d..5928cccc2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q65.txt @@ -570,13 +570,13 @@ Condition : isnotnull(ave#31) Input [2]: [ss_store_sk#21, ave#31] Arguments: [ss_store_sk#21 ASC NULLS FIRST], false -(97) SortMergeJoin [codegen id : 1] +(97) SortMergeJoin [codegen id : X] Left keys [1]: [ss_store_sk#5] Right keys [1]: [ss_store_sk#21] Join type: Inner Join condition: (cast(revenue#13 as decimal(23,7)) <= (0.1 * ave#31)) -(98) Project [codegen id : 1] +(98) Project [codegen id : X] Output [6]: [s_store_name#2, i_item_desc#15, revenue#13, i_current_price#16, i_wholesale_cost#17, i_brand#18] Input [9]: [s_store_name#2, ss_store_sk#5, revenue#13, i_item_desc#15, i_current_price#16, i_wholesale_cost#17, i_brand#18, ss_store_sk#21, ave#31] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt index eaa4041b7..54b5a1bf2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q68.txt @@ -564,13 +564,13 @@ Input [2]: [#38#38, #39#39] Input [2]: [#38#38, #39#39] Arguments: [ca_address_sk#38 ASC NULLS FIRST], false -(97) SortMergeJoin [codegen id : 1] +(97) SortMergeJoin [codegen id : X] Left keys [1]: [c_current_addr_sk#35] Right keys [1]: [ca_address_sk#38] Join type: Inner Join condition: NOT (ca_city#39 = bought_city#30) -(98) Project [codegen id : 1] +(98) Project [codegen id : X] Output [8]: [c_last_name#37, c_first_name#36, ca_city#39, bought_city#30, ss_ticket_number#6, extended_price#31, extended_tax#33, list_price#32] Input [10]: [ss_ticket_number#6, bought_city#30, extended_price#31, list_price#32, extended_tax#33, c_current_addr_sk#35, c_first_name#36, c_last_name#37, #38#38, #39#39] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt index 7a82f1cd3..549f619c2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q72.txt @@ -327,13 +327,13 @@ Input [4]: [#9#9, #10#10, #11#11, #12#12] Input [4]: [#9#9, #10#10, #11#11, #12#12] Arguments: [inv_item_sk#10 ASC NULLS FIRST], false -(17) SortMergeJoin [codegen id : 1] +(17) SortMergeJoin [codegen id : X] Left keys [1]: [cs_item_sk#5] Right keys [1]: [inv_item_sk#10] Join type: Inner Join condition: (inv_quantity_on_hand#12 < cs_quantity#8) -(18) Project [codegen id : 1] +(18) Project [codegen id : X] Output [9]: [cs_sold_date_sk#1, cs_ship_date_sk#2, cs_bill_cdemo_sk#3, cs_bill_hdemo_sk#4, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, inv_date_sk#9, inv_warehouse_sk#11] Input [12]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7, #8#8, #9#9, #10#10, #11#11, #12#12] @@ -783,13 +783,13 @@ Input [2]: [#27#27, #28#28] Input [2]: [#27#27, #28#28] Arguments: [d_date_sk#27 ASC NULLS FIRST], false -(126) SortMergeJoin [codegen id : 2] +(126) SortMergeJoin [codegen id : X] Left keys [1]: [cs_ship_date_sk#2] Right keys [1]: [d_date_sk#27] Join type: Inner Join condition: (d_date#28 > date_add(d_date#22, 5)) -(127) Project [codegen id : 2] +(127) Project [codegen id : X] Output [6]: [cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_week_seq#23] Input [10]: [cs_ship_date_sk#2, cs_item_sk#5, cs_promo_sk#6, cs_order_number#7, w_warehouse_name#14, i_item_desc#16, d_date#22, d_week_seq#23, #27#27, #28#28] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt index 1dc81d36b..54fe218fb 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q74.txt @@ -882,13 +882,13 @@ Input [2]: [customer_id#52, year_total#53] Input [2]: [customer_id#52, year_total#53] Arguments: [customer_id#52 ASC NULLS FIRST], false -(150) SortMergeJoin [codegen id : 1] +(150) SortMergeJoin [codegen id : X] Left keys [1]: [customer_id#14] Right keys [1]: [customer_id#52] Join type: Inner Join condition: (CASE WHEN (year_total#42 > 0.00) THEN (year_total#53 / year_total#42) END > CASE WHEN (year_total#15 > 0.00) THEN (year_total#28 / year_total#15) END) -(151) Project [codegen id : 1] +(151) Project [codegen id : X] Output [3]: [customer_id#25, customer_first_name#26, customer_last_name#27] Input [9]: [customer_id#14, year_total#15, customer_id#25, customer_first_name#26, customer_last_name#27, year_total#28, year_total#42, customer_id#52, year_total#53] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt index 34449045a..c15d5a53b 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q75.txt @@ -1553,13 +1553,13 @@ Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufac Input [7]: [d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#113, sales_amt#114] Arguments: [i_brand_id#70 ASC NULLS FIRST, i_class_id#71 ASC NULLS FIRST, i_category_id#72 ASC NULLS FIRST, i_manufact_id#73 ASC NULLS FIRST], false -(267) SortMergeJoin [codegen id : 1] +(267) SortMergeJoin [codegen id : X] Left keys [4]: [i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11] Right keys [4]: [i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73] Join type: Inner Join condition: ((cast(sales_cnt#63 as decimal(17,2)) / cast(sales_cnt#113 as decimal(17,2))) < 0.90000000000000000000) -(268) Project [codegen id : 1] +(268) Project [codegen id : X] Output [10]: [d_year#75 AS prev_year#115, d_year#13 AS year#116, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#113 AS prev_yr_cnt#117, sales_cnt#63 AS curr_yr_cnt#118, (sales_cnt#63 - sales_cnt#113) AS sales_cnt_diff#119, (sales_amt#64 - sales_amt#114) AS sales_amt_diff#120] Input [14]: [d_year#13, i_brand_id#7, i_class_id#8, i_category_id#9, i_manufact_id#11, sales_cnt#63, sales_amt#64, d_year#75, i_brand_id#70, i_class_id#71, i_category_id#72, i_manufact_id#73, sales_cnt#113, sales_amt#114] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt index 62271142c..749504b0e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q77.txt @@ -866,7 +866,7 @@ Input [2]: [sum(UnscaledValue(cr_return_amount#49))#56, sum(UnscaledValue(cr_net Join type: Inner Join condition: None -(123) Project [codegen id : 1] +(123) Project [codegen id : X] Output [5]: [sales#46, returns#58, (profit#47 - profit_loss#59) AS profit#60, catalog channel AS channel#61, cs_call_center_sk#36 AS id#62] Input [5]: [cs_call_center_sk#36, sales#46, profit#47, returns#58, profit_loss#59] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt index 9d4f04e8d..13082e0c7 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q81.txt @@ -603,13 +603,13 @@ Condition : isnotnull((avg(ctr_total_return) * 1.2)#30) Input [2]: [(avg(ctr_total_return) * 1.2)#30, ctr_state#25] Arguments: [ctr_state#25 ASC NULLS FIRST], false -(95) SortMergeJoin [codegen id : 1] +(95) SortMergeJoin [codegen id : X] Left keys [1]: [ctr_state#14] Right keys [1]: [ctr_state#25] Join type: Inner Join condition: (cast(ctr_total_return#15 as decimal(24,7)) > (avg(ctr_total_return) * 1.2)#30) -(96) Project [codegen id : 1] +(96) Project [codegen id : X] Output [2]: [ctr_customer_sk#13, ctr_total_return#15] Input [5]: [ctr_customer_sk#13, ctr_state#14, ctr_total_return#15, (avg(ctr_total_return) * 1.2)#30, ctr_state#25] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt index 8c919522a..a0f017b00 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q85.txt @@ -383,13 +383,13 @@ Input [3]: [#17#17, #18#18, #19#19] Input [3]: [#17#17, #18#18, #19#19] Arguments: [cd_demo_sk#17 ASC NULLS FIRST], false -(47) SortMergeJoin [codegen id : 1] +(47) SortMergeJoin [codegen id : X] Left keys [1]: [wr_refunded_cdemo_sk#9] Right keys [1]: [cd_demo_sk#17] Join type: Inner Join condition: ((((((cd_marital_status#18 = M) AND (cd_education_status#19 = Advanced Degree)) AND (ws_sales_price#6 >= 100.00)) AND (ws_sales_price#6 <= 150.00)) OR ((((cd_marital_status#18 = S) AND (cd_education_status#19 = College)) AND (ws_sales_price#6 >= 50.00)) AND (ws_sales_price#6 <= 100.00))) OR ((((cd_marital_status#18 = W) AND (cd_education_status#19 = 2 yr Degree)) AND (ws_sales_price#6 >= 150.00)) AND (ws_sales_price#6 <= 200.00))) -(48) Project [codegen id : 1] +(48) Project [codegen id : X] Output [10]: [ws_sold_date_sk#1, ws_quantity#5, ws_net_profit#7, wr_refunded_addr_sk#10, wr_returning_cdemo_sk#11, wr_reason_sk#12, wr_fee#14, wr_refunded_cash#15, cd_marital_status#18, cd_education_status#19] Input [13]: [ws_sold_date_sk#1, ws_quantity#5, ws_sales_price#6, ws_net_profit#7, wr_refunded_cdemo_sk#9, wr_refunded_addr_sk#10, wr_returning_cdemo_sk#11, wr_reason_sk#12, wr_fee#14, wr_refunded_cash#15, #17#17, #18#18, #19#19] @@ -516,13 +516,13 @@ Input [2]: [ca_address_sk#23, ca_state#24] Input [2]: [ca_address_sk#23, ca_state#24] Arguments: [ca_address_sk#23 ASC NULLS FIRST], false -(79) SortMergeJoin [codegen id : 2] +(79) SortMergeJoin [codegen id : X] Left keys [1]: [wr_refunded_addr_sk#10] Right keys [1]: [ca_address_sk#23] Join type: Inner Join condition: ((((ca_state#24 IN (IN,OH,NJ) AND (ws_net_profit#7 >= 100.00)) AND (ws_net_profit#7 <= 200.00)) OR ((ca_state#24 IN (WI,CT,KY) AND (ws_net_profit#7 >= 150.00)) AND (ws_net_profit#7 <= 300.00))) OR ((ca_state#24 IN (LA,IA,AR) AND (ws_net_profit#7 >= 50.00)) AND (ws_net_profit#7 <= 250.00))) -(80) Project [codegen id : 2] +(80) Project [codegen id : X] Output [5]: [ws_sold_date_sk#1, ws_quantity#5, wr_reason_sk#12, wr_fee#14, wr_refunded_cash#15] Input [9]: [ws_sold_date_sk#1, ws_quantity#5, ws_net_profit#7, wr_refunded_addr_sk#10, wr_reason_sk#12, wr_fee#14, wr_refunded_cash#15, ca_address_sk#23, ca_state#24] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt index d30612f52..f10023e4e 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q89.txt @@ -374,11 +374,11 @@ Arguments: [i_category#4 ASC NULLS FIRST, i_brand#2 ASC NULLS FIRST, s_store_nam Input [8]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, sum_sales#19, _w0#20] Arguments: [avg(_w0#20) windowspecdefinition(i_category#4, i_brand#2, s_store_name#13, s_company_name#14, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS avg_monthly_sales#21], [i_category#4, i_brand#2, s_store_name#13, s_company_name#14] -(64) Filter [codegen id : 1] +(64) Filter [codegen id : X] Input [9]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, sum_sales#19, _w0#20, avg_monthly_sales#21] Condition : CASE WHEN NOT (avg_monthly_sales#21 = 0.000000) THEN ((abs((sum_sales#19 - avg_monthly_sales#21)) / avg_monthly_sales#21) > 0.1000000000000000) END -(65) Project [codegen id : 1] +(65) Project [codegen id : X] Output [8]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, sum_sales#19, avg_monthly_sales#21] Input [9]: [i_category#4, i_class#3, i_brand#2, s_store_name#13, s_company_name#14, d_moy#11, sum_sales#19, _w0#20, avg_monthly_sales#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt index 47b42a416..d8a3027f9 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q90.txt @@ -556,7 +556,7 @@ Input [1]: [count(1)#20] Join type: Inner Join condition: None -(93) Project [codegen id : 1] +(93) Project [codegen id : X] Output [1]: [(cast(amc#13 as decimal(15,4)) / cast(pmc#21 as decimal(15,4))) AS am_pm_ratio#22] Input [2]: [amc#13, pmc#21] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt index 35bbc3a43..b9c1a72db 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q92.txt @@ -324,13 +324,13 @@ Condition : isnotnull((1.3 * avg(ws_ext_discount_amt))#16) Input [2]: [(1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] Arguments: [ws_item_sk#7 ASC NULLS FIRST], false -(49) SortMergeJoin [codegen id : 1] +(49) SortMergeJoin [codegen id : X] Left keys [1]: [i_item_sk#4] Right keys [1]: [ws_item_sk#7] Join type: Inner Join condition: (cast(ws_ext_discount_amt#3 as decimal(14,7)) > (1.3 * avg(ws_ext_discount_amt))#16) -(50) Project [codegen id : 1] +(50) Project [codegen id : X] Output [2]: [ws_sold_date_sk#1, ws_ext_discount_amt#3] Input [5]: [ws_sold_date_sk#1, ws_ext_discount_amt#3, i_item_sk#4, (1.3 * avg(ws_ext_discount_amt))#16, ws_item_sk#7] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt index e5c42c661..e7ee656a2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q94.txt @@ -199,13 +199,13 @@ Input [2]: [#8#8, #9#9] Input [2]: [#8#8, #9#9] Arguments: [ws_order_number#9 ASC NULLS FIRST], false -(16) SortMergeJoin [codegen id : 1] +(16) SortMergeJoin [codegen id : X] Left keys [1]: [ws_order_number#5] Right keys [1]: [ws_order_number#9] Join type: LeftSemi Join condition: NOT (ws_warehouse_sk#4 = ws_warehouse_sk#8) -(17) Project [codegen id : 1] +(17) Project [codegen id : X] Output [6]: [ws_ship_date_sk#1, ws_ship_addr_sk#2, ws_web_site_sk#3, ws_order_number#5, ws_ext_ship_cost#6, ws_net_profit#7] Input [7]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt index bdb6cc9aa..071b6b1d2 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q95.txt @@ -271,13 +271,13 @@ Input [2]: [#9#9, #10#10] Input [2]: [#9#9, #10#10] Arguments: [ws_order_number#10 ASC NULLS FIRST], false -(23) SortMergeJoin [codegen id : 1] +(23) SortMergeJoin [codegen id : X] Left keys [1]: [ws_order_number#8] Right keys [1]: [ws_order_number#10] Join type: Inner Join condition: NOT (ws_warehouse_sk#7 = ws_warehouse_sk#9) -(24) Project [codegen id : 1] +(24) Project [codegen id : X] Output [1]: [ws_order_number#8] Input [4]: [#7#7, #8#8, #9#9, #10#10] @@ -368,13 +368,13 @@ Input [2]: [#14#14, #15#15] Input [2]: [#14#14, #15#15] Arguments: [ws_order_number#15 ASC NULLS FIRST], false -(47) SortMergeJoin [codegen id : 2] +(47) SortMergeJoin [codegen id : X] Left keys [1]: [ws_order_number#13] Right keys [1]: [ws_order_number#15] Join type: Inner Join condition: NOT (ws_warehouse_sk#12 = ws_warehouse_sk#14) -(48) Project [codegen id : 2] +(48) Project [codegen id : X] Output [1]: [ws_order_number#13] Input [4]: [#12#12, #13#13, #14#14, #15#15] diff --git a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt index cfd7c223e..757795c14 100644 --- a/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt +++ b/dev/auron-it/src/main/resources/tpcds-plan-stability/spark-3.5/q98.txt @@ -293,7 +293,7 @@ Arguments: [i_class#8 ASC NULLS FIRST], false Input [7]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, _w0#17, i_item_id#5] Arguments: [sum(_w0#17) windowspecdefinition(i_class#8, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#18], [i_class#8] -(49) Project [codegen id : 1] +(49) Project [codegen id : X] Output [7]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, ((_w0#17 * 100) / _we0#18) AS revenueratio#19, i_item_id#5] Input [8]: [i_item_desc#6, i_category#9, i_class#8, i_current_price#7, itemrevenue#16, _w0#17, i_item_id#5, _we0#18] diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala index 39b17f529..3ea8aaecb 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala @@ -118,6 +118,7 @@ class PlanStabilityChecker( .replaceAll("Arguments: [0-9]+", "Arguments: X") .replaceAll("Scan parquet ", "Scan parquet") .replaceAll("Statistics[(A-Za-z0-9=. ,+)]*", "Statistics(X)") + .replaceAll("\\[codegen id : [0-9]+\\]", "[codegen id : X]") normalizeLocation(argumentsNormalized) } diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala index 0a3ae8ceb..ff11a0928 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala @@ -76,7 +76,7 @@ class TPCDSSuite(args: SuiteArgs) extends Suite(args) with TPCDSFeatures { } } - if (args.enablePlanCheck) { + if (args.enablePlanCheck || args.regenGoldenFiles) { baseComparisons.foreach(comparisonResult => { val testResult = auronResults(comparisonResult.queryId) val planStable = planStabilityChecker.validate(testResult) From e11e71b38e899ce23d78eff5143d92d9924f7e19 Mon Sep 17 00:00:00 2001 From: yew1eb Date: Mon, 19 Jan 2026 21:11:02 +0800 Subject: [PATCH 2/2] rebase --- dev/auron-it/pom.xml | 64 +++++++++++++++++++ .../org/apache/auron/integration/Main.scala | 2 + .../auron/integration/QueryRunner.scala | 3 +- .../auron/integration/SessionManager.scala | 2 + .../comparison/PlanStabilityChecker.scala | 2 + .../comparison/QueryResultComparator.scala | 3 + .../integration/tpcds/TPCDSFeatures.scala | 2 + .../auron/integration/tpcds/TPCDSSuite.scala | 6 +- dev/checkstyle.xml | 4 -- dev/scalastyle-config.xml | 8 +-- 10 files changed, 85 insertions(+), 11 deletions(-) diff --git a/dev/auron-it/pom.xml b/dev/auron-it/pom.xml index fe2ca581a..1360697f6 100644 --- a/dev/auron-it/pom.xml +++ b/dev/auron-it/pom.xml @@ -81,6 +81,70 @@ + + + org.apache.maven.plugins + maven-checkstyle-plugin + ${checkstyle-plugin.version} + + true + true + + ${project.basedir}/src/main/java + ${project.basedir}/src/main/scala + + + ${project.basedir}/src/test/java + + ${maven.multiModuleProjectDirectory}/../../dev/checkstyle-suppressions.xml + ${maven.multiModuleProjectDirectory}/../../dev/checkstyle.xml + ${project.basedir}/target/checkstyle-output.xml + UTF-8 + UTF-8 + + + + com.puppycrawl.tools + checkstyle + 8.29 + + + + + + check + + validate + + + + + + org.scalastyle + scalastyle-maven-plugin + ${maven.plugin.scalastyle.version} + + false + true + false + false + ${basedir}/src/main/scala + ${basedir}/src/test/scala + ${maven.multiModuleProjectDirectory}/../../dev/scalastyle-config.xml + ${basedir}/target/scalastyle-output.xml + ${project.build.sourceEncoding} + ${project.reporting.outputEncoding} + + + + + check + + validate + + + + com.diffplug.spotless diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/Main.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/Main.scala index ca85ec970..48a7c4cce 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/Main.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/Main.scala @@ -71,6 +71,7 @@ object Main { OParser.parse(parser, args, SuiteArgs()) } + // scalastyle:off def main(mainArgs: Array[String]): Unit = { parseArgs(mainArgs) match { case Some(args) => @@ -124,3 +125,4 @@ object Main { println("") } } +// scalastyle:on diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/QueryRunner.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/QueryRunner.scala index 214ac8e14..8127c9fe4 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/QueryRunner.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/QueryRunner.scala @@ -52,7 +52,7 @@ class QueryRunner(readQuery: String => String) { } val durationSec = (System.currentTimeMillis() - startTime) / 1000.0 - + // scalastyle:off println result match { case Success((rows, rowCount, planStr)) => println(s"Query $queryId executed successfully in $durationSec seconds.") @@ -75,5 +75,6 @@ class QueryRunner(readQuery: String => String) { plan = "", errorMsg = Some(e.getMessage)) } + // scalastyle:on } } diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/SessionManager.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/SessionManager.scala index 99ce70b47..3e65e2e3a 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/SessionManager.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/SessionManager.scala @@ -53,6 +53,7 @@ class SessionManager(val extraSparkConf: Map[String, String]) { def auronSession: SparkSession = getOrSwitch("auron", "auron-app") + // scalastyle:off println private def getOrSwitch(mode: String, appName: String): SparkSession = synchronized { if (currentMode.contains(mode) && currentSession.isDefined) { currentSession.get @@ -98,4 +99,5 @@ class SessionManager(val extraSparkConf: Map[String, String]) { stopCurrentSession() println("SparkSession closed.") } + // scalastyle:on } diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala index 3ea8aaecb..3c7ecd53a 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/PlanStabilityChecker.scala @@ -33,6 +33,7 @@ class PlanStabilityChecker( regenGoldenFiles: Boolean = false, planCheck: Boolean = false) { + // scalastyle:off println private lazy val isSupported: Boolean = Shims.get.shimVersion match { case "spark-3.5" => true case other => @@ -122,4 +123,5 @@ class PlanStabilityChecker( normalizeLocation(argumentsNormalized) } + // scalastyle:on } diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/QueryResultComparator.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/QueryResultComparator.scala index 521c50467..9c99b1f54 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/QueryResultComparator.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/comparison/QueryResultComparator.scala @@ -38,6 +38,8 @@ trait QueryComparator { class QueryResultComparator extends QueryComparator { private val colSep = "<|COL|>" + + // scalastyle:off println override def compare( baseline: QueryExecutionResult, test: QueryExecutionResult): ComparisonResult = { @@ -136,4 +138,5 @@ class QueryResultComparator extends QueryComparator { } true } + // scalastyle:on } diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSFeatures.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSFeatures.scala index 623ec25c1..86e3b2038 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSFeatures.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSFeatures.scala @@ -156,6 +156,7 @@ trait TPCDSFeatures { "time_dim", "web_page") + // scalastyle:off def setupTables(dataLocation: String, spark: SparkSession): Map[String, Long] = { println(s"Setting up TPC-DS tables from: $dataLocation") tpcdsTables.map { tableName => @@ -211,3 +212,4 @@ trait TPCDSFeatures { path.toFile } } +// scalastyle:on diff --git a/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala b/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala index ff11a0928..2f4aa16f7 100644 --- a/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala +++ b/dev/auron-it/src/main/scala/org/apache/auron/integration/tpcds/TPCDSSuite.scala @@ -34,6 +34,7 @@ class TPCDSSuite(args: SuiteArgs) extends Suite(args) with TPCDSFeatures { regenGoldenFiles = args.regenGoldenFiles, planCheck = args.enablePlanCheck) + // scalastyle:off println override def run(): Int = { val queries = filterQueries(args.queryFilter) if (queries.isEmpty) { @@ -135,7 +136,7 @@ class TPCDSSuite(args: SuiteArgs) extends Suite(args) with TPCDSFeatures { private def printPlanStability(results: Seq[ComparisonResult]): Unit = { println("\n" + "=" * 60) println(s"Auron Plan Stability (${Shims.get.shimVersion})") - println("−" * 60) + println("-" * 60) println(f"${"Query"}%-6s ${"Stable"}%-7s") println("-" * 60) results.foreach { r => @@ -153,11 +154,12 @@ class TPCDSSuite(args: SuiteArgs) extends Suite(args) with TPCDSFeatures { val totalUpdated = ids.size println("\n" + "=" * 60) println(s"Auron Golden Files (${Shims.get.shimVersion})") - println("−" * 60) + println("-" * 60) println(s"Updated queries: $totalUpdated") println(ids.mkString("- ", ", ", "")) println(s"Output directory: ${goldenOutputDir}") } + // scalastyle:on } object TPCDSSuite { diff --git a/dev/checkstyle.xml b/dev/checkstyle.xml index 1431638b3..d7c85a425 100644 --- a/dev/checkstyle.xml +++ b/dev/checkstyle.xml @@ -48,10 +48,6 @@ - - - - diff --git a/dev/scalastyle-config.xml b/dev/scalastyle-config.xml index f5b517a02..27b608f85 100644 --- a/dev/scalastyle-config.xml +++ b/dev/scalastyle-config.xml @@ -294,7 +294,7 @@ This file is divided into 3 sections: Use contentEquals of SparkFileUtils or Utils instead. - + \bFiles\.toByteArray\b Use java.nio.file.Files.readAllBytes instead. @@ -304,7 +304,7 @@ This file is divided into 3 sections: Use java.nio.file.Files.newInputStream instead. - + \bFileUtils\.getTempDirectory\b Use System.getProperty instead. @@ -435,7 +435,7 @@ This file is divided into 3 sections: Use touch of SparkFileUtil or Utils instead. - + \bFileUtils\.writeStringToFile\b Use java.nio.file.Files.writeString instead. @@ -506,7 +506,7 @@ This file is divided into 3 sections: Use java.util.HexFormat instead - + org\.apache\.commons\.io\.FileUtils\b Use Java API or Spark's JavaUtils/SparkSystemUtils/Utils instead