diff --git a/framework/db/oci/Schema.php b/framework/db/oci/Schema.php index e82e9527e0..621fa6d981 100644 --- a/framework/db/oci/Schema.php +++ b/framework/db/oci/Schema.php @@ -7,6 +7,7 @@ namespace yii\db\oci; +use yii\base\InvalidCallException; use yii\db\TableSchema; use yii\db\ColumnSchema; diff --git a/framework/db/pgsql/QueryBuilder.php b/framework/db/pgsql/QueryBuilder.php index 1e06a741aa..621c51d838 100644 --- a/framework/db/pgsql/QueryBuilder.php +++ b/framework/db/pgsql/QueryBuilder.php @@ -99,12 +99,8 @@ class QueryBuilder extends \yii\db\QueryBuilder { $table = $this->db->getTableSchema($tableName); if ($table !== null && $table->sequenceName !== null) { - $sequence = '"' . $table->sequenceName . '"'; - - if (strpos($sequence, '.') !== false) { - $sequence = str_replace('.', '"."', $sequence); - } - + // c.f. http://www.postgresql.org/docs/8.1/static/functions-sequence.html + $sequence = $this->db->quoteTableName($table->sequenceName); $tableName = $this->db->quoteTableName($tableName); if ($value === null) { $key = reset($table->primaryKey); diff --git a/framework/db/pgsql/Schema.php b/framework/db/pgsql/Schema.php index c6a09d70d7..8db814ad74 100644 --- a/framework/db/pgsql/Schema.php +++ b/framework/db/pgsql/Schema.php @@ -405,7 +405,7 @@ SQL; if ($column->isPrimaryKey) { $table->primaryKey[] = $column->name; if ($table->sequenceName === null && preg_match("/nextval\\('\"?\\w+\"?\.?\"?\\w+\"?'(::regclass)?\\)/", $column->defaultValue) === 1) { - $table->sequenceName = trim(preg_replace(['/nextval/', '/::/', '/regclass/', '/\'\)/', '/\(\'/'], '', $column->defaultValue), '"'); + $table->sequenceName = preg_replace(['/nextval/', '/::/', '/regclass/', '/\'\)/', '/\(\'/'], '', $column->defaultValue); } $column->defaultValue = null; } elseif ($column->defaultValue) {