Skip to content

Commit

Permalink
Merge pull request #89 from samansmink/fix-missing-stats-causing-crash
Browse files Browse the repository at this point in the history
handle when kernel returns a nullptr for the stats
  • Loading branch information
samansmink authored Sep 11, 2024
2 parents 119c34e + bc4b6b1 commit 8a2957c
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions src/functions/delta_scan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ static void visit_callback(ffi::NullableCvoid engine_context, struct ffi::Kernel
// Initialize the file metadata
context->metadata.back()->delta_snapshot_version = context->version;
context->metadata.back()->file_number = context->resolved_files.size() - 1;
context->metadata.back()->cardinality = stats->num_records;
if (stats) {
context->metadata.back()->cardinality = stats->num_records;
}

// Fetch the deletion vector
auto selection_vector_res = ffi::selection_vector_from_dv(dv_info, context->extern_engine.get(), context->global_state.get());
Expand Down Expand Up @@ -510,11 +512,19 @@ unique_ptr<NodeStatistics> DeltaSnapshot::GetCardinality(ClientContext &context)
}

idx_t total_tuple_count = 0;
bool have_any_stats = false;
for (auto &metadatum : metadata) {
total_tuple_count += metadatum->cardinality;
if (metadatum->cardinality != DConstants::INVALID_INDEX) {
have_any_stats = true;
total_tuple_count += metadatum->cardinality;
}
}

if (have_any_stats) {
return make_uniq<NodeStatistics>(total_tuple_count,total_tuple_count);
}

return make_uniq<NodeStatistics>(total_tuple_count,total_tuple_count);
return nullptr;
}

unique_ptr<MultiFileReader> DeltaMultiFileReader::CreateInstance() {
Expand Down

0 comments on commit 8a2957c

Please sign in to comment.