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

planner: disable LOCK IN SHARE MODE by default (#19506) #21005

Merged
merged 3 commits into from
Nov 17, 2020

Conversation

ti-srebot
Copy link
Contributor

@ti-srebot ti-srebot commented Nov 12, 2020

cherry-pick #19506 to release-4.0


What problem does this PR solve?

Issue Number: fixes #19383

Problem Summary:

SELECT LOCK IN SHARE MODE is described in the manual as a noop. But that's not obvious to new users.

This protects against incorrect usage via the enable_noop_functions flag; meaning that applications that want to execute the query and receive broken results have a way out.

(In the fix in master, this also disabled SQL_CALC_FOUND_ROWS by default. But in this cherry-pick I've removed that, as I think it will break a lot more applications than are expected between point releases.)

What is changed and how it works?

What's Changed:

Queries using LOCK IN SHARE MODE now get an error by default.

Related changes

Docs PR pingcap/docs#3898

Check List

Tests

  • Integration test
  • Manual test (add detailed scripts or steps below)

Side effects

  • Breaking backward compatibility (although there is an easy way back by changing the enable noop functions setting).

Release note

  • TiDB now provides an error for statements that use the syntax LOCK IN SHARE MODE. This helps alert users that this feature is not implemented by TiDB, but a workaround to restore the previous behavior is available by setting tidb_enable_noop_functions=1.

Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@zz-jason
Copy link
Member

@nullnotnil please resolve the code conflict.

@ghost ghost removed the status/require-change label Nov 16, 2020
@ghost ghost changed the title planner: disable SQL_CALC_FOUND_ROWS/LOCK IN SHARE MODE by default (#19506) planner: disable LOCK IN SHARE MODE by default (#19506) Nov 16, 2020
@ghost ghost added the status/PTAL label Nov 16, 2020
@ghost ghost force-pushed the release-4.0-9876de896127 branch from 723c325 to 8d7f6ff Compare November 16, 2020 03:56
@cfzjywxk
Copy link
Contributor

LGTM

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Nov 16, 2020
Copy link
Contributor

@wshwsh12 wshwsh12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ti-srebot ti-srebot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Nov 16, 2020
@ti-srebot ti-srebot added status/LGT3 The PR has already had 3 LGTM. and removed status/LGT2 Indicates that a PR has LGTM 2. labels Nov 17, 2020
@jackysp
Copy link
Member

jackysp commented Nov 17, 2020

/merge

@ti-srebot ti-srebot added the status/can-merge Indicates a PR has been approved by a committer. label Nov 17, 2020
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@ti-srebot ti-srebot merged commit 8d6161c into pingcap:release-4.0 Nov 17, 2020
@tiancaiamao tiancaiamao deleted the release-4.0-9876de896127 branch December 11, 2020 03:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/expression sig/planner SIG: Planner status/can-merge Indicates a PR has been approved by a committer. status/LGT3 The PR has already had 3 LGTM. type/4.0-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants