From 9d54545bac189ab5def919ca174f2fe660fe65a0 Mon Sep 17 00:00:00 2001 From: airborne12 Date: Fri, 19 May 2023 14:57:01 +0800 Subject: [PATCH] [Fix](inverted index) add datev2/datetimev2 for inverted index column type (#19845) When we try to query array of datetimev2 column by inverted index, it returns an error like this: CREATE TABLE `nested` ( `qid` bigint(20) NULL, `tag` array NULL, `creationDate` datetime NULL, `title` text NULL, `user` text NULL, `answers.user` array NULL, `answers.date` array NULL, INDEX tag_idx (`tag`) USING INVERTED PROPERTIES("parser" = "english") COMMENT '', INDEX creation_date_idx (`creationDate`) USING INVERTED COMMENT '', INDEX title_idx (`title`) USING INVERTED COMMENT '', INDEX user_idx (`user`) USING INVERTED COMMENT '', INDEX answers_user_idx (`answers.user`) USING INVERTED COMMENT '', INDEX answers_date_idx (`answers.date`) USING INVERTED COMMENT '' ) ENGINE=OLAP DUPLICATE KEY(`qid`) COMMENT 'OLAP' DISTRIBUTED BY HASH(`qid`) BUCKETS 18 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "storage_format" = "V2", "compression" = "ZSTD", "light_schema_change" = "true", "dynamic_schema" = "true", "disable_auto_compaction" = "false" ); mysql> select * from nested.nested where tag match 'java' and `answers.date` element_le '2012-04-08T21:15:33.873Z' limit 10; ERROR 1105 (HY000): errCode = 2, detailMessage = no function found for MATCH_ELEMENT_LE,`answers.date` MA --- fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java index 8ab42d8fe7..3de0eadea6 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java @@ -149,6 +149,10 @@ public abstract class Type { numericDateTimeTypes = Lists.newArrayList(); numericDateTimeTypes.add(DATE); numericDateTimeTypes.add(DATETIME); + numericDateTimeTypes.add(DATEV2); + numericDateTimeTypes.add(DATETIMEV2); + numericDateTimeTypes.add(TIME); + numericDateTimeTypes.add(TIMEV2); numericDateTimeTypes.addAll(numericTypes); trivialTypes = Lists.newArrayList();