Skip to content

Commit

Permalink
Fix ut falied
Browse files Browse the repository at this point in the history
  • Loading branch information
baibaichen committed Jan 27, 2025
1 parent 9c32b8d commit fd7cd44
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
12 changes: 6 additions & 6 deletions cpp-ch/local-engine/Storages/Parquet/ParquetMeta.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ std::vector<Int32> ParquetMetaBuilder::pruneColumn(

std::unique_ptr<ColumnIndexStore> ParquetMetaBuilder::collectColumnIndex(
const parquet::RowGroupMetaData & rgMeta,
parquet::RowGroupPageIndexReader & rowGroupIndex,
parquet::RowGroupPageIndexReader & rowGroupPageIndex,
const std::vector<Int32> & column_indices,
bool case_insensitive)
{
Expand All @@ -75,8 +75,8 @@ std::unique_ptr<ColumnIndexStore> ParquetMetaBuilder::collectColumnIndex(
for (auto const column_index : column_indices)
{
const auto * col_desc = rgMeta.schema()->Column(column_index);
const auto col_index = rowGroupIndex.GetColumnIndex(column_index);
const auto offset_index = rowGroupIndex.GetOffsetIndex(column_index);
const auto col_index = rowGroupPageIndex.GetColumnIndex(column_index);
const auto offset_index = rowGroupPageIndex.GetOffsetIndex(column_index);
const std::string columnName = case_insensitive ? boost::to_lower_copy(col_desc->name()) : col_desc->name();
column_index_store[columnName] = ColumnIndex::create(col_desc, col_index, offset_index);
}
Expand Down Expand Up @@ -159,12 +159,12 @@ ParquetMetaBuilder & ParquetMetaBuilder::buildRowRange(
{
const auto rgMeta = file_meta.RowGroup(row_group.index);
const auto pageIndex = reader.GetPageIndexReader();
if (column_index_filter == nullptr || pageIndex == nullptr)
const auto rowGroupPageIndex = pageIndex == nullptr ? nullptr : pageIndex->RowGroup(row_group.index);
if (column_index_filter == nullptr || rowGroupPageIndex == nullptr)
row_group.rowRanges = RowRanges::createSingle(row_group.num_rows);
else
{
const auto rowGroupIndex = pageIndex->RowGroup(row_group.index);
auto columnIndex = collectColumnIndex(*rgMeta, *rowGroupIndex, readColumns, case_insensitive);
auto columnIndex = collectColumnIndex(*rgMeta, *rowGroupPageIndex, readColumns, case_insensitive);
row_group.rowRanges = column_index_filter->calculateRowRanges(*columnIndex, row_group.num_rows);
row_group.columnIndexStore = std::move(columnIndex);
}
Expand Down
10 changes: 6 additions & 4 deletions cpp-ch/local-engine/Storages/Parquet/ParquetMeta.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ struct ParquetMetaBuilder
pruneColumn(const DB::Block & header, const parquet::FileMetaData & metadata, bool case_insensitive, bool allow_missing_columns);
static std::unique_ptr<ColumnIndexStore> collectColumnIndex(
const parquet::RowGroupMetaData & rgMeta,
parquet::RowGroupPageIndexReader & rowGroupIndex,
parquet::RowGroupPageIndexReader & rowGroupPageIndex,
const std::vector<Int32> & column_indices,
bool case_insensitive = false);
};
Expand Down Expand Up @@ -129,9 +129,12 @@ class ColumnIndexRowRangesProvider

std::optional<RowRanges> getRowRanges(Int32 row_group_index) const
{
if (rowGroupCount(row_group_index) == 0)
auto index = adjustRowIndex(row_group_index);
auto ranges = rowGroupInfos_[index].rowRanges;
auto rgCount = rowGroupInfos_[index].num_rows;
if (rgCount == 0 || ranges.rowCount() == 0)
return std::nullopt;
return rowGroupInfos_[adjustRowIndex(row_group_index)].rowRanges;
return ranges;
}

UInt64 getRowGroupStartIndex(Int32 row_group_index) const
Expand Down Expand Up @@ -160,7 +163,6 @@ class ColumnIndexRowRangesProvider
const std::vector<RowGroupInformation> rowGroupInfos_;
std::vector<Int32> readRowGroups_;
const std::vector<Int32> readColumns_;
Int64 rowGroupCount(const Int32 row_group_index) const { return rowGroupInfos_[adjustRowIndex(row_group_index)].num_rows; }
};

}

0 comments on commit fd7cd44

Please sign in to comment.