| 470 | } |
| 471 | |
| 472 | IMergeTreeReader::ColumnPosition MergeTreeReaderCompact::findColumnForOffsets(const String & column_name) const |
| 473 | { |
| 474 | String table_name = Nested::extractTableName(column_name); |
| 475 | for (const auto & part_column : data_part->getColumns()) |
| 476 | { |
| 477 | if (typeid_cast<const DataTypeArray *>(part_column.type.get())) |
| 478 | { |
| 479 | auto compact_part = std::dynamic_pointer_cast<const MergeTreeDataPartCompact>(data_part); |
| 480 | if (!compact_part) |
| 481 | throw Exception("Can not convert part into MergeTreeDataPartCompact in MergeTreeReaderCompact.", ErrorCodes::LOGICAL_ERROR); |
| 482 | auto position = compact_part->getColumnPositionWithoutMap(part_column.name); |
| 483 | if (position && Nested::extractTableName(part_column.name) == table_name) |
| 484 | return position; |
| 485 | } |
| 486 | } |
| 487 | |
| 488 | return {}; |
| 489 | } |
| 490 | |
| 491 | bool MergeTreeReaderCompact::isContinuousReading(size_t mark, size_t column_position) |
| 492 | { |
nothing calls this directly
no test coverage detected