Merge branch 'MDL-46963-master' of git://github.com/lameze/moodle

This commit is contained in:
David Monllao 2015-04-15 13:35:37 +08:00
commit e256b59702
3 changed files with 38 additions and 0 deletions

View File

@ -1390,6 +1390,11 @@
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>

View File

@ -1070,6 +1070,7 @@ $string['unlockaccount'] = 'Unlock account';
$string['unsettheme'] = 'Unset theme';
$string['unsupported'] = 'Unsupported';
$string['unsupporteddbstorageengine'] = 'The database storage engine being used is no longer supported.';
$string['unsupporteddbtablerowformat'] = 'Your database has tables using Antelope as the file format. You are recommended to convert the tables to the Barracuda file format. See the documentation <a href="https://docs.moodle.org/en/cli">Administration via command line</a> for details of a tool for converting InnoDB tables to Barracuda.';
$string['unsuspenduser'] = 'Activate user account';
$string['updateaccounts'] = 'Update existing accounts';
$string['updatecomponent'] = 'Update component';

View File

@ -2245,3 +2245,35 @@ function check_slasharguments(environment_results $result){
return null;
}
/**
* This function verifies if the database has tables using innoDB Antelope row format.
*
* @param environment_results $result
* @return environment_results|null updated results object, or null if no Antelope table has been found.
*/
function check_database_tables_row_format(environment_results $result) {
global $DB;
if ($DB->get_dbfamily() == 'mysql') {
$generator = $DB->get_manager()->generator;
foreach ($DB->get_tables(false) as $table) {
$columns = $DB->get_columns($table, false);
$size = $generator->guess_antolope_row_size($columns);
$format = $DB->get_row_format($table);
if ($size <= $generator::ANTELOPE_MAX_ROW_SIZE) {
continue;
}
if ($format === 'Compact' or $format === 'Redundant') {
$result->setInfo('unsupported_db_table_row_format');
$result->setStatus(false);
return $result;
}
}
}
return null;
}