-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
fix: add missing MySQL 8.4 keywords #17538
Conversation
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #17538 +/- ##
==========================================
+ Coverage 67.68% 67.71% +0.02%
==========================================
Files 1584 1584
Lines 254630 254717 +87
==========================================
+ Hits 172356 172472 +116
+ Misses 82274 82245 -29 ☔ View full report in Codecov by Sentry. |
@@ -1,5 +1,5 @@ | |||
// Code generated by `SELECT * FROM INFORMATION_SCHEMA.KEYWORDS`. | |||
// Reference: https://dev.mysql.com/doc/refman/8.0/en/information-schema-keywords-table.html | |||
// Reference: https://dev.mysql.com/doc/refman/8.4/en/information-schema-keywords-table.html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably makes sense to use the MySQL 9.0 output. It's almost identical, except for the fact that it also has Vector. AKA, it's exactly what we're aiming to support at the moment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@GrahamCampbell As mentioned in #17525 I'd like to stay with this here for now and look at this separately later.
java/jdbc/src/main/java/io/vitess/jdbc/VitessMySQLDatabaseMetadata.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Leopold Jacquot <[email protected]>
Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: Dirkjan Bussink <[email protected]>
aae53bc
to
a1c9420
Compare
Relevant for reviewers here, this is from #17525 (comment): We should not add the keywords here to the Vitess side of reserved keywords. The reason is the following. The original bug here you reported is that the keyword is not escaped in the SQL that Vitess generates again. That is indeed since it doesn't know these as keywords. But we don't need reserved keywords here, they can be non-reserved keywords. This is because these words won't cause any conflict in the grammar, so they don't need to be reserved. This way we don't break existing queries that use these keywords also for people who are not on MySQL 8.4, as we only have one grammar for all MySQL versions. In the future we might also need to make it reserved once we add the actual parsing rules that use these keywords, but that would be a better time to also make them reserved because that at point there's actual feature support for something where it's needed. |
@dbussink can we backport this to 21.x ? |
My guess was that 8.4 was not experimental instead of 9.0 :(
but I was wrong... |
My vote would be to not backport, and to add a changelog entry to v22 saying improved MySQL 8.4 support. |
I think it's a waste to wait a major release to fix something we already support as experimental. v22 will be the place to add Vitess docker image with MySQL 8.4 (by default?) |
We should add it, but not make it the default yet. I think we want to have it bake for a bit longer before it's the default. |
I'm curious what features you need from MySQL 8.4 that are not present in 8.0.40? |
none, just wanted to upgrade to an LTS version |
MySQL 8.0 is also LTS. |
And Vitess 21 will be EOL before MySQL 8.0 is. |
So it's nice to update to the latest LTS version, I don't see the debate here... |
The point is that it does not make sense to backport this to Vitess 21. |
asking what feature we want to use in MySQL 8.4 to prove that backporting this in Vitess 21 make no sens to me ;) |
I was establishing if there was a reason you needed to use 8.4. None was provided. If there was a good reason that might apply widely, then there could be a compelling case for backport. |
If you need argument on why upgrading see: https://docs.percona.com/percona-server/8.4/upgrade.html |
Takes #17525 and adds the fix for the change here as requested by @L3o-pold.
Related Issue(s)
Fixes #17523
Checklist