未验证 提交 7a31f09f 编写于 作者: 宇泽's avatar 宇泽 提交者: GitHub

#4406 fix MySQL, PostgreSQL DDL cannot parse Integer, Double, Decimal (#4456)

* #4406 fix MySQL, PostgreSQL DDL cannot parse Integer, Double, Decimal

* #4459 Correct the `DataTypeName` for mysql
上级 98328881
......@@ -25,6 +25,12 @@
<sql-case id="alter_table_with_back_quota" value="ALTER TABLE `t_order` FORCE" db-types="MySQL" />
<sql-case id="alter_table_add_column" value="ALTER TABLE t_order ADD column4 VARCHAR(10)" />
<sql-case id="alter_table_add_columns" value="ALTER TABLE t_order ADD column4 VARCHAR(10), ADD column5 VARCHAR(10), ADD column6 VARCHAR(10)" db-types="MySQL,PostgreSQL" />
<sql-case id="alter_table_add_columns_integer_type_mysql" value="ALTER TABLE t_order ADD column4 INTEGER, ADD column5 INT, ADD column6 SMALLINT, ADD column7 TINYINT, ADD column8 MEDIUMINT, ADD column9 BIGINT" db-types="MySQL" />
<sql-case id="alter_table_add_columns_fixed_point_type_mysql" value="ALTER TABLE t_order ADD column4 decimal(10,2), ADD column5 NUMERIC" db-types="MySQL" />
<sql-case id="alter_table_add_columns_float_point_type_mysql" value="ALTER TABLE t_order ADD column4 FLOAT(10,2), ADD column5 DOUBLE(10,2)" db-types="MySQL" />
<sql-case id="alter_table_add_columns_bit_type_mysql" value="ALTER TABLE t_order ADD column4 bit" db-types="MySQL" />
<sql-case id="alter_table_add_columns_date_type_mysql" value="ALTER TABLE t_order ADD column4 DATE, ADD column5 DATETIME, ADD column6 TIMESTAMP, ADD column7 TIME, ADD column8 YEAR" db-types="MySQL" />
<sql-case id="alter_table_add_columns_string_type_mysql" value="ALTER TABLE t_order ADD column4 CHAR, ADD column5 VARCHAR, ADD column6 BINARY, ADD column7 VARBINARY, ADD column8 TINYBLOB, ADD column9 TINYTEXT, ADD column10 BLOB, ADD column11 TEXT, ADD column12 MEDIUMBLOB, ADD column13 MEDIUMTEXT, ADD column14 LONGBLOB, ADD column15 LONGTEXT, ADD column16 ENUM, ADD column17 SET" db-types="MySQL" />
<sql-case id="alter_table_add_column_with_first" value="ALTER TABLE t_order ADD column3 VARCHAR(10) FIRST" db-types="MySQL" />
<sql-case id="alter_table_add_column_with_after" value="ALTER TABLE t_order ADD column4 VARCHAR(10) AFTER order_id" db-types="MySQL" />
<sql-case id="alter_table_add_column_with_first_after" value="ALTER TABLE t_order ADD column5 VARCHAR(10) FIRST, ADD column6 VARCHAR(10) FIRST, ADD column7 VARCHAR(10) AFTER column5, ADD column8 VARCHAR(10) AFTER column6" db-types="MySQL" />
......
......@@ -496,7 +496,10 @@ dataType
;
dataTypeName
: identifier
: INTEGER | INT | SMALLINT | TINYINT | MEDIUMINT | BIGINT | DECIMAL| NUMERIC | FLOAT | DOUBLE | BIT | BOOL | BOOLEAN
| DEC | DATE | DATETIME | TIMESTAMP | TIME | YEAR | CHAR | VARCHAR | BINARY | VARBINARY | TINYBLOB | TINYTEXT | BLOB
| TEXT | MEDIUMBLOB | MEDIUMTEXT | LONGBLOB | LONGTEXT | ENUM | SET | GEOMETRY | POINT | LINESTRING | POLYGON
| MULTIPOINT | MULTILINESTRING | MULTIPOLYGON | GEOMETRYCOLLECTION | JSON
;
dataTypeLength
......
......@@ -535,3 +535,35 @@ DECIMAL
TYPE
: T Y P E
;
INT
: I N T
;
SMALLINT
: S M A L L I N T
;
TINYINT
: T I N Y I N T
;
MEDIUMINT
: M E D I U M I N T
;
BIGINT
: B I G I N T
;
NUMERIC
: N U M E R I C
;
FLOAT
: F L O A T
;
DATETIME
: D A T E T I M E
;
......@@ -1979,3 +1979,67 @@ ST_X
ST_Y
: S T UL_ Y
;
BIT
: B I T
;
BOOL
: B O O L
;
DEC
: D E C
;
VARCHAR
: V A R C H A R
;
VARBINARY
: V A R B I N A R Y
;
TINYBLOB
: T I N Y B L O B
;
TINYTEXT
: T I N Y T E X T
;
BLOB
: B L O B
;
TEXT
: T E X T
;
MEDIUMBLOB
: M E D I U M B L O B
;
MEDIUMTEXT
: M E D I U M T E X T
;
LONGBLOB
: L O N G B L O B
;
LONGTEXT
: L O N G T E X T
;
ENUM
: E N U M
;
GEOMETRY
: G E O M E T R Y
;
JSON
: J S O N
;
......@@ -62,6 +62,120 @@
<column name="column6" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_integer_type_mysql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column name="column4" type="INTEGER">
<column name="column4" />
</add-column>
<add-column name="column5" type="INT">
<column name="column5" />
</add-column>
<add-column name="column6" type="SMALLINT">
<column name="column6" />
</add-column>
<add-column name="column7" type="TINYINT">
<column name="column7" />
</add-column>
<add-column name="column8" type="MEDIUMINT">
<column name="column8" />
</add-column>
<add-column name="column9" type="BIGINT">
<column name="column9" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_fixed_point_type_mysql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column type="decimal">
<column name="column4" />
</add-column>
<add-column name="column5" type="NUMERIC">
<column name="column5" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_float_point_type_mysql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column type="FLOAT">
<column name="column4" />
</add-column>
<add-column name="column5" type="DOUBLE">
<column name="column5" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_bit_type_mysql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column type="bit">
<column name="column4" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_date_type_mysql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column type="DATE">
<column name="column4" />
</add-column>
<add-column type="DATETIME">
<column name="column5" />
</add-column>
<add-column type="TIMESTAMP">
<column name="column6" />
</add-column>
<add-column type="TIME">
<column name="column7" />
</add-column>
<add-column type="YEAR">
<column name="column8" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_string_type_mysql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column type="CHAR">
<column name="column4" />
</add-column>
<add-column type="VARCHAR">
<column name="column5" />
</add-column>
<add-column type="BINARY">
<column name="column6" />
</add-column>
<add-column type="VARBINARY">
<column name="column7" />
</add-column>
<add-column type="TINYBLOB">
<column name="column8" />
</add-column>
<add-column type="TINYTEXT">
<column name="column9" />
</add-column>
<add-column type="BLOB">
<column name="column10" />
</add-column>
<add-column type="TEXT">
<column name="column11" />
</add-column>
<add-column type="MEDIUMBLOB">
<column name="column12" />
</add-column>
<add-column type="MEDIUMTEXT">
<column name="column13" />
</add-column>
<add-column type="LONGBLOB">
<column name="column14" />
</add-column>
<add-column type="LONGTEXT">
<column name="column15" />
</add-column>
<add-column type="ENUM">
<column name="column16" />
</add-column>
<add-column type="SET">
<column name="column17" />
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_column_with_first">
<table name="t_order" start-index="12" stop-index="18" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册