Skip to content

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

Merged
ti-srebot merged 3 commits intopingcap:release-4.0from
ti-srebot:release-4.0-9876de896127
Nov 17, 2020
Merged

planner: disable LOCK IN SHARE MODE by default (#19506)#21005
ti-srebot merged 3 commits intopingcap:release-4.0from
ti-srebot:release-4.0-9876de896127

Conversation

@ti-srebot
Copy link
Copy Markdown
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
Copy Markdown
Contributor Author

/run-all-tests

@zz-jason
Copy link
Copy Markdown
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
Copy Markdown
Contributor

LGTM

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Nov 16, 2020
Copy link
Copy Markdown
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
Copy Markdown
Contributor

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
Copy Markdown
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