This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 11af976e8b4 [fix](planner) Empty table source should not begin a
transaction to avoid infinite transaction (#38991)
11af976e8b4 is described below
commit 11af976e8b4bb0711eacdde26f1afd3b774031ad
Author: Siyang Tang <[email protected]>
AuthorDate: Wed Aug 7 23:53:54 2024 +0800
[fix](planner) Empty table source should not begin a transaction to avoid
infinite transaction (#38991)
## Proposed changes
Issue Number: close #38956
As title.
---
.../commands/insert/InsertIntoTableCommand.java | 7 ++--
.../test_alter_table_after_empty_insert.groovy | 37 ++++++++++++++++++++++
2 files changed, 41 insertions(+), 3 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
index 1f1409e41c0..349359b5571 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
@@ -209,9 +209,10 @@ public class InsertIntoTableCommand extends Command
implements ForwardWithSync,
// TODO: support other table types
throw new AnalysisException("insert into command only support
[olap, hive, iceberg] table");
}
-
- insertExecutor.beginTransaction();
- insertExecutor.finalizeSink(planner.getFragments().get(0), sink,
physicalSink);
+ if (!insertExecutor.isEmptyInsert()) {
+ insertExecutor.beginTransaction();
+ insertExecutor.finalizeSink(planner.getFragments().get(0),
sink, physicalSink);
+ }
targetTableIf.readUnlock();
} catch (Throwable e) {
targetTableIf.readUnlock();
diff --git
a/regression-test/suites/schema_change_p0/test_alter_table_after_empty_insert.groovy
b/regression-test/suites/schema_change_p0/test_alter_table_after_empty_insert.groovy
new file mode 100644
index 00000000000..d96729b8779
--- /dev/null
+++
b/regression-test/suites/schema_change_p0/test_alter_table_after_empty_insert.groovy
@@ -0,0 +1,37 @@
+// 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_alter_table_after_empty_insert") {
+ def tableName = "test_alter_table_after_empty_insert"
+ sql """ DROP TABLE IF EXISTS ${tableName} """
+ sql """
+ CREATE TABLE IF NOT EXISTS ${tableName} (
+ k BIGINT,
+ v SMALLINT NOT NULL,
+ t TEXT NOT NULL
+ )
+ DUPLICATE KEY(`k`)
+ DISTRIBUTED BY HASH(`k`) BUCKETS 4
+ PROPERTIES("replication_num" = "1")
+ """
+ sql """ INSERT INTO ${tableName} SELECT * FROM ${tableName} """
+ sql """ ALTER TABLE ${tableName} MODIFY COLUMN v BIGINT AFTER t """
+ waitForSchemaChangeDone {
+ sql """ SHOW ALTER TABLE COLUMN WHERE IndexName='${tableName}' ORDER
BY createtime DESC LIMIT 1 """
+ time 60
+ }
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]