wombatu-kun opened a new pull request, #20226:
URL: https://github.com/apache/hudi/pull/20226

   ### Describe the issue this Pull Request addresses
   
   Closes #20225
   
   ### Summary and Changelog
   
   Data skipping no longer prunes files that hold rows matching a `LIKE 
'prefix%'` / `startswith` filter.
   
   - `DataSkippingUtils`: the `StartsWith` translation also keeps a file whose 
min value starts with the prefix, i.e. `(min <= prefix AND prefix <= max) OR 
startswith(min, prefix)`. Values starting with a prefix sort at or after the 
prefix itself, so the old `min <= prefix AND prefix <= max` alone pruned, for 
example, a file with min `abc123` for `LIKE 'abc%'`.
   - `TestDataSkippingUtils`: covers a file whose min sorts after the prefix 
yet starts with it, on a plain column and through `date_format`.
   
   ### Impact
   
   Correctness fix: such queries could silently miss rows, through both the 
column stats and the partition stats index. No pruning is lost: the new 
condition only adds an `OR`, and every file it newly keeps holds a matching 
value.
   
   ### Risk Level
   
   low. The new test cases fail without the fix, and the SQL repro from the 
issue returns the expected rows with it. #19474 edits the same `StartsWith` 
arm, so whichever lands second needs a trivial rebase.
   
   ### Documentation Update
   
   none
   
   ### Contributor's checklist
   
   - [x] Read through [contributor's 
guide](https://hudi.apache.org/contribute/how-to-contribute)
   - [x] Enough context is provided in the sections above
   - [x] Adequate tests were added if applicable
   


-- 
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]

Reply via email to