-
Notifications
You must be signed in to change notification settings - Fork 5.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
planner: support stable result mode (#25971) #25995
planner: support stable result mode (#25971) #25995
Conversation
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
/run-all-tests |
@qw4990 you're already a collaborator in bot's repo. |
/run-all-tests |
/run-all-tests |
[REVIEW NOTIFICATION] This pull request has been approved by:
To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. Reviewer can indicate their review by submitting an approval review. |
/merge |
This pull request has been accepted and is ready to merge. Commit hash: 8408754
|
cherry-pick #25971 to release-5.1
You can switch your code base to this Pull Request by using git-extras:
# In tidb repo: git pr https://github.com/pingcap/tidb/pull/25995
After apply modifications, you can push your change to this PR via:
What problem does this PR solve?
Issue Number: close #xxx
Problem Summary: support stable result mode in the planner
What is changed and how it works?
Results of some queries are not stable, for example:
In the case above, the result can be
1 2
or2 1
, which is not stable.This PR introduces a new switch that can make the results of these queries stable.
This feature is implemented as a logical optimization rule, which stabilizes results by modifying
Sort
in plans or inject newSort
into plans.First, all operators are divided into 2 types:
The basic idea of this rule is:
2.1. if it's a Sort, complete it by appending its output columns into its order-by list,
2.2. otherwise, inject a new Sort upon this operator.
Check List
Tests
Release note