You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/01/31 15:39:18 UTC
[doris] 20/20: [improvement](agg-function) Increase the limit maximum number of agg function parameters (#15924)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
commit d9666a694bea53c0dea1c2145fd08f9c0ed59799
Author: abmdocrt <Yu...@gmail.com>
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 ++-
be/test/vec/exprs/vexpr_test.cpp | 15 +++-----
.../test_aggregate_retention.out | 26 ++++++++++++++
.../test_aggregate_retention.sql | 42 +++++++++++++++++++++-
4 files changed, 75 insertions(+), 12 deletions(-)
diff --git a/be/src/vec/aggregate_functions/aggregate_function_null.h b/be/src/vec/aggregate_functions/aggregate_function_null.h
index 7b8489c095..fea150348f 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_null.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_null.h
@@ -315,7 +315,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/be/test/vec/exprs/vexpr_test.cpp b/be/test/vec/exprs/vexpr_test.cpp
index ca8f8938a8..9ebf5612a8 100644
--- a/be/test/vec/exprs/vexpr_test.cpp
+++ b/be/test/vec/exprs/vexpr_test.cpp
@@ -79,7 +79,7 @@ TEST(TEST_VEXPR, ABSTEST) {
auto block = row_batch.convert_to_vec_block();
int ts = -1;
- context->execute(&block, &ts);
+ state = context->execute(&block, &ts);
context->close(&runtime_stat);
}
@@ -119,20 +119,15 @@ TEST(TEST_VEXPR, ABSTEST2) {
DescriptorTbl desc_tbl;
desc_tbl._slot_desc_map[0] = tuple_desc->slots()[0];
runtime_stat.set_desc_tbl(&desc_tbl);
-<<<<<<< HEAD
- context->prepare(&runtime_stat, row_desc);
- context->open(&runtime_stat);
-
- auto block = row_batch.convert_to_vec_block();
- int ts = -1;
- context->execute(&block, &ts);
-=======
auto state = Status::OK();
state = context->prepare(&runtime_stat, row_desc);
ASSERT_TRUE(state.ok());
state = context->open(&runtime_stat);
ASSERT_TRUE(state.ok());
->>>>>>> 46347a51d2... [Bug](exec) enable warning on ignoring function return value for vctx (#16157)
+
+ auto block = row_batch.convert_to_vec_block();
+ int ts = -1;
+ state = context->execute(&block, &ts);
context->close(&runtime_stat);
}
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: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org