Skip to content

Commit a3128b4

Browse files
author
张军
committed
check equality_delete_ids when add new data file after equality deletes
1 parent 94a498d commit a3128b4

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/iceberg_functions/iceberg_multi_file_reader.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,12 @@ ReaderInitializeType IcebergMultiFileReader::InitializeReader(MultiFileReaderDat
287287
//! Add the columns needed by the equality deletes if not present
288288
auto new_global_column_ids = global_column_ids;
289289
auto &equality_to_result_id = multi_file_list.equality_id_to_result_id;
290-
new_global_column_ids.resize(global_column_ids.size() + equality_to_result_id.size());
290+
291+
//! When add new data file after equality deletes, equality_delete_ids will be empty, while equality_to_result_id is
292+
//! not empty.
293+
if (!equality_delete_ids.empty()) {
294+
new_global_column_ids.resize(global_column_ids.size() + equality_to_result_id.size());
295+
}
291296
for (auto field_id : equality_delete_ids) {
292297
auto it = equality_to_result_id.find(field_id);
293298
if (it == equality_to_result_id.end()) {
@@ -434,7 +439,6 @@ void IcebergMultiFileReader::FinalizeChunk(ClientContext &context, const MultiFi
434439
//! Add the extra equality delete fields to output chunk.
435440
idx_t diff = executor.expressions.size() - output_chunk.ColumnCount();
436441
(void)diff;
437-
D_ASSERT(diff == multi_file_list.equality_id_to_result_id.size());
438442
if (diff > 0) {
439443
int32_t start = input_chunk.ColumnCount() - diff;
440444
for (int32_t i = 0; i < diff; i++) {

0 commit comments

Comments
 (0)