This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 3a710117b860d23fd92c122ee8b588779124df57 Author: TengJianPing <[email protected]> AuthorDate: Mon Jul 24 14:13:31 2023 +0800 [fix](in) throw exception for unsupported data type of in expr (#22050) --- be/src/exprs/create_predicate_function.h | 3 +- be/src/vec/columns/column_complex.h | 3 +- .../query_p0/sql_functions/test_in_expr.groovy | 85 ++++++++++++++++++++++ 3 files changed, 89 insertions(+), 2 deletions(-) diff --git a/be/src/exprs/create_predicate_function.h b/be/src/exprs/create_predicate_function.h index 4bc9328323..93ed3a459b 100644 --- a/be/src/exprs/create_predicate_function.h +++ b/be/src/exprs/create_predicate_function.h @@ -125,7 +125,8 @@ typename Traits::BasePtr create_predicate_function(PrimitiveType type) { APPLY_FOR_PRIMTYPE(M) #undef M default: - DCHECK(false) << "Invalid type: " << type_to_string(type); + throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, + "predicate with type " + type_to_string(type)); } return nullptr; diff --git a/be/src/vec/columns/column_complex.h b/be/src/vec/columns/column_complex.h index 211de96df6..81cd6a45cb 100644 --- a/be/src/vec/columns/column_complex.h +++ b/be/src/vec/columns/column_complex.h @@ -235,7 +235,8 @@ public: [[noreturn]] int compare_at(size_t n, size_t m, const IColumn& rhs, int nan_direction_hint) const override { - LOG(FATAL) << "compare_at not implemented"; + throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, + "compare_at for " + std::string(get_family_name())); } void get_extremes(Field& min, Field& max) const override { diff --git a/regression-test/suites/query_p0/sql_functions/test_in_expr.groovy b/regression-test/suites/query_p0/sql_functions/test_in_expr.groovy index 4d37566020..cdaaa64126 100644 --- a/regression-test/suites/query_p0/sql_functions/test_in_expr.groovy +++ b/regression-test/suites/query_p0/sql_functions/test_in_expr.groovy @@ -130,4 +130,89 @@ suite("test_in_expr", "query") { qt_select """ SELECT CASE (TIMESTAMP '1970-12-04 03:51:34' NOT BETWEEN TIMESTAMP '1970-11-11 16:41:26' AND TIMESTAMP 'CURRENT_TIMESTAMP') WHEN (0.7532032132148743 BETWEEN 0.7817240953445435 AND CAST('.' AS FLOAT) ) THEN (- (- 2093562249)) WHEN CAST((true IN (false)) AS BOOLEAN) THEN (+ 1351956476) END FROM t11 WHERE (NULL IN (CASE CAST('-658171195' AS BOOLEAN) WHEN ((TIMESTAMP '1970-02-25 22:11:59') IS NOT NULL) THEN NULL WHEN ((true) IS NULL) THEN NULL END )) GROUP BY t11.c0 ORDER BY 1; """ + + sql " drop table if exists `array_in_test` " + sql """ + CREATE TABLE `array_in_test` ( + `id` int(11) NULL COMMENT "", + `c_array` ARRAY<int(11)> NULL COMMENT "" + ) + DISTRIBUTED BY HASH(`id`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + + sql """ INSERT INTO `array_in_test` VALUES (1, [1,2,3,4,5]); """ + + test { + sql """ select c_array, c_array in (null) from array_in_test; """ + exception "NOT_IMPLEMENTED_ERROR" + } + + sql " drop table if exists `json_in_test` " + sql """ + CREATE TABLE json_in_test ( + id INT, + j JSON + ) + DUPLICATE KEY(id) + DISTRIBUTED BY HASH(id) BUCKETS 10 + PROPERTIES("replication_num" = "1"); + """ + + sql """ INSERT INTO json_in_test VALUES(26, '{"k1":"v1", "k2": 200}'); """ + + test { + sql """ select j, j in (null) from json_in_test; """ + exception "NOT_IMPLEMENTED_ERROR" + } + + sql " drop table if exists `bitmap_in_test` " + sql """ + create table bitmap_in_test ( + datekey int, + hour int, + device_id bitmap BITMAP_UNION + ) + aggregate key (datekey, hour) + distributed by hash(datekey, hour) buckets 1 + properties( + "replication_num" = "1" + ); + """ + + sql """ insert into bitmap_in_test values (20200622, 1, to_bitmap(243));""" + test { + sql """ select device_id, device_id in (to_bitmap(1)) from bitmap_in_test; """ + exception "NOT_IMPLEMENTED_ERROR" + } + test { + sql """ select device_id, device_id in (to_bitmap(1),to_bitmap(2),to_bitmap(243)) from bitmap_in_test; """ + exception "NOT_IMPLEMENTED_ERROR" + } + + sql " drop table if exists `hll_in_test` " + sql """ + create table hll_in_test ( + id int, + pv hll hll_union + ) + Aggregate KEY (id) + distributed by hash(id) buckets 10 + PROPERTIES( + "replication_num" = "1" + ) + """ + + sql """ insert into hll_in_test values(1, hll_hash(1)) """ + test { + sql """ select id, pv in (hll_hash(1)) from hll_in_test; """ + exception "NOT_IMPLEMENTED_ERROR" + } + test { + sql """ select id, pv in (hll_hash(1), hll_hash(2)) from hll_in_test; """ + exception "NOT_IMPLEMENTED_ERROR" + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
