diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/WindowFunnel.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/WindowFunnel.java index d19f63f658..c0bccc8039 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/WindowFunnel.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/WindowFunnel.java @@ -45,8 +45,12 @@ public class WindowFunnel extends AggregateFunction implements ExplicitlyCastableSignature, AlwaysNotNullable { public static final List SIGNATURES = ImmutableList.of( + FunctionSignature.ret(IntegerType.INSTANCE) + .varArgs(BigIntType.INSTANCE, StringType.INSTANCE, DateTimeV2Type.SYSTEM_DEFAULT, + BooleanType.INSTANCE), FunctionSignature.ret(IntegerType.INSTANCE) .varArgs(BigIntType.INSTANCE, StringType.INSTANCE, DateTimeType.INSTANCE, BooleanType.INSTANCE) + ); /** diff --git a/regression-test/data/nereids_p0/aggregate/window_funnel.out b/regression-test/data/nereids_p0/aggregate/window_funnel.out index 0bbe397fe3..f9c2463799 100644 --- a/regression-test/data/nereids_p0/aggregate/window_funnel.out +++ b/regression-test/data/nereids_p0/aggregate/window_funnel.out @@ -128,3 +128,6 @@ 100126 2 100127 2 +-- !window_funnel_datetimev2 -- +2 + diff --git a/regression-test/suites/nereids_p0/aggregate/window_funnel.groovy b/regression-test/suites/nereids_p0/aggregate/window_funnel.groovy index 378311a575..186e65461d 100644 --- a/regression-test/suites/nereids_p0/aggregate/window_funnel.groovy +++ b/regression-test/suites/nereids_p0/aggregate/window_funnel.groovy @@ -720,4 +720,25 @@ suite("window_funnel") { order BY user_id """ + sql """ DROP TABLE IF EXISTS windowfunnel_test_1 """ + sql """ + CREATE TABLE windowfunnel_test_1 ( + `xwho` varchar(50) NULL COMMENT 'xwho', + `xwhen` datetime(3) COMMENT 'xwhen', + `xwhat` int NULL COMMENT 'xwhat' + ) DUPLICATE KEY(xwho) + DISTRIBUTED BY HASH(xwho) BUCKETS 3 + PROPERTIES ("replication_num" = "1"); + """ + sql """ INSERT INTO windowfunnel_test_1 (xwho, xwhen, xwhat) VALUES + ('1', '2022-03-12 10:41:00.111', 1), + ('1', '2022-03-12 10:41:00.888', 2), + ('1', '2022-03-12 13:28:02.177', 3), + ('1', '2022-03-12 16:15:01.444', 4); """ + explain { + sql("""select window_funnel(3600 * 3, 'deduplication', t.xwhen, t.xwhat = 1, t.xwhat = 2 ) AS level from windowfunnel_test_1 t;""") + notContains("cast") + } + + qt_window_funnel_datetimev2 """select window_funnel(3600 * 3, 'deduplication', t.xwhen, t.xwhat = 1, t.xwhat = 2 ) AS level from windowfunnel_test_1 t; """ }