Commit 523a63f5 by Alexander Makarov

Added TYPE_BIGPK to Schema

parent a2b4ef0f
...@@ -491,6 +491,7 @@ class QueryBuilder extends \yii\base\Object ...@@ -491,6 +491,7 @@ class QueryBuilder extends \yii\base\Object
* physical types): * physical types):
* *
* - `pk`: an auto-incremental primary key type, will be converted into "int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY" * - `pk`: an auto-incremental primary key type, will be converted into "int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY"
* - `bigpk`: an auto-incremental primary key type, will be converted into "bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY"
* - `string`: string type, will be converted into "varchar(255)" * - `string`: string type, will be converted into "varchar(255)"
* - `text`: a long string type, will be converted into "text" * - `text`: a long string type, will be converted into "text"
* - `smallint`: a small integer type, will be converted into "smallint(6)" * - `smallint`: a small integer type, will be converted into "smallint(6)"
......
...@@ -35,6 +35,7 @@ abstract class Schema extends Object ...@@ -35,6 +35,7 @@ abstract class Schema extends Object
* The followings are the supported abstract column data types. * The followings are the supported abstract column data types.
*/ */
const TYPE_PK = 'pk'; const TYPE_PK = 'pk';
const TYPE_BIGPK = 'bigpk';
const TYPE_STRING = 'string'; const TYPE_STRING = 'string';
const TYPE_TEXT = 'text'; const TYPE_TEXT = 'text';
const TYPE_SMALLINT = 'smallint'; const TYPE_SMALLINT = 'smallint';
......
...@@ -22,6 +22,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -22,6 +22,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
*/ */
public $typeMap = array( public $typeMap = array(
Schema::TYPE_PK => 'int NOT NULL AUTO_INCREMENT PRIMARY KEY', Schema::TYPE_PK => 'int NOT NULL AUTO_INCREMENT PRIMARY KEY',
Schema::TYPE_BIGPK => 'bigint NOT NULL AUTO_INCREMENT PRIMARY KEY',
Schema::TYPE_STRING => 'varchar(255)', Schema::TYPE_STRING => 'varchar(255)',
Schema::TYPE_TEXT => 'varchar', Schema::TYPE_TEXT => 'varchar',
Schema::TYPE_SMALLINT => 'smallint', Schema::TYPE_SMALLINT => 'smallint',
......
...@@ -22,6 +22,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -22,6 +22,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
*/ */
public $typeMap = array( public $typeMap = array(
Schema::TYPE_PK => 'int IDENTITY PRIMARY KEY', Schema::TYPE_PK => 'int IDENTITY PRIMARY KEY',
Schema::TYPE_BIGPK => 'bigint IDENTITY PRIMARY KEY',
Schema::TYPE_STRING => 'varchar(255)', Schema::TYPE_STRING => 'varchar(255)',
Schema::TYPE_TEXT => 'text', Schema::TYPE_TEXT => 'text',
Schema::TYPE_SMALLINT => 'smallint(6)', Schema::TYPE_SMALLINT => 'smallint(6)',
......
...@@ -9,6 +9,7 @@ namespace yii\db\mysql; ...@@ -9,6 +9,7 @@ namespace yii\db\mysql;
use yii\db\Exception; use yii\db\Exception;
use yii\base\InvalidParamException; use yii\base\InvalidParamException;
use yii\db\sqlite\Schema;
/** /**
* QueryBuilder is the query builder for MySQL databases. * QueryBuilder is the query builder for MySQL databases.
...@@ -23,6 +24,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -23,6 +24,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
*/ */
public $typeMap = array( public $typeMap = array(
Schema::TYPE_PK => 'int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY', Schema::TYPE_PK => 'int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY',
Schema::TYPE_BIGPK => 'bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY',
Schema::TYPE_STRING => 'varchar(255)', Schema::TYPE_STRING => 'varchar(255)',
Schema::TYPE_TEXT => 'text', Schema::TYPE_TEXT => 'text',
Schema::TYPE_SMALLINT => 'smallint(6)', Schema::TYPE_SMALLINT => 'smallint(6)',
......
...@@ -22,6 +22,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -22,6 +22,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
*/ */
public $typeMap = array( public $typeMap = array(
Schema::TYPE_PK => 'serial NOT NULL PRIMARY KEY', Schema::TYPE_PK => 'serial NOT NULL PRIMARY KEY',
Schema::TYPE_BIGPK => 'bigserial NOT NULL PRIMARY KEY',
Schema::TYPE_STRING => 'varchar(255)', Schema::TYPE_STRING => 'varchar(255)',
Schema::TYPE_TEXT => 'text', Schema::TYPE_TEXT => 'text',
Schema::TYPE_SMALLINT => 'smallint', Schema::TYPE_SMALLINT => 'smallint',
......
...@@ -255,7 +255,7 @@ SELECT ...@@ -255,7 +255,7 @@ SELECT
information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t)) information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t))
AS numeric AS numeric
) AS size, ) AS size,
a.attnum = any (ct.conkey) as is_pkey a.attnum = any (ct.conkey) as is_pkey
FROM FROM
pg_class c pg_class c
LEFT JOIN pg_attribute a ON a.attrelid = c.oid LEFT JOIN pg_attribute a ON a.attrelid = c.oid
......
...@@ -24,6 +24,7 @@ class QueryBuilder extends \yii\db\QueryBuilder ...@@ -24,6 +24,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
*/ */
public $typeMap = array( public $typeMap = array(
Schema::TYPE_PK => 'integer PRIMARY KEY AUTOINCREMENT NOT NULL', Schema::TYPE_PK => 'integer PRIMARY KEY AUTOINCREMENT NOT NULL',
Schema::TYPE_BIGPK => 'integer PRIMARY KEY AUTOINCREMENT NOT NULL',
Schema::TYPE_STRING => 'varchar(255)', Schema::TYPE_STRING => 'varchar(255)',
Schema::TYPE_TEXT => 'text', Schema::TYPE_TEXT => 'text',
Schema::TYPE_SMALLINT => 'smallint', Schema::TYPE_SMALLINT => 'smallint',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment