@@ -8760,9 +8760,56 @@ where
8760
8760
},
8761
8761
},
8762
8762
},
8763
+ {
8764
+ Name : "enum import error message validation" ,
8765
+ Dialect : "mysql" ,
8766
+ SetUpScript : []string {
8767
+ "SET sql_mode = 'STRICT_TRANS_TABLES';" ,
8768
+ "CREATE TABLE shirts (name VARCHAR(40), size ENUM('x-small', 'small', 'medium', 'large', 'x-large'), color ENUM('red', 'blue'));" ,
8769
+ },
8770
+ Assertions : []ScriptTestAssertion {
8771
+ {
8772
+ Query : "INSERT INTO shirts VALUES ('shirt1', 'x-small', 'red');" ,
8773
+ Expected : []sql.Row {
8774
+ {types .NewOkResult (1 )},
8775
+ },
8776
+ },
8777
+ {
8778
+ Query : "INSERT INTO shirts VALUES ('shirt2', 'other', 'green');" ,
8779
+ ExpectedErrStr : "Data truncated for column 'size' at row 1" ,
8780
+ },
8781
+ },
8782
+ },
8783
+ {
8784
+ Name : "enum default null validation" ,
8785
+ Dialect : "mysql" ,
8786
+ SetUpScript : []string {
8787
+ "SET sql_mode = 'STRICT_TRANS_TABLES';" ,
8788
+ },
8789
+ Assertions : []ScriptTestAssertion {
8790
+ {
8791
+ Query : "CREATE TABLE test_enum (pk int NOT NULL, e enum('a','b') DEFAULT NULL, PRIMARY KEY (pk));" ,
8792
+ Expected : []sql.Row {
8793
+ {types .NewOkResult (0 )},
8794
+ },
8795
+ },
8796
+ {
8797
+ Query : "INSERT INTO test_enum (pk) VALUES (1);" ,
8798
+ Expected : []sql.Row {
8799
+ {types .NewOkResult (1 )},
8800
+ },
8801
+ },
8802
+ {
8803
+ Query : "SELECT pk, e FROM test_enum;" ,
8804
+ Expected : []sql.Row {
8805
+ {1 , nil },
8806
+ },
8807
+ },
8808
+ },
8809
+ },
8763
8810
{
8764
8811
// This is with STRICT_TRANS_TABLES or STRICT_ALL_TABLES in sql_mode
8765
- Skip : true ,
8812
+ Skip : true , // TODO: Fix error type to match MySQL exactly (should be ErrInvalidColumnDefaultValue)
8766
8813
Name : "enums with empty string" ,
8767
8814
Dialect : "mysql" ,
8768
8815
SetUpScript : []string {
0 commit comments