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
innodb & MySQL 8: DYNAMIC & COMPRESSED ROW_FORMAT missing #14673
Comments
|
Thanks but this fix is incomplete; a good fix would take into account the MySQL server version. Have a look at https://dev.mysql.com/doc/refman/5.5/en/innodb-row-format-dynamic.html which mentions the Barracuda file format, and https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format-dynamic.html which does not mention Barracuda. Then have a look at the code at the end of |
|
sorry. I forgot about older version. However, for now, this is just a useful hack for those just upgraded to MySQL 8. I guess the fix is at follow: first we get the MySQL version, if it is 8 and above then no need to check the file format, just list "COMPACT, REDUNDANT,DYNAMIC, COMPRESSED", otherwise the same code apply. |
|
To get the database server version, use |
|
Mariadb 10.3 also has the problem. I think no need to check what version support . Just thown an error. If I excute the query on a innodb table. I got error So I can unserstand what happend . |
|
IMO pMA shouldn't do row_format = '...' when the user didn't change the row_format. I agree with pigochu, a complicated availability check isn't necessary. |
|
Any plans to implement fix for this incompatibility with MySQL 8.x? We've just completed migration of 50+ servers and 1000+ tables from MySQL 5.7 to 8.0.14 and the actual ROW_FORMAT values are no longer correct / visible in Table->Operations. |
|
The actual compatibility issue is within the method called on line 1293 in Operations.php class: /Engines/Innodb->getInnodbFileFormat() method checks for 'innodb_file_format' global variable with the following SQL statement:
All file-format variables are deprecated in MySQL 5.7.7. and completely removed from all system tables & views in MySQL 8.0.0 (development milestone). A check for the Innodb version is required and if the major version is >= 8, the method should return "Barracuda" for backward compatibility: "Barracuda" is still the internal maximum file format for tables with ROW_FORMAT = DYNAMIC / COMPRESSED, while the COMPACT / REDUNDANT still use the older "Antelope". The check could be done with: P.S. It seems I will have to submit pull-request, because even an innocent operation like renaming a table through pMA->Table->Operations overwrites the actual ROW_FORMAT to the default COMPACT... |
|
I think since All file-format variables are deprecated, erased in newer MySQL and MariaDB, the solution proposed may be to focus on these lines in Operations.php : I have submitted PULL Request for proposed patch above : #14979 |
Signed-off-by: William Desportes <williamdes@wdes.fr>
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Dynamic and Compressed format should be available
Fix:
code of this method in Operations class
The text was updated successfully, but these errors were encountered: