diff --git a/backends-velox/src/test/scala/org/apache/gluten/execution/VeloxAggregateFunctionsSuite.scala b/backends-velox/src/test/scala/org/apache/gluten/execution/VeloxAggregateFunctionsSuite.scala index 270334011da7..fb1f0542639f 100644 --- a/backends-velox/src/test/scala/org/apache/gluten/execution/VeloxAggregateFunctionsSuite.scala +++ b/backends-velox/src/test/scala/org/apache/gluten/execution/VeloxAggregateFunctionsSuite.scala @@ -22,7 +22,6 @@ import org.apache.gluten.extension.columnar.validator.FallbackInjects import org.apache.spark.SparkConf import org.apache.spark.sql.catalyst.expressions.aggregate.{Final, Partial} import org.apache.spark.sql.execution.aggregate.BaseAggregateExec -import org.apache.spark.sql.functions._ import org.apache.spark.sql.internal.SQLConf import org.apache.spark.sql.types._ @@ -1141,13 +1140,10 @@ abstract class VeloxAggregateFunctionsSuite extends VeloxWholeStageTransformerSu StructField("lastUpdated", LongType, true), StructField("version", LongType, true))), true))) - val df = spark.read.schema(jsonSchema).json(Seq(jsonStr).toDS) - df.select(collect_set(col("txn"))).collect - - df.select(min(col("txn"))).collect - - df.select(max(col("txn"))).collect - + spark.read.schema(jsonSchema).json(Seq(jsonStr).toDS).createOrReplaceTempView("t1") + runQueryAndCompare("select collect_set(txn), min(txn), max(txn) from t1") { + checkGlutenOperatorMatch[HashAggregateExecTransformer] + } } test("drop redundant partial sort which has pre-project when offload sortAgg") { diff --git a/cpp/velox/substrait/SubstraitParser.cc b/cpp/velox/substrait/SubstraitParser.cc index b842914ca933..6eb62f854e0d 100644 --- a/cpp/velox/substrait/SubstraitParser.cc +++ b/cpp/velox/substrait/SubstraitParser.cc @@ -395,7 +395,6 @@ std::unordered_map SubstraitParser::substraitVeloxFunc {"xxhash64", "xxhash64_with_seed"}, {"modulus", "remainder"}, {"date_format", "format_datetime"}, - {"collect_set", "set_agg"}, {"negative", "unaryminus"}, {"get_array_item", "get"}}; diff --git a/cpp/velox/substrait/SubstraitToVeloxPlanValidator.cc b/cpp/velox/substrait/SubstraitToVeloxPlanValidator.cc index c229ca84fe19..c18d265986f8 100644 --- a/cpp/velox/substrait/SubstraitToVeloxPlanValidator.cc +++ b/cpp/velox/substrait/SubstraitToVeloxPlanValidator.cc @@ -1048,15 +1048,6 @@ bool SubstraitToVeloxPlanValidator::validateAggRelFunctionType(const ::substrait LOG_VALIDATION_MSG("Validation failed for function " + funcName + " resolve type in AggregateRel."); return false; } - static const std::unordered_set notSupportComplexTypeAggFuncs = {"set_agg", "min", "max"}; - if (notSupportComplexTypeAggFuncs.find(baseFuncName) != notSupportComplexTypeAggFuncs.end() && - exec::isRawInput(funcStep)) { - auto type = binder.tryResolveType(signature->argumentTypes()[0]); - if (type->isArray() || type->isMap() || type->isRow()) { - LOG_VALIDATION_MSG("Validation failed for function " + baseFuncName + " complex type is not supported."); - return false; - } - } resolved = true; break;