MDL-70181 database: Quote database object names
Table names and database name now enclosed in backticks. admin/cli/mysql_collation.php failed if $CFG->prefix was blank with MySQL 8.0 because table 'groups' conflicted with a new reserved word. Note that this quotes both mysql_collation.php and mysql_compressed_rows.php but only the former was mal-functioning. The case of mysql_compressed_rows.php is a little bit special because not all tables are processed, only those having big rows. And the groups table is not one of them. In any case, better add the quotes there for any future case. Also, when testing this patch https://tracker.moodle.org/browse/MDL-71512 was discovered and will need to be fixed to make core 100% compliant with MySQL 8.0 and MariaDB 10.6 and up.
This commit is contained in:
committed by
Eloy Lafuente (stronk7)
parent
30d1832f45
commit
3afbffe6a0
@@ -158,7 +158,7 @@ if (!empty($options['info'])) {
|
||||
}
|
||||
|
||||
foreach ($fixtables as $table) {
|
||||
$DB->change_database_structure("ALTER TABLE {$prefix}$table ROW_FORMAT=Compressed");
|
||||
$DB->change_database_structure("ALTER TABLE `{$prefix}$table` ROW_FORMAT=Compressed");
|
||||
echo str_pad($prefix . $table, 32, ' ', STR_PAD_RIGHT) . " ... Compressed\n";
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ if (!empty($options['info'])) {
|
||||
echo "SET GLOBAL innodb_file_per_table=1;\n";
|
||||
echo "SET GLOBAL innodb_file_format=Barracuda;\n";
|
||||
foreach ($fixtables as $table) {
|
||||
echo "ALTER TABLE {$prefix}$table ROW_FORMAT=Compressed;\n";
|
||||
echo "ALTER TABLE `{$prefix}$table` ROW_FORMAT=Compressed;\n";
|
||||
}
|
||||
echo "\n";
|
||||
exit(0);
|
||||
|
||||
Reference in New Issue
Block a user