Skip to content

Commit

Permalink
When there are no new values in DISTINCT aggregates skip the update step
Browse files Browse the repository at this point in the history
  • Loading branch information
Mytherin committed Mar 10, 2020
1 parent 519a878 commit 0fcf3bb
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions src/execution/aggregate_hashtable.cpp
Expand Up @@ -267,18 +267,19 @@ void SuperLargeHashTable::AddChunk(DataChunk &groups, DataChunk &payload) {
distinct_sel_vector[match_count++] = sel_idx;
}
}
if (match_count > 0) {
VectorCardinality distinct_cardinality(match_count, distinct_sel_vector);
Vector distinct_payload(distinct_cardinality);
Vector distinct_addresses(distinct_cardinality);

VectorCardinality distinct_cardinality(match_count, distinct_sel_vector);
Vector distinct_payload(distinct_cardinality);
Vector distinct_addresses(distinct_cardinality);
distinct_payload.Reference(payload.data[payload_idx]);
distinct_addresses.Reference(addresses);

distinct_payload.Reference(payload.data[payload_idx]);
distinct_addresses.Reference(addresses);
distinct_payload.Verify();
distinct_addresses.Verify();

distinct_payload.Verify();
distinct_addresses.Verify();

aggr.function.update(&distinct_payload, 1, distinct_addresses);
aggr.function.update(&distinct_payload, 1, distinct_addresses);
}
payload_idx++;
} else {
auto input_count = max((idx_t)1, (idx_t)aggr.child_count);
Expand Down

0 comments on commit 0fcf3bb

Please sign in to comment.