Gabriel39 opened a new pull request, #65496:
URL: https://github.com/apache/doris/pull/65496
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: External file condition-cache entries stored only their
survivor bitmap. On a
later cache hit, the physical reader recomputed the bitmap base from the
current metadata-pruned
scan plan. If pruning selected a different first row group, bitmap indexes
shifted and valid rows
could be silently skipped.
This change stores the bitmap's base granule with the cache value. The V2
table reader restores the
stored base on cache hits, while V2 Parquet and ORC readers derive a base
from their current plan
only when producing a new cache entry. V1 reader behavior is unchanged.
### Release note
Fix incorrect row filtering when a V2 external file condition-cache hit uses
a different pruned
scan plan from the cache-producing scan.
### Check List (For Author)
- Test: Unit Test
-
`ParquetScanConditionCacheTest.HitKeepsCachedBaseWhenCurrentPlanStartsLater`
- `TableReaderTest.ConditionCacheMissPublishesBitmapAfterReaderEof`
- `NewOrcReaderTest.ConditionCacheHitUsesSplitBaseGranule`
- Behavior changed: Yes. V2 condition-cache hits use the bitmap coordinate
base stored with the
cache entry instead of recomputing it from the current scan plan.
- Does this need documentation: No
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]