Skip to content

branch-4.1: [fix](zonemap) Treat reversed zone map bounds as invalid #67431 - #67550

Open
github-actions[bot] wants to merge 1 commit into
branch-4.1from
auto-pick-67431-branch-4.1
Open

branch-4.1: [fix](zonemap) Treat reversed zone map bounds as invalid #67431#67550
github-actions[bot] wants to merge 1 commit into
branch-4.1from
auto-pick-67431-branch-4.1

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Cherry-picked from #67431

NaN and infinity are recorded in the has_nan/has_positive_inf/
has_negative_inf flags and never move min/max, so a page holding nothing
else leaves both at the values add_values() starts from: min = DBL_MAX
and max = -DBL_MAX. Those are written out as if they were data, and the
flags stand in for at most one side, so reading them back reports a
DBL_MAX that is nowhere in the page -- SELECT MIN(v) answers with it
while SELECT COUNT(*) WHERE v = that value answers 0. On data written
before 4.0 there is no flag at all and both bounds are used, which
prunes the page away: 25 rows of NaN return 0 for WHERE v > 5.
The bounds round-trip exactly, so neither the flags nor the parse
failure #67341 keys on can tell such a zone map from a sound one. Mark
it pass_all when the bounds come back reversed, which only FLOAT and
DOUBLE can do -- any value of any other type moves both. Do the same in
flush() and finish() so newly written pages and segments record that
they have no bounds instead of leaving it to the reader.
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@hello-stephen

Copy link
Copy Markdown
Contributor

run buildall

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@hello-stephen@csun5285