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

Design tidb_enable_strict_compatibility_80 = BOOLEAN #9141

Open
morgo opened this issue Jan 21, 2019 · 2 comments
Open

Design tidb_enable_strict_compatibility_80 = BOOLEAN #9141

morgo opened this issue Jan 21, 2019 · 2 comments
Labels
feature/accepted This feature request is accepted by product managers priority/P2 The issue has P2 priority. type/feature-request Categorizes issue or PR as related to a new feature.

Comments

@morgo
Copy link
Contributor

morgo commented Jan 21, 2019

Feature Request

Is your feature request related to a problem? Please describe:

In planning MySQL 8.0 compatibility, we would like to offer a smoother upgrade than MySQL 5.7 -> 8.0 offers.

For example:

  • set tx_isolation = x is removed.
  • GRANT auto-creating users is removed (the NO_AUTO_CREATE_USER sql mode is meaningless).

Describe the feature you'd like:

I propose we create a new setting, roughly named tidb_enable_strict_compatibility_80, default FALSE. This means by default there will be better compatibility with 5.7 where possible, but a user can opt-in to MySQL 8.0 behavior.

This has the advantage of future smoother upgrades and sometimes improved usability, security etc. A future release may enable strict compatibility by default.

Describe alternatives you've considered:

It could also be possible to enable strict compatibility by default.

Teachability, Documentation, Adoption, Migration Strategy:

It will need some design to work out what conditions require compatibility. Trivial items like removing unused variables should not provide compatibility.

@morgo morgo changed the title Design mysql_8_strict_compatibility = BOOLEAN Design tidb_strict_80_compatibility = BOOLEAN Jan 23, 2019
@morgo
Copy link
Contributor Author

morgo commented Jan 23, 2019

I've renamed the variable tidb_strict_compatibility_80 to fit with existing tidb_ namespace. 80 is also used since it matches the MySQL variable show_compatibility_56.

@morgo morgo changed the title Design tidb_strict_80_compatibility = BOOLEAN Design tidb_strict_compatibility_80 = BOOLEAN Jan 23, 2019
@zz-jason zz-jason added type/feature-request Categorizes issue or PR as related to a new feature. and removed type/new-feature labels Apr 3, 2020
@zz-jason zz-jason added feature/reviewing This feature request is reviewing by product managers feature/discussing This feature request is discussing among product managers and removed feature/reviewing This feature request is reviewing by product managers labels Aug 6, 2020
@scsldb scsldb added feature/accepted This feature request is accepted by product managers priority/P2 The issue has P2 priority. and removed feature/discussing This feature request is discussing among product managers labels Sep 4, 2020
@scsldb scsldb added this to the Requirement pool milestone Sep 4, 2020
@ghost ghost changed the title Design tidb_strict_compatibility_80 = BOOLEAN Design tidb_enable_strict_compatibility_80 = BOOLEAN Sep 22, 2020
@ghost
Copy link

ghost commented Sep 22, 2020

I have updated the proposed variable to tidb_enable_XX to match an established convention of sysvars.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/accepted This feature request is accepted by product managers priority/P2 The issue has P2 priority. type/feature-request Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

3 participants