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

chengchengjin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 622f6b7b0d [VL] Support decimal as double in gluten-it (#9472)
622f6b7b0d is described below

commit 622f6b7b0dbb1d1f82b91c7fdce273c7808eb5e3
Author: Jin Chengcheng <[email protected]>
AuthorDate: Fri May 2 09:29:58 2025 +0100

    [VL] Support decimal as double in gluten-it (#9472)
---
 .../src/main/java/org/apache/gluten/integration/BaseMixin.java   | 9 ++++++---
 .../src/main/scala/org/apache/gluten/integration/Constants.scala | 1 -
 .../src/main/scala/org/apache/gluten/integration/DataGen.scala   | 2 +-
 .../src/main/scala/org/apache/gluten/integration/Suite.scala     | 8 ++++++--
 .../apache/gluten/integration/clickbench/ClickBenchSuite.scala   | 2 ++
 .../main/scala/org/apache/gluten/integration/ds/TpcdsSuite.scala | 7 ++-----
 .../main/scala/org/apache/gluten/integration/h/TpchSuite.scala   | 6 ++----
 7 files changed, 19 insertions(+), 16 deletions(-)

diff --git 
a/tools/gluten-it/common/src/main/java/org/apache/gluten/integration/BaseMixin.java
 
b/tools/gluten-it/common/src/main/java/org/apache/gluten/integration/BaseMixin.java
index ada777e87e..3473730e07 100644
--- 
a/tools/gluten-it/common/src/main/java/org/apache/gluten/integration/BaseMixin.java
+++ 
b/tools/gluten-it/common/src/main/java/org/apache/gluten/integration/BaseMixin.java
@@ -80,6 +80,9 @@ public class BaseMixin {
   @CommandLine.Option(names = {"--scan-partitions"}, description = "Scan 
partition number. This is an approximate value, so the actual scan partition 
number might vary around this value. -1 for letting Spark choose an appropriate 
number.", defaultValue = "-1")
   private int scanPartitions;
 
+  @CommandLine.Option(names = {"--decimal-as-double"}, description = "Generate 
double values for decimal type column", defaultValue = "false")
+  private boolean decimalAsDouble;
+
   @CommandLine.Option(names = {"--extra-conf"}, description = "Extra Spark 
config entries applying to generated Spark session. E.g. --extra-conf=k1=v1 
--extra-conf=k2=v2")
   private Map<String, String> extraSparkConf = Collections.emptyMap();
 
@@ -126,19 +129,19 @@ public class BaseMixin {
         suite = new TpchSuite(runModeEnumeration.getSparkMasterUrl(), actions, 
testConf,
             baselineConf, extraSparkConfScala, level, errorOnMemLeak, dataDir, 
enableUi,
             enableHsUi, hsUiPort, disableAqe, disableBhj,
-            disableWscg, shufflePartitions, scanPartitions, 
baselineMetricMapper, testMetricMapper);
+            disableWscg, shufflePartitions, scanPartitions, decimalAsDouble, 
baselineMetricMapper, testMetricMapper);
         break;
       case "ds":
         suite = new TpcdsSuite(runModeEnumeration.getSparkMasterUrl(), 
actions, testConf,
             baselineConf, extraSparkConfScala, level, errorOnMemLeak, dataDir, 
enableUi,
             enableHsUi, hsUiPort, disableAqe, disableBhj,
-            disableWscg, shufflePartitions, scanPartitions, 
baselineMetricMapper, testMetricMapper);
+            disableWscg, shufflePartitions, scanPartitions,  decimalAsDouble, 
baselineMetricMapper, testMetricMapper);
         break;
       case "clickbench":
         suite = new ClickBenchSuite(runModeEnumeration.getSparkMasterUrl(), 
actions, testConf,
             baselineConf, extraSparkConfScala, level, errorOnMemLeak, dataDir, 
enableUi,
             enableHsUi, hsUiPort, disableAqe, disableBhj,
-            disableWscg, shufflePartitions, scanPartitions, 
baselineMetricMapper, testMetricMapper);
+            disableWscg, shufflePartitions, scanPartitions, decimalAsDouble, 
baselineMetricMapper, testMetricMapper);
         break;
       default:
         throw new IllegalArgumentException("TPC benchmark type not found: " + 
benchmarkType);
diff --git 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Constants.scala
 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Constants.scala
index fe4e986cd2..599af7fd77 100644
--- 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Constants.scala
+++ 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Constants.scala
@@ -162,7 +162,6 @@ object Constants {
       }
     }
 
-  @deprecated
   val TYPE_MODIFIER_DECIMAL_AS_DOUBLE: TypeModifier =
     new TypeModifier(TypeUtils.decimalAccepts, DoubleType) {
       override def modValue(from: Any): Any = {
diff --git 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/DataGen.scala
 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/DataGen.scala
index 6b2d4ec71b..47aa7d423e 100644
--- 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/DataGen.scala
+++ 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/DataGen.scala
@@ -16,7 +16,7 @@
  */
 package org.apache.gluten.integration
 
-import org.apache.spark.sql.types.{DataType, StructField, StructType}
+import org.apache.spark.sql.types.{DataType, DecimalType, DoubleType, 
StructField, StructType}
 
 trait DataGen {
   def gen(): Unit
diff --git 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Suite.scala
 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Suite.scala
index 2e5d781bb5..b240855ed8 100644
--- 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Suite.scala
+++ 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/Suite.scala
@@ -16,15 +16,14 @@
  */
 package org.apache.gluten.integration
 
+import org.apache.gluten.integration.Constants.TYPE_MODIFIER_DECIMAL_AS_DOUBLE
 import org.apache.gluten.integration.action.Action
 import org.apache.gluten.integration.metrics.MetricMapper
-
 import org.apache.spark.SparkConf
 import org.apache.spark.deploy.history.HistoryServerHelper
 import org.apache.spark.network.util.ByteUnit
 import org.apache.spark.sql.ConfUtils.ConfImplicits._
 import org.apache.spark.sql.SparkSessionSwitcher
-
 import org.apache.log4j.{Level, LogManager}
 
 import java.io.File
@@ -46,6 +45,7 @@ abstract class Suite(
     private val disableWscg: Boolean,
     private val shufflePartitions: Int,
     private val scanPartitions: Int,
+    private val decimalAsDouble: Boolean,
     private val baselineMetricMapper: MetricMapper,
     private val testMetricMapper: MetricMapper) {
 
@@ -187,6 +187,10 @@ abstract class Suite(
 
   protected def historyWritePath(): String
 
+  protected[integration] def typeModifiers(): List[TypeModifier] = {
+    if (decimalAsDouble) List(TYPE_MODIFIER_DECIMAL_AS_DOUBLE) else List()
+  }
+
   private[integration] def dataWritePath(scale: Double, genPartitionedData: 
Boolean): String
 
   private[integration] def createDataGen(scale: Double, genPartitionedData: 
Boolean): DataGen
diff --git 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/clickbench/ClickBenchSuite.scala
 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/clickbench/ClickBenchSuite.scala
index 852c934564..207974d354 100644
--- 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/clickbench/ClickBenchSuite.scala
+++ 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/clickbench/ClickBenchSuite.scala
@@ -48,6 +48,7 @@ class ClickBenchSuite(
     val disableWscg: Boolean,
     val shufflePartitions: Int,
     val scanPartitions: Int,
+    val decimalAsDouble: Boolean,
     val baselineMetricMapper: MetricMapper,
     val testMetricMapper: MetricMapper)
   extends Suite(
@@ -66,6 +67,7 @@ class ClickBenchSuite(
     disableWscg,
     shufflePartitions,
     scanPartitions,
+    decimalAsDouble,
     baselineMetricMapper,
     testMetricMapper
   ) {
diff --git 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/ds/TpcdsSuite.scala
 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/ds/TpcdsSuite.scala
index 52a30a2282..cadc844f33 100644
--- 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/ds/TpcdsSuite.scala
+++ 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/ds/TpcdsSuite.scala
@@ -22,7 +22,6 @@ import 
org.apache.gluten.integration.ds.TpcdsSuite.{ALL_QUERY_IDS, HISTORY_WRITE
 import org.apache.gluten.integration.metrics.MetricMapper
 
 import org.apache.spark.SparkConf
-
 import org.apache.log4j.Level
 
 import java.io.File
@@ -44,6 +43,7 @@ class TpcdsSuite(
     val disableWscg: Boolean,
     val shufflePartitions: Int,
     val scanPartitions: Int,
+    val decimalAsDouble: Boolean,
     val baselineMetricMapper: MetricMapper,
     val testMetricMapper: MetricMapper)
   extends Suite(
@@ -62,6 +62,7 @@ class TpcdsSuite(
     disableWscg,
     shufflePartitions,
     scanPartitions,
+    decimalAsDouble,
     baselineMetricMapper,
     testMetricMapper
   ) {
@@ -88,10 +89,6 @@ class TpcdsSuite(
     "/tpcds-queries"
   }
 
-  private def typeModifiers(): List[TypeModifier] = {
-    List()
-  }
-
   override private[integration] def allQueryIds(): Array[String] = 
ALL_QUERY_IDS
 
   override private[integration] def desc(): String = "TPC-DS"
diff --git 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/h/TpchSuite.scala
 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/h/TpchSuite.scala
index e48d52393d..32635620fc 100644
--- 
a/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/h/TpchSuite.scala
+++ 
b/tools/gluten-it/common/src/main/scala/org/apache/gluten/integration/h/TpchSuite.scala
@@ -42,6 +42,7 @@ class TpchSuite(
                  val disableWscg: Boolean,
                  val shufflePartitions: Int,
                  val scanPartitions: Int,
+                 val decimalAsDouble: Boolean,
                  val baselineMetricMapper: MetricMapper,
                  val testMetricMapper: MetricMapper)
     extends Suite(
@@ -60,6 +61,7 @@ class TpchSuite(
       disableWscg,
       shufflePartitions,
       scanPartitions,
+      decimalAsDouble,
       baselineMetricMapper,
       testMetricMapper) {
 
@@ -84,10 +86,6 @@ class TpchSuite(
     "/tpch-queries"
   }
 
-  private def typeModifiers(): List[TypeModifier] = {
-    List()
-  }
-
   override private[integration] def allQueryIds(): Array[String] = 
TpchSuite.ALL_QUERY_IDS
 
   override private[integration] def desc(): String = "TPC-H"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to