This is an automated email from the ASF dual-hosted git repository.

csy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/auron.git


The following commit(s) were added to refs/heads/master by this push:
     new 36641da2 [AURON #1907][CI] Fix YAML syntax error and restore TPCDS CI 
execution (#1908)
36641da2 is described below

commit 36641da2a40a7615ef578c44a89f028398424386
Author: yew1eb <[email protected]>
AuthorDate: Tue Jan 20 10:48:28 2026 +0800

    [AURON #1907][CI] Fix YAML syntax error and restore TPCDS CI execution 
(#1908)
    
    # Which issue does this PR close?
    
    Closes #1907
    
    # Rationale for this change
    
    # What changes are included in this PR?
    1. Fix YAML syntax errors in `tpcds-reusable.yml` blocking TPCDS CI
    execution.
    2. Fix the issue that `auron-it` integration in CI became ineffective
    after recent PR merges.
    3. Normalize unstable TPCDS suite codegen IDs (Scala 2.12/2.13, plan
    stable) by replacing numbers (e.g., 132) with 'X'.
    4. Increase memory allocation to avoid failures caused by high memory
    consumption of some queries.
    
    
    # Are there any user-facing changes?
    
    # How was this patch tested?
---
 .github/workflows/tpcds-reusable.yml               | 81 ++++++++--------------
 dev/auron-it/pom.xml                               | 64 +++++++++++++++++
 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 +-
 .../scala/org/apache/auron/integration/Main.scala  |  2 +
 .../org/apache/auron/integration/QueryRunner.scala |  3 +-
 .../apache/auron/integration/SessionManager.scala  |  2 +
 .../comparison/PlanStabilityChecker.scala          |  3 +
 .../comparison/QueryResultComparator.scala         |  3 +
 .../auron/integration/tpcds/TPCDSFeatures.scala    |  2 +
 .../auron/integration/tpcds/TPCDSSuite.scala       |  8 ++-
 dev/checkstyle.xml                                 |  4 --
 dev/scalastyle-config.xml                          |  8 +--
 50 files changed, 215 insertions(+), 161 deletions(-)

diff --git a/.github/workflows/tpcds-reusable.yml 
b/.github/workflows/tpcds-reusable.yml
index e165c802..156b7662 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/pom.xml b/dev/auron-it/pom.xml
index fe2ca581..1360697f 100644
--- a/dev/auron-it/pom.xml
+++ b/dev/auron-it/pom.xml
@@ -81,6 +81,70 @@
 
   <build>
     <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle-plugin.version}</version>
+        <configuration>
+          <failOnViolation>true</failOnViolation>
+          <includeTestSourceDirectory>true</includeTestSourceDirectory>
+          <sourceDirectories>
+            <directory>${project.basedir}/src/main/java</directory>
+            <directory>${project.basedir}/src/main/scala</directory>
+          </sourceDirectories>
+          <testSourceDirectories>
+            <directory>${project.basedir}/src/test/java</directory>
+          </testSourceDirectories>
+          
<suppressionsLocation>${maven.multiModuleProjectDirectory}/../../dev/checkstyle-suppressions.xml</suppressionsLocation>
+          
<configLocation>${maven.multiModuleProjectDirectory}/../../dev/checkstyle.xml</configLocation>
+          
<outputFile>${project.basedir}/target/checkstyle-output.xml</outputFile>
+          <inputEncoding>UTF-8</inputEncoding>
+          <outputEncoding>UTF-8</outputEncoding>
+        </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>com.puppycrawl.tools</groupId>
+            <artifactId>checkstyle</artifactId>
+            <version>8.29</version>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <phase>validate</phase>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.scalastyle</groupId>
+        <artifactId>scalastyle-maven-plugin</artifactId>
+        <version>${maven.plugin.scalastyle.version}</version>
+        <configuration>
+          <verbose>false</verbose>
+          <failOnViolation>true</failOnViolation>
+          <includeTestSourceDirectory>false</includeTestSourceDirectory>
+          <failOnWarning>false</failOnWarning>
+          <sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
+          <testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
+          
<configLocation>${maven.multiModuleProjectDirectory}/../../dev/scalastyle-config.xml</configLocation>
+          <outputFile>${basedir}/target/scalastyle-output.xml</outputFile>
+          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
+          <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <phase>validate</phase>
+          </execution>
+        </executions>
+      </plugin>
+
       <!-- spotless -->
       <plugin>
         <groupId>com.diffplug.spotless</groupId>
diff --git a/dev/auron-it/run-it.sh b/dev/auron-it/run-it.sh
index 8e0e694b..eccc9a67 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 b10e1f18..de3b33da 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 dee50721..0011be99 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 0c56ed9f..b20a8ba8 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 a952eab9..3d7d4e40 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 [...]
 
-(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 dee7e500..e4d563b2 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 67a27cdf..51e29498 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 dc7466d2..0e7874f2 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 bd2f2a6f..00c8b6a6 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), [...]
 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 2d1e4f16..fcaa6348 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 b5171f3e..aef8ca2e 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 d11981af..d4188dec 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 e4d065e0..f18f5a44 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 2c538c30..58b55aaa 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 f8d465d6..ec305917 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 23a5d664..edc49e4a 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 dcba247f..fa045281 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 548e344a..9f404f29 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 110758e1..1143f107 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 ac282457..17fb351f 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 1887feee..b93dc834 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 [...]
 
-(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 ddadc008..ea9187c7 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 8982df02..b8eabc01 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 ee2729f3..1ef1f32b 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 939461e2..d4bbb186 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 fb0e3489..5928cccc 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 eaa4041b..54b5a1bf 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 7a82f1cd..549f619c 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 1dc81d36..54fe218f 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 34449045..c15d5a53 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 62271142..749504b0 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 9d4f04e8..13082e0c 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 8c919522..a0f017b0 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 d30612f5..f10023e4 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 47b42a41..d8a3027f 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 35bbc3a4..b9c1a72d 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 e5c42c66..e7ee656a 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 bdb6cc9a..071b6b1d 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 cfd7c223..757795c1 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/Main.scala 
b/dev/auron-it/src/main/scala/org/apache/auron/integration/Main.scala
index ca85ec97..48a7c4cc 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 214ac8e1..8127c9fe 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 99ce70b4..3e65e2e3 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 39b17f52..3c7ecd53 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 =>
@@ -118,7 +119,9 @@ 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)
   }
+  // 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 521c5046..9c99b1f5 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 623ec25c..86e3b203 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 0a3ae8ce..2f4aa16f 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) {
@@ -76,7 +77,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)
@@ -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 1431638b..d7c85a42 100644
--- a/dev/checkstyle.xml
+++ b/dev/checkstyle.xml
@@ -48,10 +48,6 @@
 
     <property name="fileExtensions" value="java, properties, xml"/>
 
-    <module name="SuppressionFilter">
-      <property name="file" value="dev/checkstyle-suppressions.xml"/>
-    </module>
-
     <!-- Checks for whitespace                               -->
     <!-- See http://checkstyle.sf.net/config_whitespace.html -->
     <module name="FileTabCharacter">
diff --git a/dev/scalastyle-config.xml b/dev/scalastyle-config.xml
index f5b517a0..27b608f8 100644
--- a/dev/scalastyle-config.xml
+++ b/dev/scalastyle-config.xml
@@ -294,7 +294,7 @@ This file is divided into 3 sections:
     <customMessage>Use contentEquals of SparkFileUtils or Utils 
instead.</customMessage>
   </check>
 
-  <check customId="toByteArray" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="true">
+  <check customId="toByteArray" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="disable">
     <parameters><parameter 
name="regex">\bFiles\.toByteArray\b</parameter></parameters>
     <customMessage>Use java.nio.file.Files.readAllBytes 
instead.</customMessage>
   </check>
@@ -304,7 +304,7 @@ This file is divided into 3 sections:
     <customMessage>Use java.nio.file.Files.newInputStream 
instead.</customMessage>
   </check>
 
-  <check customId="getTempDirectory" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="true">
+  <check customId="getTempDirectory" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="disable">
     <parameters><parameter 
name="regex">\bFileUtils\.getTempDirectory\b</parameter></parameters>
     <customMessage>Use System.getProperty instead.</customMessage>
   </check>
@@ -435,7 +435,7 @@ This file is divided into 3 sections:
     <customMessage>Use touch of SparkFileUtil or Utils instead.</customMessage>
   </check>
 
-  <check customId="writeStringToFile" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="true">
+  <check customId="writeStringToFile" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="disable">
     <parameters><parameter 
name="regex">\bFileUtils\.writeStringToFile\b</parameter></parameters>
     <customMessage>Use java.nio.file.Files.writeString instead.</customMessage>
   </check>
@@ -506,7 +506,7 @@ This file is divided into 3 sections:
     <customMessage>Use java.util.HexFormat instead</customMessage>
   </check>
 
-  <check customId="commonsiofileutils" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="true">
+  <check customId="commonsiofileutils" level="error" 
class="org.scalastyle.file.RegexChecker" enabled="disable">
     <parameters><parameter 
name="regex">org\.apache\.commons\.io\.FileUtils\b</parameter></parameters>
     <customMessage>Use Java API or Spark's JavaUtils/SparkSystemUtils/Utils 
instead</customMessage>
   </check>

Reply via email to