This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new ca7eb94f23 [improvement](agg-function) Increase the limit maximum
number of agg function parameters (#15924)
ca7eb94f23 is described below
commit ca7eb94f23f85b3afa1b2f82cf4f64715b283ab5
Author: abmdocrt <[email protected]>
AuthorDate: Tue Jan 31 21:03:50 2023 +0800
[improvement](agg-function) Increase the limit maximum number of agg
function parameters (#15924)
---
.../aggregate_functions/aggregate_function_null.h | 4 ++-
.../test_aggregate_retention.out | 26 ++++++++++++++
.../test_aggregate_retention.sql | 42 +++++++++++++++++++++-
3 files changed, 70 insertions(+), 2 deletions(-)
diff --git a/be/src/vec/aggregate_functions/aggregate_function_null.h
b/be/src/vec/aggregate_functions/aggregate_function_null.h
index 7fade87c6f..86fe7734e1 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_null.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_null.h
@@ -401,7 +401,9 @@ public:
}
private:
- enum { MAX_ARGS = 8 };
+ // The array length is fixed in the implementation of some aggregate
functions.
+ // Therefore we choose 256 as the appropriate maximum length limit.
+ static const size_t MAX_ARGS = 256;
size_t number_of_arguments = 0;
std::array<char, MAX_ARGS>
is_nullable; /// Plain array is better than std::vector due to one
indirection less.
diff --git
a/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.out
b/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.out
index d5d1ef2bc5..a85e7c5e37 100644
---
a/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.out
+++
b/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.out
@@ -60,3 +60,29 @@
-- !test_aggregate_retention_13 --
3 2 1
+-- !test_aggregate_retention_14 --
+0
+
+-- !test_aggregate_retention_15 --
+0
+
+-- !test_aggregate_retention_16 --
+12
+
+-- !test_aggregate_retention_17 --
+0 2022-10-12T00:00
+0 2022-10-13T00:00
+0 2022-10-14T00:00
+0 2022-10-15T00:00
+0 2022-10-16T00:00
+0 2022-10-17T00:00
+0 2022-10-18T00:00
+0 2022-10-19T00:00
+0 2022-10-20T00:00
+0 2022-10-21T00:00
+0 2022-10-22T00:00
+0 2022-10-23T00:00
+
+-- !test_aggregate_retention_18 --
+0 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
+
diff --git
a/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.sql
b/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.sql
index bdcfec400b..51fa7c677f 100644
---
a/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.sql
+++
b/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_retention.sql
@@ -85,4 +85,44 @@ SELECT
AS r
FROM retention_test
GROUP BY uid
- ) a;
\ No newline at end of file
+ ) a;
+
+
+DROP TABLE IF EXISTS retention_test_many_params;
+
+CREATE TABLE IF NOT EXISTS retention_test_many_params(
+ `uid` int COMMENT 'user id',
+ `date` datetime COMMENT 'date time'
+ )
+DUPLICATE KEY(uid)
+DISTRIBUTED BY HASH(uid) BUCKETS 1
+PROPERTIES (
+ "replication_num" = "1"
+);
+
+INSERT into retention_test_many_params (uid, date) values (0, '2022-10-12'),
+ (0, '2022-10-13'),
+ (0, '2022-10-14'),
+ (0, '2022-10-15'),
+ (0, '2022-10-16'),
+ (0, '2022-10-17'),
+ (0, '2022-10-18'),
+ (0, '2022-10-19'),
+ (0, '2022-10-20'),
+ (0, '2022-10-21'),
+ (0, '2022-10-22'),
+ (0, '2022-10-23');
+
+SELECT * from retention_test_many_params ORDER BY date;
+
+SELECT
+ uid,
+ retention(date = '2022-10-12', date = '2022-10-13', date = '2022-10-14',
+ date = '2022-10-15', date = '2022-10-16', date = '2022-10-17',
+ date = '2022-10-18', date = '2022-10-19', date = '2022-10-20',
+ date = '2022-10-21', date = '2022-10-22', date = '2022-10-23'
+ )
+ AS r
+ FROM retention_test_many_params
+ GROUP BY uid
+ ORDER BY uid ASC;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]