Skip to content

Commit 589dc00

Browse files
committed
Test for MDEV-11874 "Data too long for column" instead of "Invalid default value for" upon ALTER in strict mode
This problem was earlier fixed by the patch for: MDEV-16421 Make system tables crash safe Adding tests only.
1 parent 81f6a3b commit 589dc00

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

mysql-test/main/type_varchar.result

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,3 +686,40 @@ DROP TABLE t1,t2;
686686
#
687687
# End of 10.0 tests
688688
#
689+
#
690+
# Start of 10.4 tests
691+
#
692+
SET sql_mode='';
693+
CREATE TABLE t1 (c VARCHAR(1) DEFAULT 'foo');
694+
ERROR 42000: Invalid default value for 'c'
695+
SHOW WARNINGS;
696+
Level Code Message
697+
Warning 1265 Data truncated for column 'c' at row 1
698+
Error 1067 Invalid default value for 'c'
699+
SET sql_mode='STRICT_ALL_TABLES';
700+
CREATE TABLE t1 (c VARCHAR(1) DEFAULT 'foo');
701+
ERROR 42000: Invalid default value for 'c'
702+
SHOW WARNINGS;
703+
Level Code Message
704+
Warning 1265 Data truncated for column 'c' at row 1
705+
Error 1067 Invalid default value for 'c'
706+
CREATE TABLE t1 (c VARCHAR(1));
707+
SET sql_mode='';
708+
ALTER TABLE t1 ALTER column c SET DEFAULT 'foo';
709+
ERROR 42000: Invalid default value for 'c'
710+
SHOW WARNINGS;
711+
Level Code Message
712+
Warning 1265 Data truncated for column 'c' at row 1
713+
Error 1067 Invalid default value for 'c'
714+
SET sql_mode='STRICT_ALL_TABLES';
715+
ALTER TABLE t1 ALTER column c SET DEFAULT 'foo';
716+
ERROR 42000: Invalid default value for 'c'
717+
SHOW WARNINGS;
718+
Level Code Message
719+
Warning 1265 Data truncated for column 'c' at row 1
720+
Error 1067 Invalid default value for 'c'
721+
DROP TABLE t1;
722+
SET sql_mode=DEFAULT;
723+
#
724+
# End of 10.4 tests
725+
#

mysql-test/main/type_varchar.test

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,34 @@ DROP TABLE t1,t2;
328328
--echo #
329329
--echo # End of 10.0 tests
330330
--echo #
331+
332+
333+
--echo #
334+
--echo # Start of 10.4 tests
335+
--echo #
336+
337+
SET sql_mode='';
338+
--error ER_INVALID_DEFAULT
339+
CREATE TABLE t1 (c VARCHAR(1) DEFAULT 'foo');
340+
SHOW WARNINGS;
341+
342+
SET sql_mode='STRICT_ALL_TABLES';
343+
--error ER_INVALID_DEFAULT
344+
CREATE TABLE t1 (c VARCHAR(1) DEFAULT 'foo');
345+
SHOW WARNINGS;
346+
347+
CREATE TABLE t1 (c VARCHAR(1));
348+
SET sql_mode='';
349+
--error ER_INVALID_DEFAULT
350+
ALTER TABLE t1 ALTER column c SET DEFAULT 'foo';
351+
SHOW WARNINGS;
352+
SET sql_mode='STRICT_ALL_TABLES';
353+
--error ER_INVALID_DEFAULT
354+
ALTER TABLE t1 ALTER column c SET DEFAULT 'foo';
355+
SHOW WARNINGS;
356+
DROP TABLE t1;
357+
SET sql_mode=DEFAULT;
358+
359+
--echo #
360+
--echo # End of 10.4 tests
361+
--echo #

0 commit comments

Comments
 (0)