diff --git a/pkg/vm/engine/disttae/txn_table.go b/pkg/vm/engine/disttae/txn_table.go index be9f0289f665..62ef2fe8d3d7 100644 --- a/pkg/vm/engine/disttae/txn_table.go +++ b/pkg/vm/engine/disttae/txn_table.go @@ -715,7 +715,8 @@ func (tbl *txnTable) rangesOnePart( return } //deletes in tbl.writes maybe comes from PartitionState.rows or PartitionState.blocks. - if entry.fileName == "" { + if entry.fileName == "" && + entry.tableId != catalog.MO_DATABASE_ID && entry.tableId != catalog.MO_TABLES_ID && entry.tableId != catalog.MO_COLUMNS_ID { vs := vector.MustFixedCol[types.Rowid](entry.bat.GetVector(0)) for _, v := range vs { id, _ := v.Decode() diff --git a/test/distributed/cases/pessimistic_transaction/autocommit_isolation.result b/test/distributed/cases/pessimistic_transaction/autocommit_isolation.result index 68a140515545..1ca5758be476 100644 --- a/test/distributed/cases/pessimistic_transaction/autocommit_isolation.result +++ b/test/distributed/cases/pessimistic_transaction/autocommit_isolation.result @@ -539,3 +539,11 @@ c d 1 1 2 2 drop table if exists test_11; +create database test_drop_db; +set autocommit=0; +use test_drop_db; +drop database test_drop_db; +show databases like '%test_drop_db%'; +Database +test_drop_db +set autocommit=1; \ No newline at end of file diff --git a/test/distributed/cases/pessimistic_transaction/autocommit_isolation.sql b/test/distributed/cases/pessimistic_transaction/autocommit_isolation.sql index 6a37dab671f3..f5f640a71aaa 100644 --- a/test/distributed/cases/pessimistic_transaction/autocommit_isolation.sql +++ b/test/distributed/cases/pessimistic_transaction/autocommit_isolation.sql @@ -364,3 +364,9 @@ select * from test_11; -- @session} drop table if exists test_11; +create database test_drop_db; +set autocommit=0; +use test_drop_db; +drop database test_drop_db; +show databases like '%test_drop_db%'; +set autocommit=1;