From 059061f611eadb027a78958ddc155de32bce52c5 Mon Sep 17 00:00:00 2001 From: "joey.ljy" Date: Fri, 29 Mar 2024 13:40:29 +0800 Subject: [PATCH] Use makeArrayVerifier for collect_list --- .../sparksql/fuzzer/SparkAggregationFuzzerTest.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/velox/functions/sparksql/fuzzer/SparkAggregationFuzzerTest.cpp b/velox/functions/sparksql/fuzzer/SparkAggregationFuzzerTest.cpp index 89d47224fde1..6c7d11f83ae5 100644 --- a/velox/functions/sparksql/fuzzer/SparkAggregationFuzzerTest.cpp +++ b/velox/functions/sparksql/fuzzer/SparkAggregationFuzzerTest.cpp @@ -22,6 +22,8 @@ #include "velox/exec/fuzzer/AggregationFuzzerOptions.h" #include "velox/exec/fuzzer/AggregationFuzzerRunner.h" #include "velox/exec/fuzzer/DuckQueryRunner.h" +#include "velox/exec/fuzzer/TransformResultVerifier.h" +#include "velox/functions/prestosql/registration/RegistrationFunctions.h" #include "velox/functions/sparksql/aggregates/Register.h" DEFINE_int64( @@ -48,6 +50,7 @@ int main(int argc, char** argv) { // experience, and initialize glog and gflags. folly::Init init(&argc, &argv); + facebook::velox::functions::prestosql::registerInternalFunctions(); facebook::velox::memory::MemoryManager::initialize({}); // TODO: List of the functions that at some point crash or fail and need to @@ -55,6 +58,12 @@ int main(int argc, char** argv) { // fuzzer test fail. std::unordered_set skipFunctions = {"bloom_filter_agg"}; + using facebook::velox::exec::test::TransformResultVerifier; + + auto makeArrayVerifier = []() { + return TransformResultVerifier::create("\"$internal$canonicalize\"({})"); + }; + // The results of the following functions depend on the order of input // rows. For some functions, the result can be transformed to a value that // doesn't depend on the order of inputs. If such transformation exists, it @@ -71,7 +80,8 @@ int main(int argc, char** argv) { {"max_by", nullptr}, {"min_by", nullptr}, {"skewness", nullptr}, - {"kurtosis", nullptr}}; + {"kurtosis", nullptr}, + {"collect_list", makeArrayVerifier()}}; size_t initialSeed = FLAGS_seed == 0 ? std::time(nullptr) : FLAGS_seed; auto duckQueryRunner =