fix: Support merging HUGEINT value filters - #18626
Conversation
✅ Deploy Preview for meta-velox canceled.
|
Selective Build Plan
Affected targets (537)Directly changed (270)
Transitively affected (267)
Fast path • Graph from main@2c661fc83bf7 |
CI Failure Analysis
❌ Build with GCC / TEST: Linux release with adapters — TEST Failure View logsFailed test: The test at line 635 of // Change these once HUGEINT filter merge is fixed.
ASSERT_TRUE(remaining);Correlation with PR changes: This failure is directly caused by the PR changes. The PR implements The test itself anticipated this fix with the comment "Change these once HUGEINT filter merge is fixed". Known issues:
Reproduce locally: ./_build/release/velox/connectors/hive/tests/velox_hive_connector_test \
--gtest_filter="HiveConnectorTest.extractFiltersFromRemainingFilter"Recommended fix: Update the test at // Change these once HUGEINT filter merge is fixed.
ASSERT_TRUE(remaining);
ASSERT_EQ(
remaining->toString(), "not(lt(ROW[\"c2\"],cast(0 as DECIMAL(20, 0))))");with: ASSERT_FALSE(remaining); |
Background
Long decimal dynamic filter pushdown now produces
HugeintValuesUsingHashTablefilters. When a runtime dynamic filter is added to a scan column that already
has a filter, Velox merges them using
Filter::mergeWith(). HUGEINT valuefilters did not implement this, so dynamic filter pushdown could fail with the
below exception.
Changes
This PR:
mergeWith()support forHugeintValuesUsingHashTable.mergeWith()support forHugeintRange.Follow-up for: #18159.