@@ -142,6 +142,26 @@ func TestParseDDL(t *testing.T) {
142142 },
143143 },
144144 },
145+ {"with a check-like column" , []string {"CREATE TABLE Docs (ID int NOT NULL,Checksum text NOT NULL)" }, 2 , []migrator.ColumnType {
146+ {NameValue : sql.NullString {String : "ID" , Valid : true }, DataTypeValue : sql.NullString {String : "int" , Valid : true }, ColumnTypeValue : sql.NullString {String : "int" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
147+ {NameValue : sql.NullString {String : "Checksum" , Valid : true }, DataTypeValue : sql.NullString {String : "text" , Valid : true }, ColumnTypeValue : sql.NullString {String : "text" , Valid : true }, NullableValue : sql.NullBool {Bool : false , Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
148+ }},
149+ {"with a constraint-like column" , []string {"CREATE TABLE Docs (ID int NOT NULL,constraints text NOT NULL)" }, 2 , []migrator.ColumnType {
150+ {NameValue : sql.NullString {String : "ID" , Valid : true }, DataTypeValue : sql.NullString {String : "int" , Valid : true }, ColumnTypeValue : sql.NullString {String : "int" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
151+ {NameValue : sql.NullString {String : "constraints" , Valid : true }, DataTypeValue : sql.NullString {String : "text" , Valid : true }, ColumnTypeValue : sql.NullString {String : "text" , Valid : true }, NullableValue : sql.NullBool {Bool : false , Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
152+ }},
153+ {"with a unique-like column" , []string {"CREATE TABLE Docs (ID int NOT NULL,unique_code text NOT NULL)" }, 2 , []migrator.ColumnType {
154+ {NameValue : sql.NullString {String : "ID" , Valid : true }, DataTypeValue : sql.NullString {String : "int" , Valid : true }, ColumnTypeValue : sql.NullString {String : "int" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
155+ {NameValue : sql.NullString {String : "unique_code" , Valid : true }, DataTypeValue : sql.NullString {String : "text" , Valid : true }, ColumnTypeValue : sql.NullString {String : "text" , Valid : true }, NullableValue : sql.NullBool {Bool : false , Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
156+ }},
157+ {"with_fk_no_constraint" , []string {"CREATE TABLE Docs (ID int NOT NULL,UserID int NOT NULL,FOREIGN KEY (UserID) REFERENCES Users(ID))" }, 3 , []migrator.ColumnType {
158+ {NameValue : sql.NullString {String : "ID" , Valid : true }, DataTypeValue : sql.NullString {String : "int" , Valid : true }, ColumnTypeValue : sql.NullString {String : "int" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
159+ {NameValue : sql.NullString {String : "UserID" , Valid : true }, DataTypeValue : sql.NullString {String : "int" , Valid : true }, ColumnTypeValue : sql.NullString {String : "int" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
160+ }},
161+ {"with unique without constraint" , []string {"CREATE TABLE `users` (`id` text NOT NULL,`email` text NOT NULL,PRIMARY KEY (`id`),UNIQUE (`email`))" }, 4 , []migrator.ColumnType {
162+ {NameValue : sql.NullString {String : "id" , Valid : true }, DataTypeValue : sql.NullString {String : "text" , Valid : true }, ColumnTypeValue : sql.NullString {String : "text" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true }, PrimaryKeyValue : sql.NullBool {Valid : true , Bool : true }},
163+ {NameValue : sql.NullString {String : "email" , Valid : true }, DataTypeValue : sql.NullString {String : "text" , Valid : true }, ColumnTypeValue : sql.NullString {String : "text" , Valid : true }, NullableValue : sql.NullBool {Valid : true }, DefaultValueValue : sql.NullString {Valid : false }, UniqueValue : sql.NullBool {Valid : true , Bool : true }, PrimaryKeyValue : sql.NullBool {Valid : true }},
164+ }},
145165 }
146166
147167 for _ , p := range params {
0 commit comments