# Copyright 2023 PingCAP, Inc.
#
# Licensed 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.

=> DBGInvoke __enable_schema_sync_service('true')
=> DBGInvoke __drop_tidb_table(default, test)
=> DBGInvoke __refresh_schemas()

=> DBGInvoke __mock_tidb_table(default, test, 'col_1 Int64')
=> DBGInvoke find_region_by_range('','',1)
┌─find_region_by_range("", "", 1)─┐
│ 0                               │
│                                 │
└─────────────────────────────────┘
=> DBGInvoke __region_snapshot(4, 0, 100, default, test)
=> DBGInvoke __raft_insert_row_full(default, test, 4, 2, 1, 0, 10)
=> DBGInvoke __raft_insert_row_full(default, test, 4, 1, 1, 0, 12)
=> DBGInvoke __raft_insert_row_full(default, test, 4, 3, 1, 0, 14)
=> DBGInvoke __raft_insert_row_full(default, test, 4, 4, 3, 0, 15)
=> DBGInvoke __raft_insert_row_full(default, test, 4, 5, 1, 0, 16)
=> DBGInvoke dump_all_mock_region(default, test)
┌─dump_all_mock_region(default, test)────────┐
│ [region_id=4] ranges: [0, 100), state: Normal │
│ total size: 1                              │
└────────────────────────────────────────────┘
=> DBGInvoke find_region_by_range('','',1)
┌─find_region_by_range("", "", 1)─┐
│ 1                               │
│ regions: 4                      │
└─────────────────────────────────┘
=> DBGInvoke region_split(4, default, test, 0, 4, 4, 100, 5)
┌─region_split(4, default, test, 0, 4, 4, 100, 5)─┐
│ execute batch split, region 4 into (4,5)        │
└─────────────────────────────────────────────────┘
=> DBGInvoke __raft_insert_row_full(default, test, 5, 10, 1, 0, 17)
=> DBGInvoke dump_all_mock_region(default, test)
┌─dump_all_mock_region(default, test)────────┐
│ [region_id=5] ranges: [4, 100), state: Normal │
│ [region_id=4] ranges: [0, 4), state: Normal   │
│ total size: 2                              │
└────────────────────────────────────────────┘
=> DBGInvoke find_region_by_range('','',1)
┌─find_region_by_range("", "", 1)─┐
│ 2                               │
│ regions: 5 4                    │
└─────────────────────────────────┘
=> DBGInvoke region_prepare_merge(4, 5);
┌─region_prepare_merge(4, 5)───────────────┐
│ execute prepare merge, source 4 target 5 │
└──────────────────────────────────────────┘
=> DBGInvoke region_commit_merge(4, 5);
┌─region_commit_merge(4, 5)────────────────┐
│ execute commit merge, source 4 current 5 │
└──────────────────────────────────────────┘
=> DBGInvoke dump_all_mock_region(default, test)
┌─dump_all_mock_region(default, test)────────┐
│ [region_id=5] ranges: [0, 100), state: Normal │
│ total size: 1                              │
└────────────────────────────────────────────┘
=> DBGInvoke __try_flush_region(5)
>> DBGInvoke query_mapped('manage table \$d.\$t merge delta', default, test)
=> DBGInvoke region_split(5, default, test, 0, 50, 50, 100, 6)
┌─region_split(5, default, test, 0, 50, 50, 100, 6)─┐
│ execute batch split, region 5 into (5,6)          │
└───────────────────────────────────────────────────┘
=> DBGInvoke __raft_insert_row_full(default, test, 5, 10, 3, 0, 19)
=> DBGInvoke dump_all_mock_region(default, test)
┌─dump_all_mock_region(default, test)───────────┐
│ [region_id=6] ranges: [50, 100), state: Normal   │
│ [region_id=5] ranges: [0, 50), state: Normal     │
│ total size: 2                                 │
└───────────────────────────────────────────────┘
=> DBGInvoke find_region_by_range('','',1)
┌─find_region_by_range("", "", 1)─┐
│ 2                               │
│ regions: 6 5                    │
└─────────────────────────────────┘

=> DBGInvoke query_mapped('select _tidb_rowid, col_1 from \$d.\$t order by _tidb_rowid', default, test)
┌─_tidb_rowid─┬─col_1─┐
│           1 │    12 │
│           2 │    10 │
│           3 │    14 │
│           4 │    15 │
│           5 │    16 │
│          10 │    19 │
└─────────────┴───────┘
=> DBGInvoke __drop_tidb_table(default, test)
=> DBGInvoke __refresh_schemas()
