MDL-51374 core_dml: change database layer to pass table name as parameter

This commit is contained in:
Simey Lameze 2016-03-15 14:41:48 +08:00
parent 26e7eceefc
commit 87a3e50192
11 changed files with 165 additions and 65 deletions

View file

@ -175,10 +175,11 @@ abstract class pdo_moodle_database extends moodle_database {
/**
* Do NOT use in code, to be used by database_manager only!
* @param string|array $sql query
* @param array|null $tablenames an array of xmldb table names affected by this request.
* @return bool true
* @throws ddl_change_structure_exception A DDL specific exception is thrown for any errors.
*/
public function change_database_structure($sql) {
public function change_database_structure($sql, $tablenames = null) {
$this->get_manager(); // Includes DDL exceptions classes ;-)
$sqls = (array)$sql;
@ -196,11 +197,11 @@ abstract class pdo_moodle_database extends moodle_database {
$this->query_end($result);
}
} catch (ddl_change_structure_exception $e) {
$this->reset_caches();
$this->reset_caches($tablenames);
throw $e;
}
$this->reset_caches();
$this->reset_caches($tablenames);
return true;
}