From a5a1ec34f8d7274993a7288b1e9a0813317fb825 Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Wed, 9 Oct 2024 21:44:32 +0800 Subject: [PATCH 1/7] draft --- .../doris/nereids/rules/analysis/BindSink.java | 7 ++++++- .../org/apache/doris/qe/SessionVariable.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java index 9500d07cdfd372..90bd9f78980040 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java @@ -75,6 +75,8 @@ import org.apache.doris.nereids.util.ExpressionUtils; import org.apache.doris.nereids.util.RelationUtil; import org.apache.doris.nereids.util.TypeCoercionUtils; +import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -199,9 +201,12 @@ private Plan bindOlapTableSink(MatchingContext> ctx) { // including the following cases: // 1. it's a load job with `partial_columns=true` // 2. UPDATE and DELETE, planner will automatically add these hidden columns + // 3. session value `skip_insert_sequence_check` is true if (!haveInputSeqCol && !isPartialUpdate && ( boundSink.getDmlCommandType() != DMLCommandType.UPDATE - && boundSink.getDmlCommandType() != DMLCommandType.DELETE)) { + && boundSink.getDmlCommandType() != DMLCommandType.DELETE) && ( + boundSink.getDmlCommandType() != DMLCommandType.INSERT + || !ConnectContext.get().getSessionVariable().isSkipInsertSequenceCheck())) { if (!seqColInTable.isPresent() || seqColInTable.get().getDefaultValue() == null || !seqColInTable.get().getDefaultValue() .equalsIgnoreCase(DefaultValue.CURRENT_TIMESTAMP)) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 60d1b914c95191..9f2d8183956a8b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -662,6 +662,7 @@ public class SessionVariable implements Serializable, Writable { "enable_adaptive_pipeline_task_serial_read_on_limit"; public static final String ADAPTIVE_PIPELINE_TASK_SERIAL_READ_ON_LIMIT = "adaptive_pipeline_task_serial_read_on_limit"; + public static final String SKIP_INSERT_SEQUENCE_CHECK = "skip_insert_sequence_check"; public static final String ENABLE_PHRASE_QUERY_SEQUENYIAL_OPT = "enable_phrase_query_sequential_opt"; @@ -2177,6 +2178,13 @@ public void setIgnoreShapePlanNodes(String ignoreShapePlanNodes) { }) public boolean enablePhraseQuerySequentialOpt = true; + @VariableMgr.VarAttr(name = SKIP_INSERT_SEQUENCE_CHECK, needForward = true, description = { + "对于使用了sequence列的unique key表,insert into操作会要求必须提供每一行的sequence列的值,开启该变量后将跳过该检查", + "For unique key tables using a sequence column, the INSERT INTO operation requires a sequence value" + + " to be provided for each row. When this variable is enabled, the check will be skipped" + }) + public boolean skipInsertSequenceCheck = false; + public void setEnableEsParallelScroll(boolean enableESParallelScroll) { this.enableESParallelScroll = enableESParallelScroll; } @@ -3626,6 +3634,14 @@ public boolean isEnableSegmentCache() { return this.enableSegmentCache; } + public void setSkipInsertSequenceCheck(boolean value) { + this.skipInsertSequenceCheck = true; + } + + public boolean isSkipInsertSequenceCheck() { + return this.skipInsertSequenceCheck; + } + /** * Serialize to thrift object. * Used for rest api. From 9df07848a7deb4f8615767f8088cac89963d3c4a Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Thu, 10 Oct 2024 15:24:49 +0800 Subject: [PATCH 2/7] update case --- .../doris/analysis/NativeInsertStmt.java | 3 ++- .../nereids/rules/analysis/BindSink.java | 1 - .../unique/test_unique_table_sequence.groovy | 22 +++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java index 904f656dae19dc..5c53c9b87e9ff6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java @@ -502,7 +502,8 @@ private void analyzeTargetTable(Analyzer analyzer) throws AnalysisException { } if (!haveInputSeqCol && !isPartialUpdate && !isFromDeleteOrUpdateStmt - && !analyzer.getContext().getSessionVariable().isEnableUniqueKeyPartialUpdate()) { + && !analyzer.getContext().getSessionVariable().isEnableUniqueKeyPartialUpdate() + && !analyzer.getContext().getSessionVariable().isSkipInsertSequenceCheck()) { if (!seqColInTable.isPresent() || seqColInTable.get().getDefaultValue() == null || !seqColInTable.get().getDefaultValue() .equalsIgnoreCase(DefaultValue.CURRENT_TIMESTAMP)) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java index 90bd9f78980040..26bb49095f2eaf 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java @@ -76,7 +76,6 @@ import org.apache.doris.nereids.util.RelationUtil; import org.apache.doris.nereids.util.TypeCoercionUtils; import org.apache.doris.qe.ConnectContext; -import org.apache.doris.qe.SessionVariable; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; diff --git a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy index 460d850581b2d0..f2ba1766fed7f8 100644 --- a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy +++ b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy @@ -122,6 +122,12 @@ suite("test_unique_table_sequence") { exception "Table ${tableName} has sequence column, need to specify the sequence column" } + // with `skip_insert_sequence_check=true`, previous insert operation should success + sql "set skip_insert_sequence_check=true" + sql "INSERT INTO ${tableName} values(15, 8, 19, 20, 21)" + sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4) values(15, 8, 19, 20, 21)" + sql "set skip_insert_sequence_check=false" + // correct way of insert into with seq col sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4, __DORIS_SEQUENCE_COL__) values(15, 8, 19, 20, 21, 3)" @@ -133,7 +139,23 @@ suite("test_unique_table_sequence") { order_qt_all "SELECT k1, v1, v2, v3, v4,__DORIS_DELETE_SIGN__,__DORIS_VERSION_COL__,__DORIS_SEQUENCE_COL__ from ${tableName}" + def tableNameClone = tableName + "_clone" + sql "create table ${tableNameClone} like ${tableName}" + + // test insert into select * + test { + sql "INSERT INTO ${tableNameClone} select * from ${tableName}" + exception "Table ${tableName} has sequence column, need to specify the sequence column" + } + // with `skip_insert_sequence_check=true`, previous insert operation should success + sql "set skip_insert_sequence_check=true" + sql "INSERT INTO ${tableNameClone} select * from ${tableName}" + sql "set skip_insert_sequence_check=false" + + order_qt_all_clone_table "SELECT * from ${tableNameClone}" + sql "DROP TABLE ${tableName}" + sql "DROP TABLE ${tableNameClone}" sql "DROP TABLE IF EXISTS ${tableName}" sql """ From b2f1e8797e30c22d107042d9670d0a099e4a6312 Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Thu, 10 Oct 2024 15:42:38 +0800 Subject: [PATCH 3/7] update case --- .../unique/test_unique_table_sequence.groovy | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy index f2ba1766fed7f8..8fec3c77fa31e6 100644 --- a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy +++ b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy @@ -123,10 +123,13 @@ suite("test_unique_table_sequence") { } // with `skip_insert_sequence_check=true`, previous insert operation should success - sql "set skip_insert_sequence_check=true" + sql "SET skip_insert_sequence_check=true" + sql "INSERT INTO ${tableName} values(15, 8, 19, 20, 21)" + sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4) values(15, 8, 19, 20, 21)" - sql "set skip_insert_sequence_check=false" + + sql "SET skip_insert_sequence_check=false" // correct way of insert into with seq col sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4, __DORIS_SEQUENCE_COL__) values(15, 8, 19, 20, 21, 3)" @@ -139,6 +142,8 @@ suite("test_unique_table_sequence") { order_qt_all "SELECT k1, v1, v2, v3, v4,__DORIS_DELETE_SIGN__,__DORIS_VERSION_COL__,__DORIS_SEQUENCE_COL__ from ${tableName}" + sql "SET show_hidden_columns=false" + def tableNameClone = tableName + "_clone" sql "create table ${tableNameClone} like ${tableName}" @@ -147,10 +152,15 @@ suite("test_unique_table_sequence") { sql "INSERT INTO ${tableNameClone} select * from ${tableName}" exception "Table ${tableName} has sequence column, need to specify the sequence column" } + // with `skip_insert_sequence_check=true`, previous insert operation should success - sql "set skip_insert_sequence_check=true" + sql "SET skip_insert_sequence_check=true" + sql "INSERT INTO ${tableNameClone} select * from ${tableName}" - sql "set skip_insert_sequence_check=false" + + sql "SET skip_insert_sequence_check=false" + + sql "SET show_hidden_columns=true" order_qt_all_clone_table "SELECT * from ${tableNameClone}" From 85fe1c690cf7d775749f1440b5a6c66889282637 Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Thu, 10 Oct 2024 15:59:25 +0800 Subject: [PATCH 4/7] update output --- .../unique/test_unique_table_sequence.out | 16 ++++++++++++++-- .../unique/test_unique_table_sequence.groovy | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/regression-test/data/data_model_p0/unique/test_unique_table_sequence.out b/regression-test/data/data_model_p0/unique/test_unique_table_sequence.out index 5197721c926eba..9bcf0dbf05cd4c 100644 --- a/regression-test/data/data_model_p0/unique/test_unique_table_sequence.out +++ b/regression-test/data/data_model_p0/unique/test_unique_table_sequence.out @@ -41,10 +41,16 @@ -- !all -- 1 10 15 16 17 0 4 15 -15 8 19 20 21 0 7 3 +15 8 19 20 21 0 9 3 2 5 14 13 14 0 5 12 3 6 11 14 15 0 6 13 +-- !all_clone_table -- +1 10 15 16 17 0 2 \N +15 8 19 20 21 0 2 \N +2 5 14 13 14 0 2 \N +3 6 11 14 15 0 2 \N + -- !1 -- 1 1 1 1 1 0 2 1 2 2 2 2 2 0 2 2 @@ -102,10 +108,16 @@ -- !all -- 1 10 15 16 17 0 4 15 -15 8 19 20 21 0 7 3 +15 8 19 20 21 0 9 3 2 5 14 13 14 0 5 12 3 6 11 14 15 0 6 13 +-- !all_clone_table -- +1 10 15 16 17 0 2 \N +15 8 19 20 21 0 2 \N +2 5 14 13 14 0 2 \N +3 6 11 14 15 0 2 \N + -- !1 -- 1 1 1 1 1 0 2 1 2 2 2 2 2 0 2 2 diff --git a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy index 8fec3c77fa31e6..e0fdaabdc68e1f 100644 --- a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy +++ b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy @@ -145,12 +145,13 @@ suite("test_unique_table_sequence") { sql "SET show_hidden_columns=false" def tableNameClone = tableName + "_clone" + sql "DROP TABLE IF EXISTS ${tableNameClone}" sql "create table ${tableNameClone} like ${tableName}" // test insert into select * test { sql "INSERT INTO ${tableNameClone} select * from ${tableName}" - exception "Table ${tableName} has sequence column, need to specify the sequence column" + exception "Table ${tableNameClone} has sequence column, need to specify the sequence column" } // with `skip_insert_sequence_check=true`, previous insert operation should success From 52e8b6697df6678415d38807d7c5852df8eb2566 Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Thu, 10 Oct 2024 17:40:01 +0800 Subject: [PATCH 5/7] update session variable name --- .../doris/analysis/NativeInsertStmt.java | 2 +- .../nereids/rules/analysis/BindSink.java | 4 ++-- .../org/apache/doris/qe/SessionVariable.java | 20 +++++++++---------- .../unique/test_unique_table_sequence.groovy | 12 +++++------ 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java index 5c53c9b87e9ff6..41074e99852f13 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java @@ -503,7 +503,7 @@ private void analyzeTargetTable(Analyzer analyzer) throws AnalysisException { if (!haveInputSeqCol && !isPartialUpdate && !isFromDeleteOrUpdateStmt && !analyzer.getContext().getSessionVariable().isEnableUniqueKeyPartialUpdate() - && !analyzer.getContext().getSessionVariable().isSkipInsertSequenceCheck()) { + && !analyzer.getContext().getSessionVariable().isRequireSequenceInInsert()) { if (!seqColInTable.isPresent() || seqColInTable.get().getDefaultValue() == null || !seqColInTable.get().getDefaultValue() .equalsIgnoreCase(DefaultValue.CURRENT_TIMESTAMP)) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java index 26bb49095f2eaf..2e5aaad9b10672 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java @@ -200,12 +200,12 @@ private Plan bindOlapTableSink(MatchingContext> ctx) { // including the following cases: // 1. it's a load job with `partial_columns=true` // 2. UPDATE and DELETE, planner will automatically add these hidden columns - // 3. session value `skip_insert_sequence_check` is true + // 3. session value `require_sequence_in_insert` is false if (!haveInputSeqCol && !isPartialUpdate && ( boundSink.getDmlCommandType() != DMLCommandType.UPDATE && boundSink.getDmlCommandType() != DMLCommandType.DELETE) && ( boundSink.getDmlCommandType() != DMLCommandType.INSERT - || !ConnectContext.get().getSessionVariable().isSkipInsertSequenceCheck())) { + || !ConnectContext.get().getSessionVariable().isRequireSequenceInInsert())) { if (!seqColInTable.isPresent() || seqColInTable.get().getDefaultValue() == null || !seqColInTable.get().getDefaultValue() .equalsIgnoreCase(DefaultValue.CURRENT_TIMESTAMP)) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 9f2d8183956a8b..6a451764b881d0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -662,7 +662,7 @@ public class SessionVariable implements Serializable, Writable { "enable_adaptive_pipeline_task_serial_read_on_limit"; public static final String ADAPTIVE_PIPELINE_TASK_SERIAL_READ_ON_LIMIT = "adaptive_pipeline_task_serial_read_on_limit"; - public static final String SKIP_INSERT_SEQUENCE_CHECK = "skip_insert_sequence_check"; + public static final String REQUIRE_SEQUENCE_IN_INSERT = "require_sequence_in_insert"; public static final String ENABLE_PHRASE_QUERY_SEQUENYIAL_OPT = "enable_phrase_query_sequential_opt"; @@ -2178,12 +2178,12 @@ public void setIgnoreShapePlanNodes(String ignoreShapePlanNodes) { }) public boolean enablePhraseQuerySequentialOpt = true; - @VariableMgr.VarAttr(name = SKIP_INSERT_SEQUENCE_CHECK, needForward = true, description = { - "对于使用了sequence列的unique key表,insert into操作会要求必须提供每一行的sequence列的值,开启该变量后将跳过该检查", - "For unique key tables using a sequence column, the INSERT INTO operation requires a sequence value" - + " to be provided for each row. When this variable is enabled, the check will be skipped" + @VariableMgr.VarAttr(name = REQUIRE_SEQUENCE_IN_INSERT, needForward = true, description = { + "该变量用于控制,使用了sequence列的unique key表,insert into操作是否要求必须提供每一行的sequence列的值", + "This variable controls whether the INSERT INTO operation on unique key tables with a sequence" + + " column requires a sequence column to be provided for each row" }) - public boolean skipInsertSequenceCheck = false; + public boolean requireSequenceInInsert = true; public void setEnableEsParallelScroll(boolean enableESParallelScroll) { this.enableESParallelScroll = enableESParallelScroll; @@ -3634,12 +3634,12 @@ public boolean isEnableSegmentCache() { return this.enableSegmentCache; } - public void setSkipInsertSequenceCheck(boolean value) { - this.skipInsertSequenceCheck = true; + public void setRequireSequenceInInsert(boolean value) { + this.requireSequenceInInsert = value; } - public boolean isSkipInsertSequenceCheck() { - return this.skipInsertSequenceCheck; + public boolean isRequireSequenceInInsert() { + return this.requireSequenceInInsert; } /** diff --git a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy index e0fdaabdc68e1f..3641b2b59b5599 100644 --- a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy +++ b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy @@ -122,14 +122,14 @@ suite("test_unique_table_sequence") { exception "Table ${tableName} has sequence column, need to specify the sequence column" } - // with `skip_insert_sequence_check=true`, previous insert operation should success - sql "SET skip_insert_sequence_check=true" + // with `require_sequence_in_insert=false`, previous insert operation should success + sql "SET require_sequence_in_insert=false" sql "INSERT INTO ${tableName} values(15, 8, 19, 20, 21)" sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4) values(15, 8, 19, 20, 21)" - sql "SET skip_insert_sequence_check=false" + sql "SET require_sequence_in_insert=false" // correct way of insert into with seq col sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4, __DORIS_SEQUENCE_COL__) values(15, 8, 19, 20, 21, 3)" @@ -154,12 +154,12 @@ suite("test_unique_table_sequence") { exception "Table ${tableNameClone} has sequence column, need to specify the sequence column" } - // with `skip_insert_sequence_check=true`, previous insert operation should success - sql "SET skip_insert_sequence_check=true" + // with `require_sequence_in_insert=true`, previous insert operation should success + sql "SET require_sequence_in_insert=false" sql "INSERT INTO ${tableNameClone} select * from ${tableName}" - sql "SET skip_insert_sequence_check=false" + sql "SET require_sequence_in_insert=true" sql "SET show_hidden_columns=true" From 0e239d77950daa7d5b6914397ede2b621ece63ee Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Thu, 10 Oct 2024 19:22:13 +0800 Subject: [PATCH 6/7] fix --- .../main/java/org/apache/doris/analysis/NativeInsertStmt.java | 2 +- .../java/org/apache/doris/nereids/rules/analysis/BindSink.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java index 41074e99852f13..e70fbd71117cde 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java @@ -503,7 +503,7 @@ private void analyzeTargetTable(Analyzer analyzer) throws AnalysisException { if (!haveInputSeqCol && !isPartialUpdate && !isFromDeleteOrUpdateStmt && !analyzer.getContext().getSessionVariable().isEnableUniqueKeyPartialUpdate() - && !analyzer.getContext().getSessionVariable().isRequireSequenceInInsert()) { + && analyzer.getContext().getSessionVariable().isRequireSequenceInInsert()) { if (!seqColInTable.isPresent() || seqColInTable.get().getDefaultValue() == null || !seqColInTable.get().getDefaultValue() .equalsIgnoreCase(DefaultValue.CURRENT_TIMESTAMP)) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java index 2e5aaad9b10672..7e6e9820e5dd41 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java @@ -205,7 +205,7 @@ private Plan bindOlapTableSink(MatchingContext> ctx) { boundSink.getDmlCommandType() != DMLCommandType.UPDATE && boundSink.getDmlCommandType() != DMLCommandType.DELETE) && ( boundSink.getDmlCommandType() != DMLCommandType.INSERT - || !ConnectContext.get().getSessionVariable().isRequireSequenceInInsert())) { + || ConnectContext.get().getSessionVariable().isRequireSequenceInInsert())) { if (!seqColInTable.isPresent() || seqColInTable.get().getDefaultValue() == null || !seqColInTable.get().getDefaultValue() .equalsIgnoreCase(DefaultValue.CURRENT_TIMESTAMP)) { From f218c1992d8ad8acdb1cbbee1aba9aa51ff3eb38 Mon Sep 17 00:00:00 2001 From: Chen Zhang Date: Thu, 10 Oct 2024 21:34:34 +0800 Subject: [PATCH 7/7] fix --- .../data_model_p0/unique/test_unique_table_sequence.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy index 3641b2b59b5599..8cbc564cf3ce84 100644 --- a/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy +++ b/regression-test/suites/data_model_p0/unique/test_unique_table_sequence.groovy @@ -129,7 +129,7 @@ suite("test_unique_table_sequence") { sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4) values(15, 8, 19, 20, 21)" - sql "SET require_sequence_in_insert=false" + sql "SET require_sequence_in_insert=true" // correct way of insert into with seq col sql "INSERT INTO ${tableName} (k1, v1, v2, v3, v4, __DORIS_SEQUENCE_COL__) values(15, 8, 19, 20, 21, 3)"