Skip to content
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

plan: disable plan cache for query containing `SubqueryExpr` #8064

Merged
merged 2 commits into from Oct 26, 2018

Conversation

@eurekaka
Copy link
Contributor

commented Oct 25, 2018

What problem does this PR solve?

Fix #8062

What is changed and how it works?

The reason of the wrong result is: during first execute in session 1, a plan would be built and cached; during the expression rewriting of the plan building step, un-correlated subquery is detected and evaluated in optimizer, so the query is simplified to select * from t where a = null, thus the ParamMarkerExpr is lost in the plan, so we get empty result in the second execute.

Check the AST and mark it uncacheable if it contains SubqueryExpr.

Check List

Tests

  • Unit test

Code changes

  • Has exported function/method change

Side effects

N/A

Related changes

  • Need to cherry-pick to the release branch
@eurekaka

This comment has been minimized.

Copy link
Contributor Author

commented Oct 25, 2018

/run-all-tests

@eurekaka

This comment has been minimized.

Copy link
Contributor Author

commented Oct 26, 2018

@zz-jason

This comment has been minimized.

Copy link
Member

commented Oct 26, 2018

LGTM

Copy link
Member

left a comment

LGTM

@eurekaka eurekaka added status/LGT2 and removed status/LGT1 labels Oct 26, 2018
@eurekaka eurekaka merged commit 3024a5a into pingcap:master Oct 26, 2018
4 checks passed
4 checks passed
ci/circleci Your tests passed on CircleCI!
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
jenkins-ci-tidb/build Jenkins job succeeded.
Details
license/cla Contributor License Agreement is signed.
Details
@eurekaka eurekaka deleted the eurekaka:plancache_subquery branch Oct 26, 2018
eurekaka added a commit to eurekaka/tidb that referenced this pull request Oct 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.