-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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
MySQL 8.0 Compatibility #7968
Comments
is there any progress or plan about |
I moved skip-locked to the essential list. At the time this list was created, the default was optimistic locking. But since it is now pessmistic, it is highly desirable. |
User attributes might also be something to add
|
Should we add |
Would you consider to add #32118 to this list? |
I don't think that really should block Connector/J 8.0. However I think fixing that soon-ish would be good anyway. |
Maybe we should add pingcap/dm#1950 to this list? or is this strictly for tidb-server? |
Should the full implementation of Dynamic Privileges be essential? |
I don't think that is essential. |
Multi-valued indexes on json arrays and descending indexes are exactly what we need, is there any plan for these two features? |
@jaggerwang |
@SunRunAway For descending indexes, suppose we have a table named
We have the following sql to query file list order by filename ASC or DESC, directories should before files. # Order by filename ASC
select * from file order by type asc, filename asc limit 100;
# Order by filename DESC
select * from file order by type asc, filename desc limit 100; To accelerate query, we created an union index |
Improvements in password management are tracked in #38923 |
I've found |
It looks like TiDB does not support this feature available since MySQL 8.0.13 yet. This checkbox is checked somehow. Default values for BLOB/TEXT + default value as function (8.0.13) #10377 This example comes from the https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html
my:root@127.0.0.1:4000=> use test;
USE
my:root@127.0.0.1:4000=> CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
error: mysql: 1064: You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 38 near "'abc'));" my:root@127.0.0.1:4000=> select tidb_version();
tidb_version()
-----------------------------------------------------------
Release Version: v7.5.0 +
Edition: Community +
Git Commit Hash: 069631e2ecfedc000ffb92c67207bea81380f020+
Git Branch: heads/refs/tags/v7.5.0 +
UTC Build Time: 2023-11-24 08:41:52 +
GoVersion: go1.21.3 +
Race Enabled: false +
Check Table Before Drop: false +
Store: tikv
(1 row)
my:root@127.0.0.1:4000=>
mysql> CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
Query OK, 0 rows affected (0.12 sec)
mysql> show create table t2;
+-------+---------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------+
| t2 | CREATE TABLE `t2` (
`b` blob DEFAULT (_utf8mb4'abc')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+---------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> insert into t2 values;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> insert into t2 values();
Query OK, 1 row affected (0.01 sec)
mysql> select * from t2;
+------------+
| b |
+------------+
| 0x616263 |
+------------+
1 row in set (0.00 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.2.0 |
+-----------+
1 row in set (0.01 sec)
mysql> |
It is not a big deal though https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-17.html |
Yes indeed. I've fixed that. |
Yes it looks like this was marked as completed after only part of this had been implemented. I think #45506 covers the second part. I've update the description to reflect this. |
This issue is to track what is required to move from MySQL 5.7 to MySQL 8.0 compatibility.
See the complete list.
Essential
Nice to Have
8.0.11 and before
NOWAIT
SET_VAR
optimizer hint Support Variable-Setting HintSET_VAR
#18748information_schema.keywords
table. Example here. Add information_schema.keywords #48801SHUTDOWN
command Support SHUTDOWN SQL command (and protocol cmd) #5046MAX_EXECUTION_TIME
hint Feature Request: Support MAX_EXECUTION_TIME #7008bin-to-uuid
anduuid-to-bin
#20119caching_sha2_password
Authentication Plugin Support for caching_sha2_password #9411JSON_TABLE
function + add remaining JSON functions that were backported to 5.7SKIP LOCKED
SupportSKIP LOCKED
Syntax #18207RESTART
command Support for 'RESTART' statement #26016SHOW VARIABLES
output (remove query cache etc.)GROUP BY
no longer implyingORDER BY
Support ascending or descending index #2519TIME_TRUNCATE_FRACTIONAL
https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_time_truncate_fractional Support sql_mode TIME_TRUNCATE_FRACTIONAL #29406ALTER TABLE t REMOVE PARTITIONING
Support ALTER TABLE t REMOVE PARTITIONING #42616ALTER TABLE t PARTITION BY ...
Support ALTER TABLE t REMOVE PARTITIONING #426168.0.13
BLOB/TEXT
+ default value as function (part 1:RAND()
) Incompatible with MySQL 8.0 about create table with default expression #10377BLOB/TEXT
+ default value as function (part 2:UUID()
) support specifying expr uuid() as column default value #33870BLOB/TEXT
+ default value as function (part 3) Default value for TEXT, BLOB or JSON columns #455068.0.14
8.0.15
CHECK
constraint #417118.0.17
utf8mb4_0900_bin
#46268JSON_SCHEMA_VALID()
#527798.0.18
8.0.19
TABLE t ORDER BY c LIMIT 10 OFFSET 3
- 8.0.19 Support VALUES and TABLE statements syntax #19934VALUES ROW(1, "foo", 3.2)
-8.0.19 VALUES statement is not supported #21486AS
keyword forINSERT...ON DUPLICATE KEY UPDATE...
8.0.20
8.0.21
CREATE USER
andALTER USER
statements #38172CREATE TABLE ... START TRANSACTION
support mysql8.0 create table with start transaction feature #524778.0.22
8.0.23
8.0.28
8.0.30
AES_ENCRYPT()
andAES_DECRYPT()
.8.0.31
INTERSECT
SupportEXCEPT
/INTERSECT
Operators #18031EXCEPT
SupportEXCEPT
/INTERSECT
Operators #180318.0.34
CURRENT_USER()
as default value for VARCHAR and TEXT columns in CREATE TABLE statements Default value for TEXT, BLOB or JSON columns #455068.0.35
8.0.36
8.0.37
Cleanup
Not Applicable
SET PERSIST
(settings automatically save cluster-wide)log_error_services
etc)The text was updated successfully, but these errors were encountered: