-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
release-22.2: opt: fix invalid transformation in SplitLimitedSelectIntoUnionSelects #89250
Conversation
This commit removes some untested logic in `SplitLimitedSelectIntoUnionSelects` that created invalid expression transformations. With this logic, this rule could construct an unordered limit below the `UnionAll` which is incorrect. The bug could cause incorrect query results. Fixes #88993 Release note (bug fix): A bug has been fixed that could cause incorrect results in rare cases. The bug could only present if the following conditions were true: 1. A query with `ORDER BY` and `LIMIT` was executed. 2. The table containing the `ORDER BY` columns had an index containing those columns. 3. The index in (2) contained a prefix of columns held to a fixed number of values by the query filter (e.g., `WHERE a IN (1, 3)`), a `CHECK` constraint (e.g., `CHECK (a IN (1, 3))`), inferred by a computed column expression (e.g. `WHERE a IN (1, 3)` and a column `b INT AS (a + 10) STORED`), or inferred by a `PARTITION BY` clause (e.g. `INDEX (a, ...) PARTITION BY LIST (a) (PARTITION p VALUES ((1), (3)))`). This bug was present since version 22.1.0.
9c48989
to
b34a5c2
Compare
Thanks for opening a backport. Please check the backport criteria before merging:
If some of the basic criteria cannot be satisfied, ensure that the exceptional criteria are satisfied within.
Add a brief release justification to the body of your PR to justify this backport. Some other things to consider:
|
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.
Reviewed 5 of 5 files at r1, all commit messages.
Reviewable status: complete! 1 of 0 LGTMs obtained (waiting on @DrewKimball, @mgartner, @michae2, and @rytaft)
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.
Reviewed 5 of 5 files at r1, all commit messages.
Reviewable status: complete! 2 of 0 LGTMs obtained (waiting on @DrewKimball, @mgartner, and @michae2)
Backport 1/1 commits from #89113 on behalf of @mgartner.
/cc @cockroachdb/release
opt: fix invalid transformation in SplitLimitedSelectIntoUnionSelects
This commit removes some untested logic in
SplitLimitedSelectIntoUnionSelects
that created invalid expressiontransformations. With this logic, this rule could construct an unordered
limit below the
UnionAll
which is incorrect. The bug could causeincorrect query results.
Fixes #88993
Release note (bug fix): A bug has been fixed that could cause incorrect
results in rare cases. The bug could only present if the following
conditions were true:
ORDER BY
andLIMIT
was executed.ORDER BY
columns had an index containingthose columns.
number of values by the query filter (e.g.,
WHERE a IN (1, 3)
),a
CHECK
constraint (e.g.,CHECK (a IN (1, 3))
), inferred bya computed column expression (e.g.
WHERE a IN (1, 3)
and a columnb INT AS (a + 10) STORED
), or inferred by aPARTITION BY
clause(e.g.
INDEX (a, ...) PARTITION BY LIST (a) (PARTITION p VALUES ((1), (3)))
).This bug was present since version 22.1.0.
Release justification: Correctness bug fix.