Description:
How to repeat:
mysql> SET SQL_MODE="";
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE t1(c1 SET('a','b') NULL) ENGINE=myisam;
Query OK, 0 rows affected (0.03 sec)
mysql> INSERT INTO t1 VALUES('');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM t1;
+------+
| c1 |
+------+
| |
+------+
1 row in set (0.00 sec)
mysql> SET SQL_MODE="TRADITIONAL";
mysql> CREATE TABLE t1(c1 SET('a','b') NULL) ENGINE=myisam;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO t1 VALUES('');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO t1 VALUES('123');
ERROR 1265 (01000): Data truncated for column 'c1' at row 1
Warning w/ ENUM.
mysql> SET SQL_MODE="";
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE t1(c1 ENUM('a','b') NULL) ENGINE=myisam;
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO t1 VALUES('');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+---------+------+-----------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------+
| Warning | 1265 | Data truncated for column 'c1' at row 1 |
+---------+------+-----------------------------------------+
1 row in set (0.00 sec)
Suggested fix:
Should be handled like ENUM.
Description: How to repeat: mysql> SET SQL_MODE=""; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE t1(c1 SET('a','b') NULL) ENGINE=myisam; Query OK, 0 rows affected (0.03 sec) mysql> INSERT INTO t1 VALUES(''); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM t1; +------+ | c1 | +------+ | | +------+ 1 row in set (0.00 sec) mysql> SET SQL_MODE="TRADITIONAL"; mysql> CREATE TABLE t1(c1 SET('a','b') NULL) ENGINE=myisam; Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO t1 VALUES(''); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO t1 VALUES('123'); ERROR 1265 (01000): Data truncated for column 'c1' at row 1 Warning w/ ENUM. mysql> SET SQL_MODE=""; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE t1(c1 ENUM('a','b') NULL) ENGINE=myisam; Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO t1 VALUES(''); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> SHOW WARNINGS; +---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1265 | Data truncated for column 'c1' at row 1 | +---------+------+-----------------------------------------+ 1 row in set (0.00 sec) Suggested fix: Should be handled like ENUM.