This is an automated email from the ASF dual-hosted git repository.

kxiao 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 e39d234db9 [opt](inverted index) add more check for create inverted 
index (#22297)
e39d234db9 is described below

commit e39d234db9aa539692bff5c7cdfe3a295e94d846
Author: YueW <45946325+tany...@users.noreply.github.com>
AuthorDate: Thu Jul 27 20:33:24 2023 +0800

    [opt](inverted index) add more check for create inverted index (#22297)
---
 .../apache/doris/analysis/InvertedIndexUtil.java   | 14 ++++-
 .../inverted_index_p0/test_create_index_3.groovy   | 72 ++++++++++++++++++++++
 2 files changed, 85 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java
index 294f71dff6..84c99bfa73 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java
@@ -50,7 +50,19 @@ public class InvertedIndexUtil {
 
     public static void checkInvertedIndexParser(String indexColName, 
PrimitiveType colType,
             Map<String, String> properties) throws AnalysisException {
-        String parser = getInvertedIndexParser(properties);
+        String parser = null;
+        if (properties != null) {
+            parser = properties.get(INVERTED_INDEX_PARSER_KEY);
+            if (parser == null && !properties.isEmpty()) {
+                throw new AnalysisException("invalid index properties, please 
check the properties");
+            }
+        }
+
+        // default is "none" if not set
+        if (parser == null) {
+            parser = INVERTED_INDEX_PARSER_NONE;
+        }
+
         if (colType.isStringType()) {
             if (!(parser.equals(INVERTED_INDEX_PARSER_NONE)
                     || parser.equals(INVERTED_INDEX_PARSER_STANDARD)
diff --git 
a/regression-test/suites/inverted_index_p0/test_create_index_3.groovy 
b/regression-test/suites/inverted_index_p0/test_create_index_3.groovy
new file mode 100644
index 0000000000..10e7a4a5a7
--- /dev/null
+++ b/regression-test/suites/inverted_index_p0/test_create_index_3.groovy
@@ -0,0 +1,72 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+
+suite("test_create_index_3", "inverted_index"){
+    // prepare test table
+    def indexTbName1 = "test_create_index_3"
+
+    sql "DROP TABLE IF EXISTS ${indexTbName1}"
+    // case 1: create table with index
+    def create_index_result = "fail"
+    try {
+        sql """
+                CREATE TABLE IF NOT EXISTS ${indexTbName1} (
+                    id INT DEFAULT '10',
+                    name VARCHAR(32) DEFAULT '',
+                    INDEX name_idx(name) USING INVERTED PROPERTIES("parse" = 
"english") COMMENT 'name index'
+                )
+                DUPLICATE KEY(id)
+                DISTRIBUTED BY HASH(id) BUCKETS 10
+                PROPERTIES("replication_num" = "1");
+        """
+        create_index_result = "success"
+    } catch(Exception ex) {
+        logger.info("typo for parser , result: " + ex)
+    }
+    assertEquals(create_index_result, "fail")
+
+    // case 2: alter add index
+    sql """
+                CREATE TABLE IF NOT EXISTS ${indexTbName1} (
+                    id INT DEFAULT '10',
+                    name VARCHAR(32) DEFAULT ''
+                )
+                DUPLICATE KEY(id)
+                DISTRIBUTED BY HASH(id) BUCKETS 10
+                PROPERTIES("replication_num" = "1");
+        """
+    
+    try {
+        sql """
+            create index name_idx on ${indexTbName1}(name) using inverted 
properties("parse" = "english") comment 'name index';
+        """
+        create_index_result = "success"
+    } catch(Exception ex) {
+        logger.info("typo for parser , result: " + ex)
+    }
+    assertEquals(create_index_result, "fail")
+
+    sql """
+            create index name_idx on ${indexTbName1}(name) using inverted 
properties("parser" = "english") comment 'name index';
+        """
+    
+    def show_result = sql "show index from ${indexTbName1}"
+    logger.info("show index from " + indexTbName1 + " result: " + show_result)
+    assertEquals(show_result.size(), 1)
+    assertEquals(show_result[0][2], "name_idx")
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to