This is an automated email from the ASF dual-hosted git repository.
jakevin 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 c46fa339d03 [feature](Nereids): make count() avaliable for all data
type (#26180)
c46fa339d03 is described below
commit c46fa339d03e5409219542c74dbf22afb76e17f3
Author: 谢健 <[email protected]>
AuthorDate: Thu Nov 2 17:20:24 2023 +0800
[feature](Nereids): make count() avaliable for all data type (#26180)
make count() avaliable for all data type
---
.../trees/expressions/functions/agg/Count.java | 9 +-
.../analysis/CheckExpressionLegalityTest.java | 2 +-
.../data/nereids_function_p0/fn_test.dat | 26 +-
.../data/nereids_function_p0/fn_test_bitmap.dat | 13 +
.../data/nereids_function_p0/scalar_function/C.out | 282 +++++++++++++++++++++
.../suites/nereids_function_p0/load.groovy | 47 +++-
.../nereids_function_p0/scalar_function/C.groovy | 95 ++++++-
7 files changed, 450 insertions(+), 24 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Count.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Count.java
index 0f15aac55ac..a8a3fdd033d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Count.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Count.java
@@ -18,7 +18,6 @@
package org.apache.doris.nereids.trees.expressions.functions.agg;
import org.apache.doris.catalog.FunctionSignature;
-import org.apache.doris.catalog.Type;
import org.apache.doris.nereids.exceptions.AnalysisException;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable;
@@ -82,11 +81,9 @@ public class Count extends AggregateFunction
public void checkLegalityAfterRewrite() {
// after rewrite, count(distinct bitmap_column) should be rewritten to
bitmap_union_count(bitmap_column)
for (Expression argument : getArguments()) {
- if (argument.getDataType().isObjectType()) {
- throw new AnalysisException(Type.OnlyObjectTypeErrorMsg);
- }
- if (distinct && argument.getDataType().isComplexType()) {
- throw new AnalysisException("COUNT DISTINCT could not process
complex type " + this.toSql());
+ if (distinct && (argument.getDataType().isComplexType()
+ || argument.getDataType().isObjectType() ||
argument.getDataType().isJsonType())) {
+ throw new AnalysisException("COUNT DISTINCT could not process
type " + this.toSql());
}
}
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/CheckExpressionLegalityTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/CheckExpressionLegalityTest.java
index 84e7cf4ff72..2b0ae34dc37 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/CheckExpressionLegalityTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/CheckExpressionLegalityTest.java
@@ -65,7 +65,7 @@ public class CheckExpressionLegalityTest implements
MemoPatternMatchSupported {
));
ExceptionChecker.expectThrowsWithMsg(AnalysisException.class,
- "column must use with specific function", () ->
+ "COUNT DISTINCT could not process type", () ->
PlanChecker.from(connectContext)
.analyze("select count(distinct id) from
(select to_bitmap(1) id) tbl")
.applyBottomUp(new
ExpressionRewrite(CheckLegalityAfterRewrite.INSTANCE))
diff --git a/regression-test/data/nereids_function_p0/fn_test.dat
b/regression-test/data/nereids_function_p0/fn_test.dat
index f935249c99e..7a30eb3f667 100644
--- a/regression-test/data/nereids_function_p0/fn_test.dat
+++ b/regression-test/data/nereids_function_p0/fn_test.dat
@@ -1,13 +1,13 @@
-0;0;1;1;1;1;1;0.1;0.1;0.1;0.1;0.1;0.1;0.1;0.1;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-01;2012-03-01;2012-03-01
01:00:01;2012-03-01 01:00:01;2012-03-01 01:00:01;2012-03-01
01:00:01;[0];[0];[1];[1];[1];[1];[1];[0.1];[2012-03-01,2012-03-01];[2012-03-01
01:00:01];[2012-03-01,2012-03-01];[2012-03-01 01:00:01,2012-03-01
01:00:01,2012-03-01 01:00:01,2012-03-01
01:00:01];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar1
[...]
-1;0;2;2;2;2;2;0.2;0.2;0.2;0.2;0.2;0.2;0.2;0.2;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-02;2012-03-02;2012-03-02
02:01:02;2012-03-02 02:01:02;2012-03-02 02:01:02;2012-03-02
02:01:02;[0];[0];[2];[2];[2];[2];[2];[0.2];[2012-03-02,2012-03-02];[2012-03-02
02:01:02];[2012-03-02,2012-03-02];[2012-03-02 02:01:02,2012-03-02
02:01:02,2012-03-02 02:01:02,2012-03-02
02:01:02];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char32,varchar1
[...]
-2;0;3;3;3;3;3;0.3;0.3;0.3;0.3;0.3;0.3;0.3;0.3;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-03;2012-03-03;2012-03-03
03:02:03;2012-03-03 03:02:03;2012-03-03 03:02:03;2012-03-03
03:02:03;[0];[0];[3];[3];[3];[3];[3];[0.3];[2012-03-03,2012-03-03];[2012-03-03
03:02:03];[2012-03-03,2012-03-03];[2012-03-03 03:02:03,2012-03-03
03:02:03,2012-03-03 03:02:03,2012-03-03
03:02:03];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char33,varchar1
[...]
-3;0;4;4;4;4;4;0.4;0.4;0.4;0.4;0.4;0.4;0.4;0.4;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-04;2012-03-04;2012-03-04
04:03:04;2012-03-04 04:03:04;2012-03-04 04:03:04;2012-03-04
04:03:04;[0];[0];[4];[4];[4];[4];[4];[0.4];[2012-03-04,2012-03-04];[2012-03-04
04:03:04];[2012-03-04,2012-03-04];[2012-03-04 04:03:04,2012-03-04
04:03:04,2012-03-04 04:03:04,2012-03-04
04:03:04];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar1
[...]
-4;0;5;5;5;5;5;0.5;0.5;0.5;0.5;0.5;0.5;0.5;0.5;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-05;2012-03-05;2012-03-05
05:04:05;2012-03-05 05:04:05;2012-03-05 05:04:05;2012-03-05
05:04:05;[0];[0];[5];[5];[5];[5];[5];[0.5];[2012-03-05,2012-03-05];[2012-03-05
05:04:05];[2012-03-05,2012-03-05];[2012-03-05 05:04:05,2012-03-05
05:04:05,2012-03-05 05:04:05,2012-03-05
05:04:05];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char32,varchar1
[...]
-5;0;6;6;6;6;6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-06;2012-03-06;2012-03-06
06:05:06;2012-03-06 06:05:06;2012-03-06 06:05:06;2012-03-06
06:05:06;[0];[0];[6];[6];[6];[6];[6];[0.6];[2012-03-06,2012-03-06];[2012-03-06
06:05:06];[2012-03-06,2012-03-06];[2012-03-06 06:05:06,2012-03-06
06:05:06,2012-03-06 06:05:06,2012-03-06
06:05:06];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char33,varchar1
[...]
-6;0;7;7;7;7;7;0.7;0.7;0.7;0.7;0.7;0.7;0.7;0.7;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-07;2012-03-07;2012-03-07
07:06:07;2012-03-07 07:06:07;2012-03-07 07:06:07;2012-03-07
07:06:07;[0];[0];[7];[7];[7];[7];[7];[0.7];[2012-03-07,2012-03-07];[2012-03-07
07:06:07];[2012-03-07,2012-03-07];[2012-03-07 07:06:07,2012-03-07
07:06:07,2012-03-07 07:06:07,2012-03-07
07:06:07];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar1
[...]
-7;1;8;8;8;8;8;0.8;0.8;0.8;0.8;0.8;0.8;0.8;0.8;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-08;2012-03-08;2012-03-08
08:07:08;2012-03-08 08:07:08;2012-03-08 08:07:08;2012-03-08
08:07:08;[1];[1];[8];[8];[8];[8];[8];[0.8];[2012-03-08,2012-03-08];[2012-03-08
08:07:08];[2012-03-08,2012-03-08];[2012-03-08 08:07:08,2012-03-08
08:07:08,2012-03-08 08:07:08,2012-03-08
08:07:08];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char32,varchar1
[...]
-8;1;9;9;9;9;9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-09;2012-03-09;2012-03-09
09:08:09;2012-03-09 09:08:09;2012-03-09 09:08:09;2012-03-09
09:08:09;[1];[1];[9];[9];[9];[9];[9];[0.9];[2012-03-09,2012-03-09];[2012-03-09
09:08:09];[2012-03-09,2012-03-09];[2012-03-09 09:08:09,2012-03-09
09:08:09,2012-03-09 09:08:09,2012-03-09
09:08:09];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char33,varchar1
[...]
-9;1;10;10;10;10;10;1;1;1;1;1;1;1;1;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-10;2012-03-10;2012-03-10
10:09:10;2012-03-10 10:09:10;2012-03-10 10:09:10;2012-03-10
10:09:10;[1];[1];[10];[10];[10];[10];[10];[1];[2012-03-10,2012-03-10];[2012-03-10
10:09:10];[2012-03-10,2012-03-10];[2012-03-10 10:09:10,2012-03-10
10:09:10,2012-03-10 10:09:10,2012-03-10
10:09:10];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar11,varcha
[...]
-10;1;11;11;11;11;11;1.1;1.1;1.1;1.1;1.1;1.1;1.1;1.1;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-11;2012-03-11;2012-03-11
11:10:11;2012-03-11 11:10:11;2012-03-11 11:10:11;2012-03-11
11:10:11;[1];[1];[11];[11];[11];[11];[11];[1.1];[2012-03-11,2012-03-11];[2012-03-11
11:10:11];[2012-03-11,2012-03-11];[2012-03-11 11:10:11,2012-03-11
11:10:11,2012-03-11 11:10:11,2012-03-11
11:10:11];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char
[...]
-11;1;12;12;12;12;12;1.2;1.2;1.2;1.2;1.2;1.2;1.2;1.2;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-12;2012-03-12;2012-03-12
12:11:12;2012-03-12 12:11:12;2012-03-12 12:11:12;2012-03-12
12:11:12;[1];[1];[12];[12];[12];[12];[12];[1.2];[2012-03-12,2012-03-12];[2012-03-12
12:11:12];[2012-03-12,2012-03-12];[2012-03-12 12:11:12,2012-03-12
12:11:12,2012-03-12 12:11:12,2012-03-12
12:11:12];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char
[...]
-null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null
+0;0;1;1;1;1;1;0.1;0.1;0.1;0.1;0.1;0.1;0.1;0.1;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-01;2012-03-01;2012-03-01
01:00:01;2012-03-01 01:00:01;2012-03-01 01:00:01;2012-03-01
01:00:01;[0];[0];[1];[1];[1];[1];[1];[0.1];[2012-03-01,2012-03-01];[2012-03-01
01:00:01];[2012-03-01,2012-03-01];[2012-03-01 01:00:01,2012-03-01
01:00:01,2012-03-01 01:00:01,2012-03-01
01:00:01];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar1
[...]
+1;0;2;2;2;2;2;0.2;0.2;0.2;0.2;0.2;0.2;0.2;0.2;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-02;2012-03-02;2012-03-02
02:01:02;2012-03-02 02:01:02;2012-03-02 02:01:02;2012-03-02
02:01:02;[0];[0];[2];[2];[2];[2];[2];[0.2];[2012-03-02,2012-03-02];[2012-03-02
02:01:02];[2012-03-02,2012-03-02];[2012-03-02 02:01:02,2012-03-02
02:01:02,2012-03-02 02:01:02,2012-03-02
02:01:02];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char32,varchar1
[...]
+2;0;3;3;3;3;3;0.3;0.3;0.3;0.3;0.3;0.3;0.3;0.3;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-03;2012-03-03;2012-03-03
03:02:03;2012-03-03 03:02:03;2012-03-03 03:02:03;2012-03-03
03:02:03;[0];[0];[3];[3];[3];[3];[3];[0.3];[2012-03-03,2012-03-03];[2012-03-03
03:02:03];[2012-03-03,2012-03-03];[2012-03-03 03:02:03,2012-03-03
03:02:03,2012-03-03 03:02:03,2012-03-03
03:02:03];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char33,varchar1
[...]
+3;0;4;4;4;4;4;0.4;0.4;0.4;0.4;0.4;0.4;0.4;0.4;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-04;2012-03-04;2012-03-04
04:03:04;2012-03-04 04:03:04;2012-03-04 04:03:04;2012-03-04
04:03:04;[0];[0];[4];[4];[4];[4];[4];[0.4];[2012-03-04,2012-03-04];[2012-03-04
04:03:04];[2012-03-04,2012-03-04];[2012-03-04 04:03:04,2012-03-04
04:03:04,2012-03-04 04:03:04,2012-03-04
04:03:04];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar1
[...]
+4;0;5;5;5;5;5;0.5;0.5;0.5;0.5;0.5;0.5;0.5;0.5;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-05;2012-03-05;2012-03-05
05:04:05;2012-03-05 05:04:05;2012-03-05 05:04:05;2012-03-05
05:04:05;[0];[0];[5];[5];[5];[5];[5];[0.5];[2012-03-05,2012-03-05];[2012-03-05
05:04:05];[2012-03-05,2012-03-05];[2012-03-05 05:04:05,2012-03-05
05:04:05,2012-03-05 05:04:05,2012-03-05
05:04:05];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char32,varchar1
[...]
+5;0;6;6;6;6;6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-06;2012-03-06;2012-03-06
06:05:06;2012-03-06 06:05:06;2012-03-06 06:05:06;2012-03-06
06:05:06;[0];[0];[6];[6];[6];[6];[6];[0.6];[2012-03-06,2012-03-06];[2012-03-06
06:05:06];[2012-03-06,2012-03-06];[2012-03-06 06:05:06,2012-03-06
06:05:06,2012-03-06 06:05:06,2012-03-06
06:05:06];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char33,varchar1
[...]
+6;0;7;7;7;7;7;0.7;0.7;0.7;0.7;0.7;0.7;0.7;0.7;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-07;2012-03-07;2012-03-07
07:06:07;2012-03-07 07:06:07;2012-03-07 07:06:07;2012-03-07
07:06:07;[0];[0];[7];[7];[7];[7];[7];[0.7];[2012-03-07,2012-03-07];[2012-03-07
07:06:07];[2012-03-07,2012-03-07];[2012-03-07 07:06:07,2012-03-07
07:06:07,2012-03-07 07:06:07,2012-03-07
07:06:07];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar1
[...]
+7;1;8;8;8;8;8;0.8;0.8;0.8;0.8;0.8;0.8;0.8;0.8;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-08;2012-03-08;2012-03-08
08:07:08;2012-03-08 08:07:08;2012-03-08 08:07:08;2012-03-08
08:07:08;[1];[1];[8];[8];[8];[8];[8];[0.8];[2012-03-08,2012-03-08];[2012-03-08
08:07:08];[2012-03-08,2012-03-08];[2012-03-08 08:07:08,2012-03-08
08:07:08,2012-03-08 08:07:08,2012-03-08
08:07:08];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char32,varchar1
[...]
+8;1;9;9;9;9;9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-09;2012-03-09;2012-03-09
09:08:09;2012-03-09 09:08:09;2012-03-09 09:08:09;2012-03-09
09:08:09;[1];[1];[9];[9];[9];[9];[9];[0.9];[2012-03-09,2012-03-09];[2012-03-09
09:08:09];[2012-03-09,2012-03-09];[2012-03-09 09:08:09,2012-03-09
09:08:09,2012-03-09 09:08:09,2012-03-09
09:08:09];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char33,varchar1
[...]
+9;1;10;10;10;10;10;1;1;1;1;1;1;1;1;char11;char21;char31;varchar11;varchar21;varchar31;string1;2012-03-10;2012-03-10;2012-03-10
10:09:10;2012-03-10 10:09:10;2012-03-10 10:09:10;2012-03-10
10:09:10;[1];[1];[10];[10];[10];[10];[10];[1];[2012-03-10,2012-03-10];[2012-03-10
10:09:10];[2012-03-10,2012-03-10];[2012-03-10 10:09:10,2012-03-10
10:09:10,2012-03-10 10:09:10,2012-03-10
10:09:10];[char11,char21,char31];[char11,char21,char31,varchar11,varchar21,varchar31];[char21,char31,varchar11,varcha
[...]
+10;1;11;11;11;11;11;1.1;1.1;1.1;1.1;1.1;1.1;1.1;1.1;char12;char22;char32;varchar12;varchar22;varchar32;string2;2012-03-11;2012-03-11;2012-03-11
11:10:11;2012-03-11 11:10:11;2012-03-11 11:10:11;2012-03-11
11:10:11;[1];[1];[11];[11];[11];[11];[11];[1.1];[2012-03-11,2012-03-11];[2012-03-11
11:10:11];[2012-03-11,2012-03-11];[2012-03-11 11:10:11,2012-03-11
11:10:11,2012-03-11 11:10:11,2012-03-11
11:10:11];[char12,char22,char32];[char12,char22,char32,varchar12,varchar22,varchar32];[char22,char
[...]
+11;1;12;12;12;12;12;1.2;1.2;1.2;1.2;1.2;1.2;1.2;1.2;char13;char23;char33;varchar13;varchar23;varchar33;string3;2012-03-12;2012-03-12;2012-03-12
12:11:12;2012-03-12 12:11:12;2012-03-12 12:11:12;2012-03-12
12:11:12;[1];[1];[12];[12];[12];[12];[12];[1.2];[2012-03-12,2012-03-12];[2012-03-12
12:11:12];[2012-03-12,2012-03-12];[2012-03-12 12:11:12,2012-03-12
12:11:12,2012-03-12 12:11:12,2012-03-12
12:11:12];[char13,char23,char33];[char13,char23,char33,varchar13,varchar23,varchar33];[char23,char
[...]
+null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null;null
diff --git a/regression-test/data/nereids_function_p0/fn_test_bitmap.dat
b/regression-test/data/nereids_function_p0/fn_test_bitmap.dat
new file mode 100644
index 00000000000..811e8d68657
--- /dev/null
+++ b/regression-test/data/nereids_function_p0/fn_test_bitmap.dat
@@ -0,0 +1,13 @@
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+null
\ No newline at end of file
diff --git a/regression-test/data/nereids_function_p0/scalar_function/C.out
b/regression-test/data/nereids_function_p0/scalar_function/C.out
index 42a41c21b0b..e4b81b7eb71 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/C.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/C.out
@@ -1101,6 +1101,288 @@ varchar13
0.4535961214255773
0.3623577544766736
+-- !km_bool_tint --
+12
+
+-- !km_bool_tint_not_nullable --
+12
+
+-- !km_tint_tint --
+12
+
+-- !km_tint_tint_not_nullable --
+12
+
+-- !km_sint_tint --
+12
+
+-- !km_sint_tint_not_nullable --
+12
+
+-- !km_int_tint --
+12
+
+-- !km_int_tint_not_nullable --
+12
+
+-- !km_bint_tint --
+12
+
+-- !km_bint_tint_not_nullable --
+12
+
+-- !km_lint_tint --
+12
+
+-- !km_lint_tint_not_nullable --
+12
+
+-- !km_float_tint --
+12
+
+-- !km_float_tint_not_nullable --
+12
+
+-- !km_dbl_tint --
+12
+
+-- !km_dbl_tint_not_nullable --
+12
+
+-- !km_dcml_tint --
+12
+
+-- !km_dcml_tint_not_nullable --
+12
+
+-- !km_chr_tint --
+12
+
+-- !km_chr_tint_not_nullable --
+12
+
+-- !km_vchr_tint --
+12
+
+-- !km_vchr_tint_not_nullable --
+12
+
+-- !km_str_tint --
+12
+
+-- !km_str_tint_not_nullable --
+12
+
+-- !km_date_tint --
+12
+
+-- !km_date_tint_not_nullable --
+12
+
+-- !km_dtm_tint --
+12
+
+-- !km_dtm_tint_not_nullable --
+12
+
+-- !km_tint_bool --
+12
+
+-- !km_tint_bool_not_nullable --
+12
+
+-- !km_int_int --
+12
+
+-- !km_int_int_not_nullable --
+12
+
+-- !km_tint_sint --
+12
+
+-- !km_tint_sint_not_nullable --
+12
+
+-- !km_tint_int --
+12
+
+-- !km_tint_int_not_nullable --
+12
+
+-- !km_tint_bint --
+12
+
+-- !km_tint_bint_not_nullable --
+12
+
+-- !km_tint_lint --
+12
+
+-- !km_tint_lint_not_nullable --
+12
+
+-- !km_tint_float --
+12
+
+-- !km_tint_float_not_nullable --
+12
+
+-- !km_tint_dbl --
+12
+
+-- !km_tint_dbl_not_nullable --
+12
+
+-- !km_tint_dcml --
+12
+
+-- !km_tint_dcml_not_nullable --
+12
+
+-- !km_tint_chr --
+12
+
+-- !km_tint_chr_not_nullable --
+12
+
+-- !km_tint_vchr --
+12
+
+-- !km_tint_vchr_not_nullable --
+12
+
+-- !km_tint_str --
+12
+
+-- !km_tint_str_not_nullable --
+12
+
+-- !km_tint_date --
+12
+
+-- !km_tint_date_not_nullable --
+12
+
+-- !km_tint_dtm --
+12
+
+-- !km_tint_dtm_not_nullable --
+12
+
+-- !kjson --
+13
+
+-- !kjson_not_nullable --
+12
+
+-- !kstruct --
+12
+
+-- !kstruct_not_nullable --
+12
+
+-- !kabool --
+12
+
+-- !kabool_not_nullable --
+12
+
+-- !katint --
+12
+
+-- !katint_not_nullable --
+12
+
+-- !kasint --
+12
+
+-- !kasint_not_nullable --
+12
+
+-- !kaint --
+12
+
+-- !kaint_not_nullable --
+12
+
+-- !kabint --
+12
+
+-- !kabint_not_nullable --
+12
+
+-- !kalint --
+12
+
+-- !kalint_not_nullable --
+12
+
+-- !kafloat --
+12
+
+-- !kafloat_not_nullable --
+12
+
+-- !kadbl --
+12
+
+-- !kadbl_not_nullable --
+12
+
+-- !kadt --
+12
+
+-- !kadt_not_nullable --
+12
+
+-- !kadtm --
+12
+
+-- !kadtm_not_nullable --
+12
+
+-- !kadtv2 --
+12
+
+-- !kadtv2_not_nullable --
+12
+
+-- !kadtmv2 --
+12
+
+-- !kadtmv2_not_nullable --
+12
+
+-- !kachr --
+12
+
+-- !kachr_not_nullable --
+12
+
+-- !kavchr --
+12
+
+-- !kavchr_not_nullable --
+12
+
+-- !kastr --
+12
+
+-- !kastr_not_nullable --
+12
+
+-- !kadcml --
+12
+
+-- !kadcml_not_nullable --
+12
+
+-- !bitmap --
+13
+
+-- !bitmap_not_nullable --
+12
+
-- !char --
Doris Doris
diff --git a/regression-test/suites/nereids_function_p0/load.groovy
b/regression-test/suites/nereids_function_p0/load.groovy
index c403302d0b1..104c2d30788 100644
--- a/regression-test/suites/nereids_function_p0/load.groovy
+++ b/regression-test/suites/nereids_function_p0/load.groovy
@@ -20,6 +20,12 @@ suite("load") {
// ddl begin
sql "drop table if exists fn_test"
sql "drop table if exists fn_test_not_nullable"
+ sql """
+ DROP TABLE IF EXISTS `fn_test_bitmap_not_nullable`
+ """
+ sql """
+ DROP TABLE IF EXISTS `fn_test_bitmap`
+ """
sql """
CREATE TABLE IF NOT EXISTS `fn_test` (
@@ -105,7 +111,18 @@ suite("load") {
`km_tint_vchr` map<tinyint, varchar(50)> null,
`km_tint_str` map<tinyint, string> null,
`km_tint_date` map<tinyint, date> null,
- `km_tint_dtm` map<tinyint, datetime> null
+ `km_tint_dtm` map<tinyint, datetime> null,
+ `kjson` JSON null,
+ `kstruct` STRUCT<id: int> null
+ ) engine=olap
+ DISTRIBUTED BY HASH(`id`) BUCKETS 4
+ properties("replication_num" = "1")
+ """
+
+ sql """
+ CREATE TABLE IF NOT EXISTS `fn_test_bitmap` (
+ `id` int null,
+ `kbitmap` bitmap bitmap_union
) engine=olap
DISTRIBUTED BY HASH(`id`) BUCKETS 4
properties("replication_num" = "1")
@@ -195,7 +212,18 @@ suite("load") {
`km_tint_vchr` map<tinyint, varchar(50)> not null,
`km_tint_str` map<tinyint, string> not null,
`km_tint_date` map<tinyint, date> not null,
- `km_tint_dtm` map<tinyint, datetime> not null
+ `km_tint_dtm` map<tinyint, datetime> not null,
+ `kjson` JSON not null,
+ `kstruct` STRUCT<id: int> not null
+ ) engine=olap
+ DISTRIBUTED BY HASH(`id`) BUCKETS 4
+ properties("replication_num" = "1")
+ """
+
+ sql """
+ CREATE TABLE IF NOT EXISTS `fn_test_bitmap_not_nullable` (
+ `id` int not null,
+ `kbitmap` bitmap bitmap_union not null
) engine=olap
DISTRIBUTED BY HASH(`id`) BUCKETS 4
properties("replication_num" = "1")
@@ -215,12 +243,25 @@ suite("load") {
km_bool_tint, km_tint_tint, km_sint_tint, km_int_tint,
km_bint_tint, km_lint_tint, km_float_tint,
km_dbl_tint, km_dcml_tint, km_chr_tint, km_vchr_tint, km_str_tint,
km_date_tint, km_dtm_tint,
km_tint_bool, km_int_int, km_tint_sint, km_tint_int, km_tint_bint,
km_tint_lint, km_tint_float,
- km_tint_dbl, km_tint_dcml, km_tint_chr, km_tint_vchr, km_tint_str,
km_tint_date, km_tint_dtm
+ km_tint_dbl, km_tint_dcml, km_tint_chr, km_tint_vchr, km_tint_str,
km_tint_date, km_tint_dtm, kjson, kstruct
'''
file "fn_test.dat"
}
+ streamLoad {
+ table "fn_test_bitmap"
+ db "regression_test_nereids_function_p0"
+ set 'column_separator', ';'
+ set 'columns', '''
+ id, kbitmap=to_bitmap(id)
+ '''
+ file "fn_test_bitmap.dat"
+ }
+
sql """
insert into fn_test_not_nullable select * from fn_test where id is not
null
"""
+ sql """
+ insert into fn_test_bitmap_not_nullable select * from fn_test_bitmap
where id is not null
+ """
}
diff --git
a/regression-test/suites/nereids_function_p0/scalar_function/C.groovy
b/regression-test/suites/nereids_function_p0/scalar_function/C.groovy
index df896d9f29e..62c1c6877c8 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/C.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/C.groovy
@@ -99,7 +99,100 @@ suite("nereids_scalar_fn_C") {
qt_sql_cos_Double_notnull "select cos(kdbl) from fn_test_not_nullable
order by kdbl"
sql "select current_user() from fn_test"
sql "select current_user() from fn_test_not_nullable"
-
+ qt_km_bool_tint "select count(km_bool_tint) from fn_test "
+ qt_km_bool_tint_not_nullable "select count(km_bool_tint) from
fn_test_not_nullable "
+ qt_km_tint_tint "select count(km_tint_tint) from fn_test "
+ qt_km_tint_tint_not_nullable "select count(km_tint_tint) from
fn_test_not_nullable "
+ qt_km_sint_tint "select count(km_sint_tint) from fn_test "
+ qt_km_sint_tint_not_nullable "select count(km_sint_tint) from
fn_test_not_nullable "
+ qt_km_int_tint "select count(km_int_tint) from fn_test "
+ qt_km_int_tint_not_nullable "select count(km_int_tint) from
fn_test_not_nullable "
+ qt_km_bint_tint "select count(km_bint_tint) from fn_test "
+ qt_km_bint_tint_not_nullable "select count(km_bint_tint) from
fn_test_not_nullable "
+ qt_km_lint_tint "select count(km_lint_tint) from fn_test "
+ qt_km_lint_tint_not_nullable "select count(km_lint_tint) from
fn_test_not_nullable "
+ qt_km_float_tint "select count(km_float_tint) from fn_test "
+ qt_km_float_tint_not_nullable "select count(km_float_tint) from
fn_test_not_nullable "
+ qt_km_dbl_tint "select count(km_dbl_tint) from fn_test "
+ qt_km_dbl_tint_not_nullable "select count(km_dbl_tint) from
fn_test_not_nullable "
+ qt_km_dcml_tint "select count(km_dcml_tint) from fn_test "
+ qt_km_dcml_tint_not_nullable "select count(km_dcml_tint) from
fn_test_not_nullable "
+ qt_km_chr_tint "select count(km_chr_tint) from fn_test "
+ qt_km_chr_tint_not_nullable "select count(km_chr_tint) from
fn_test_not_nullable "
+ qt_km_vchr_tint "select count(km_vchr_tint) from fn_test "
+ qt_km_vchr_tint_not_nullable "select count(km_vchr_tint) from
fn_test_not_nullable "
+ qt_km_str_tint "select count(km_str_tint) from fn_test "
+ qt_km_str_tint_not_nullable "select count(km_str_tint) from
fn_test_not_nullable "
+ qt_km_date_tint "select count(km_date_tint) from fn_test "
+ qt_km_date_tint_not_nullable "select count(km_date_tint) from
fn_test_not_nullable "
+ qt_km_dtm_tint "select count(km_dtm_tint) from fn_test "
+ qt_km_dtm_tint_not_nullable "select count(km_dtm_tint) from
fn_test_not_nullable "
+ qt_km_tint_bool "select count(km_tint_bool) from fn_test "
+ qt_km_tint_bool_not_nullable "select count(km_tint_bool) from
fn_test_not_nullable "
+ qt_km_int_int "select count(km_int_int) from fn_test "
+ qt_km_int_int_not_nullable "select count(km_int_int) from
fn_test_not_nullable "
+ qt_km_tint_sint "select count(km_tint_sint) from fn_test "
+ qt_km_tint_sint_not_nullable "select count(km_tint_sint) from
fn_test_not_nullable "
+ qt_km_tint_int "select count(km_tint_int) from fn_test "
+ qt_km_tint_int_not_nullable "select count(km_tint_int) from
fn_test_not_nullable "
+ qt_km_tint_bint "select count(km_tint_bint) from fn_test "
+ qt_km_tint_bint_not_nullable "select count(km_tint_bint) from
fn_test_not_nullable "
+ qt_km_tint_lint "select count(km_tint_lint) from fn_test "
+ qt_km_tint_lint_not_nullable "select count(km_tint_lint) from
fn_test_not_nullable "
+ qt_km_tint_float "select count(km_tint_float) from fn_test "
+ qt_km_tint_float_not_nullable "select count(km_tint_float) from
fn_test_not_nullable "
+ qt_km_tint_dbl "select count(km_tint_dbl) from fn_test "
+ qt_km_tint_dbl_not_nullable "select count(km_tint_dbl) from
fn_test_not_nullable "
+ qt_km_tint_dcml "select count(km_tint_dcml) from fn_test "
+ qt_km_tint_dcml_not_nullable "select count(km_tint_dcml) from
fn_test_not_nullable "
+ qt_km_tint_chr "select count(km_tint_chr) from fn_test "
+ qt_km_tint_chr_not_nullable "select count(km_tint_chr) from
fn_test_not_nullable "
+ qt_km_tint_vchr "select count(km_tint_vchr) from fn_test "
+ qt_km_tint_vchr_not_nullable "select count(km_tint_vchr) from
fn_test_not_nullable "
+ qt_km_tint_str "select count(km_tint_str) from fn_test "
+ qt_km_tint_str_not_nullable "select count(km_tint_str) from
fn_test_not_nullable "
+ qt_km_tint_date "select count(km_tint_date) from fn_test "
+ qt_km_tint_date_not_nullable "select count(km_tint_date) from
fn_test_not_nullable "
+ qt_km_tint_dtm "select count(km_tint_dtm) from fn_test "
+ qt_km_tint_dtm_not_nullable "select count(km_tint_dtm) from
fn_test_not_nullable "
+ qt_kjson "select count(kjson) from fn_test "
+ qt_kjson_not_nullable "select count(kjson) from fn_test_not_nullable "
+ qt_kstruct "select count(kstruct) from fn_test "
+ qt_kstruct_not_nullable "select count(kstruct) from
fn_test_not_nullable "
+ qt_kabool "select count(kabool) from fn_test "
+ qt_kabool_not_nullable "select count(kabool) from fn_test_not_nullable "
+ qt_katint "select count(katint) from fn_test "
+ qt_katint_not_nullable "select count(katint) from fn_test_not_nullable "
+ qt_kasint "select count(kasint) from fn_test "
+ qt_kasint_not_nullable "select count(kasint) from fn_test_not_nullable "
+ qt_kaint "select count(kaint) from fn_test "
+ qt_kaint_not_nullable "select count(kaint) from fn_test_not_nullable "
+ qt_kabint "select count(kabint) from fn_test "
+ qt_kabint_not_nullable "select count(kabint) from fn_test_not_nullable "
+ qt_kalint "select count(kalint) from fn_test "
+ qt_kalint_not_nullable "select count(kalint) from fn_test_not_nullable "
+ qt_kafloat "select count(kafloat) from fn_test "
+ qt_kafloat_not_nullable "select count(kafloat) from
fn_test_not_nullable "
+ qt_kadbl "select count(kadbl) from fn_test "
+ qt_kadbl_not_nullable "select count(kadbl) from fn_test_not_nullable "
+ qt_kadt "select count(kadt) from fn_test "
+ qt_kadt_not_nullable "select count(kadt) from fn_test_not_nullable "
+ qt_kadtm "select count(kadtm) from fn_test "
+ qt_kadtm_not_nullable "select count(kadtm) from fn_test_not_nullable "
+ qt_kadtv2 "select count(kadtv2) from fn_test "
+ qt_kadtv2_not_nullable "select count(kadtv2) from fn_test_not_nullable "
+ qt_kadtmv2 "select count(kadtmv2) from fn_test "
+ qt_kadtmv2_not_nullable "select count(kadtmv2) from
fn_test_not_nullable "
+ qt_kachr "select count(kachr) from fn_test "
+ qt_kachr_not_nullable "select count(kachr) from fn_test_not_nullable "
+ qt_kavchr "select count(kavchr) from fn_test "
+ qt_kavchr_not_nullable "select count(kavchr) from fn_test_not_nullable "
+ qt_kastr "select count(kastr) from fn_test "
+ qt_kastr_not_nullable "select count(kastr) from fn_test_not_nullable "
+ qt_kadcml "select count(kadcml) from fn_test "
+ qt_kadcml_not_nullable "select count(kadcml) from fn_test_not_nullable "
+ qt_bitmap "select count(kbitmap) from fn_test_bitmap"
+ qt_bitmap_not_nullable "select count(kbitmap) from
fn_test_bitmap_not_nullable"
qt_char "select char(68, 111, 114, 105, 115), char(68, 111, 114, 105,
115 using utf8);"
qt_convert "select convert(1 using gbk), convert(1, string);"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]