@@ -238,11 +238,6 @@ class MultiBlockMerger {
238
238
RowRefComparator _cmp;
239
239
};
240
240
241
- RowBlockChanger::RowBlockChanger (TabletSchemaSPtr tablet_schema, DescriptorTbl desc_tbl)
242
- : _desc_tbl(desc_tbl) {
243
- _schema_mapping.resize (tablet_schema->num_columns ());
244
- }
245
-
246
241
RowBlockChanger::RowBlockChanger (TabletSchemaSPtr tablet_schema,
247
242
const DeleteHandler* delete_handler, DescriptorTbl desc_tbl)
248
243
: _desc_tbl(desc_tbl) {
@@ -1137,7 +1132,8 @@ void RowBlockMerger::_pop_heap() {
1137
1132
}
1138
1133
1139
1134
Status LinkedSchemaChange::process (RowsetReaderSharedPtr rowset_reader, RowsetWriter* rowset_writer,
1140
- TabletSharedPtr new_tablet, TabletSharedPtr base_tablet) {
1135
+ TabletSharedPtr new_tablet,
1136
+ TabletSchemaSPtr base_tablet_schema) {
1141
1137
// In some cases, there may be more than one type of rowset in a tablet,
1142
1138
// in which case the conversion cannot be done directly by linked schema change,
1143
1139
// but requires direct schema change to rewrite the data.
@@ -1146,7 +1142,7 @@ Status LinkedSchemaChange::process(RowsetReaderSharedPtr rowset_reader, RowsetWr
1146
1142
<< " in base tablet " << base_tablet->tablet_id () << " is not same as type "
1147
1143
<< rowset_writer->type () << " , use direct schema change." ;
1148
1144
return SchemaChangeHandler::get_sc_procedure (_row_block_changer, false , true )
1149
- ->process (rowset_reader, rowset_writer, new_tablet, base_tablet );
1145
+ ->process (rowset_reader, rowset_writer, new_tablet, base_tablet_schema );
1150
1146
} else {
1151
1147
Status status = rowset_writer->add_rowset_for_linked_schema_change (rowset_reader->rowset ());
1152
1148
if (!status) {
@@ -1201,7 +1197,7 @@ Status reserve_block(std::unique_ptr<RowBlock, RowBlockDeleter>* block_handle_pt
1201
1197
1202
1198
Status SchemaChangeDirectly::_inner_process (RowsetReaderSharedPtr rowset_reader,
1203
1199
RowsetWriter* rowset_writer, TabletSharedPtr new_tablet,
1204
- TabletSharedPtr base_tablet ) {
1200
+ TabletSchemaSPtr base_tablet_schema ) {
1205
1201
if (_row_block_allocator == nullptr ) {
1206
1202
_row_block_allocator = new RowBlockAllocator (new_tablet->tablet_schema (), 0 );
1207
1203
if (_row_block_allocator == nullptr ) {
@@ -1271,17 +1267,21 @@ Status SchemaChangeDirectly::_inner_process(RowsetReaderSharedPtr rowset_reader,
1271
1267
Status VSchemaChangeDirectly::_inner_process (RowsetReaderSharedPtr rowset_reader,
1272
1268
RowsetWriter* rowset_writer,
1273
1269
TabletSharedPtr new_tablet,
1274
- TabletSharedPtr base_tablet ) {
1270
+ TabletSchemaSPtr base_tablet_schema ) {
1275
1271
auto new_block =
1276
1272
std::make_unique<vectorized::Block>(new_tablet->tablet_schema ()->create_block ());
1277
- auto ref_block =
1278
- std::make_unique<vectorized::Block>(base_tablet->tablet_schema ()->create_block ());
1273
+ auto ref_block = std::make_unique<vectorized::Block>(base_tablet_schema->create_block ());
1279
1274
1280
1275
int origin_columns_size = ref_block->columns ();
1276
+ LOG (INFO) << " origin columns size: " << origin_columns_size;
1277
+ LOG (INFO) << " ssref block: " << ref_block->dump_structure ();
1281
1278
1282
1279
rowset_reader->next_block (ref_block.get ());
1283
1280
while (ref_block->rows ()) {
1284
1281
RETURN_IF_ERROR (_changer.change_block (ref_block.get (), new_block.get ()));
1282
+ LOG (INFO) << " ref block: " << ref_block->dump_structure ();
1283
+ LOG (INFO) << " new block: " << new_block->dump_structure ();
1284
+ LOG (INFO) << " new block: " << new_block->dump_structure ();
1285
1285
RETURN_IF_ERROR (rowset_writer->add_block (new_block.get ()));
1286
1286
1287
1287
new_block->clear_column_data ();
@@ -1320,7 +1320,7 @@ VSchemaChangeWithSorting::VSchemaChangeWithSorting(const RowBlockChanger& row_bl
1320
1320
Status SchemaChangeWithSorting::_inner_process (RowsetReaderSharedPtr rowset_reader,
1321
1321
RowsetWriter* rowset_writer,
1322
1322
TabletSharedPtr new_tablet,
1323
- TabletSharedPtr base_tablet ) {
1323
+ TabletSchemaSPtr base_tablet_schema ) {
1324
1324
if (_row_block_allocator == nullptr ) {
1325
1325
_row_block_allocator =
1326
1326
new (nothrow) RowBlockAllocator (new_tablet->tablet_schema (), _memory_limitation);
@@ -1488,7 +1488,7 @@ Status SchemaChangeWithSorting::_inner_process(RowsetReaderSharedPtr rowset_read
1488
1488
Status VSchemaChangeWithSorting::_inner_process (RowsetReaderSharedPtr rowset_reader,
1489
1489
RowsetWriter* rowset_writer,
1490
1490
TabletSharedPtr new_tablet,
1491
- TabletSharedPtr base_tablet ) {
1491
+ TabletSchemaSPtr base_tablet_schema ) {
1492
1492
// for internal sorting
1493
1493
std::vector<std::unique_ptr<vectorized::Block>> blocks;
1494
1494
@@ -1511,8 +1511,7 @@ Status VSchemaChangeWithSorting::_inner_process(RowsetReaderSharedPtr rowset_rea
1511
1511
1512
1512
auto new_block =
1513
1513
std::make_unique<vectorized::Block>(new_tablet->tablet_schema ()->create_block ());
1514
- auto ref_block =
1515
- std::make_unique<vectorized::Block>(base_tablet->tablet_schema ()->create_block ());
1514
+ auto ref_block = std::make_unique<vectorized::Block>(base_tablet_schema->create_block ());
1516
1515
1517
1516
int origin_columns_size = ref_block->columns ();
1518
1517
@@ -2072,7 +2071,7 @@ Status SchemaChangeHandler::_convert_historical_rowsets(const SchemaChangeParams
2072
2071
}
2073
2072
2074
2073
if (res = sc_procedure->process (rs_reader, rowset_writer.get (), sc_params.new_tablet ,
2075
- sc_params. base_tablet );
2074
+ base_tablet_schema );
2076
2075
!res) {
2077
2076
LOG (WARNING) << " failed to process the version."
2078
2077
<< " version=" << rs_reader->version ().first << " -"
0 commit comments