From 65b543f68ff46e6c998a0d7a6c06f43773e44284 Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 27 Dec 2013 11:04:29 +0400 Subject: [PATCH] fixed bug with forgotten param, fixed behavior for one table integrity --- framework/yii/db/Command.php | 5 +++-- framework/yii/db/pgsql/QueryBuilder.php | 8 ++++---- framework/yii/db/sqlite/Schema.php | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/framework/yii/db/Command.php b/framework/yii/db/Command.php index 2075b2d..76b4269 100644 --- a/framework/yii/db/Command.php +++ b/framework/yii/db/Command.php @@ -743,12 +743,13 @@ class Command extends \yii\base\Component * @param boolean $check whether to turn on or off the integrity check. * @param string $schema the schema name of the tables. Defaults to empty string, meaning the current * or default schema. + * @param string $table the table name. * @return Command the command object itself * @throws NotSupportedException if this is not supported by the underlying DBMS */ - public function checkIntegrity($check = true, $schema = '') + public function checkIntegrity($check = true, $schema = '', $table = '') { - $sql = $this->db->getQueryBuilder()->checkIntegrity($check, $schema); + $sql = $this->db->getQueryBuilder()->checkIntegrity($check, $schema, $table); return $this->setSql($sql); } } diff --git a/framework/yii/db/pgsql/QueryBuilder.php b/framework/yii/db/pgsql/QueryBuilder.php index 6107422..190e548 100644 --- a/framework/yii/db/pgsql/QueryBuilder.php +++ b/framework/yii/db/pgsql/QueryBuilder.php @@ -99,14 +99,14 @@ class QueryBuilder extends \yii\db\QueryBuilder /** * Builds a SQL statement for enabling or disabling integrity check. * @param boolean $check whether to turn on or off the integrity check. - * @param string $table the table name. Meaningless for MySQL. - * @param string $schema the schema of the tables. Meaningless for MySQL. + * @param string $schema the schema of the tables. + * @param string $table the table name. * @return string the SQL statement for checking integrity */ public function checkIntegrity($check = true, $schema = '', $table = '') { - $enable=$check ? 'ENABLE' : 'DISABLE'; - $tableNames=$this->db->schema->findTableNames($schema); + $enable = $check ? 'ENABLE' : 'DISABLE'; + $tableNames = $table ? [$table] : $this->db->schema->findTableNames($schema); $command = ''; foreach($tableNames as $tableName) diff --git a/framework/yii/db/sqlite/Schema.php b/framework/yii/db/sqlite/Schema.php index 9f410b4..6548999 100644 --- a/framework/yii/db/sqlite/Schema.php +++ b/framework/yii/db/sqlite/Schema.php @@ -87,7 +87,7 @@ class Schema extends \yii\db\Schema * If not empty, the returned table names will be prefixed with the schema name. * @return array all table names in the database. */ - protected function findTableNames($schema = '') + public function findTableNames($schema = '') { $sql = "SELECT DISTINCT tbl_name FROM sqlite_master WHERE tbl_name<>'sqlite_sequence'"; return $this->db->createCommand($sql)->queryColumn();