-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add null checks to zone map #4642
Conversation
cbebd92
to
4dd4a75
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4642 +/- ##
=======================================
Coverage 86.51% 86.51%
=======================================
Files 1369 1372 +3
Lines 57955 57996 +41
Branches 7204 7209 +5
=======================================
+ Hits 50138 50176 +38
- Misses 7650 7652 +2
- Partials 167 168 +1 ☔ View full report in Codecov by Sentry. |
Benchmark ResultMaster commit hash:
|
Benchmark ResultMaster commit hash:
|
@@ -18,9 +18,10 @@ class KUZU_API ColumnPredicateSet { | |||
void addPredicate(std::unique_ptr<ColumnPredicate> predicate) { | |||
predicates.push_back(std::move(predicate)); | |||
} | |||
void tryAddPredicate(const binder::Expression& column, const binder::Expression& predicate); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove
@@ -180,21 +181,30 @@ static void updateInMemoryStats(ColumnChunkStats& stats, const ValueVector& valu | |||
uint64_t offset = 0, uint64_t numValues = std::numeric_limits<uint64_t>::max()) { | |||
const auto physicalType = values.dataType.getPhysicalType(); | |||
const auto numValuesToCheck = std::min(numValues, values.state->getSelSize()); | |||
stats.update(values.getData(), offset, numValuesToCheck, physicalType); | |||
// we pessimistically set mayHaveNulls to check the entire vector instead of the selected range |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment
Benchmark ResultMaster commit hash:
|
c906861
to
a142992
Compare
…l chunk + other refactoring
Benchmark ResultMaster commit hash:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some minor comments. Will take another look after they're addressed. Thanks!
TypeUtils::visit(chunks[columnID]->getDataType().getPhysicalType(), | ||
[]<typename T>(T) { return StorageValueType<T>; })); | ||
KU_ASSERT(columnHasStorageValueType || | ||
columnZoneMapResult == common::ZoneMapCheckResult::ALWAYS_SCAN); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why remove the runtime check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The runtime check no longer applies because the NULL-based skips can apply to non-storagevalue types
Benchmark ResultMaster commit hash:
|
1bf3381
to
0e97a96
Compare
Benchmark ResultMaster commit hash:
|
Benchmark ResultMaster commit hash:
|
Description
Add support for skipping chunked group scans based on zone map for
IS NULL
andIS NOT NULL
predicatesContributor agreement