Skip to content

Commit 9a51709

Browse files
midenokvuvova
authored andcommitted
MDEV-29001 DROP DEFAULT makes SHOW CREATE non-idempotent
DROP DEFAULT adds DEFAULT NULL in case of nullable column. In case of NOT NULL column it drops default expression if any exists.
1 parent 67745e4 commit 9a51709

File tree

9 files changed

+96
-80
lines changed

9 files changed

+96
-80
lines changed

mysql-test/main/alter_table.result

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3131,6 +3131,42 @@ alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id;
31313131
ERROR 42000: Can't DROP COLUMN `t2_id`; check that it exists
31323132
drop table t1, t2;
31333133
#
3134+
# MDEV-29001 DROP DEFAULT makes SHOW CREATE non-idempotent
3135+
#
3136+
SET @save_sql_mode=@@sql_mode;
3137+
SET sql_mode=strict_all_tables;
3138+
create table t1 (
3139+
a int,
3140+
b int default 0,
3141+
c int not null,
3142+
d int not null default 1);
3143+
show create table t1;
3144+
Table Create Table
3145+
t1 CREATE TABLE `t1` (
3146+
`a` int(11) DEFAULT NULL,
3147+
`b` int(11) DEFAULT 0,
3148+
`c` int(11) NOT NULL,
3149+
`d` int(11) NOT NULL DEFAULT 1
3150+
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
3151+
alter table t1
3152+
alter a drop default,
3153+
alter b drop default,
3154+
alter c drop default,
3155+
alter d drop default;
3156+
SHOW create table t1;
3157+
Table Create Table
3158+
t1 CREATE TABLE `t1` (
3159+
`a` int(11) DEFAULT NULL,
3160+
`b` int(11) DEFAULT NULL,
3161+
`c` int(11) NOT NULL,
3162+
`d` int(11) NOT NULL
3163+
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
3164+
insert t1 values (default, default, default, default);
3165+
ERROR HY000: Field 'c' doesn't have a default value
3166+
insert t1 values (default, default, 0, 0);
3167+
drop table t1;
3168+
set sql_mode= @save_sql_mode;
3169+
#
31343170
# End of 10.6 tests
31353171
#
31363172
#

mysql-test/main/alter_table.test

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2417,6 +2417,30 @@ create table t1(id int primary key, t2_id int, constraint t1_fk_t2_id foreign ke
24172417
alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id;
24182418
drop table t1, t2;
24192419

2420+
--echo #
2421+
--echo # MDEV-29001 DROP DEFAULT makes SHOW CREATE non-idempotent
2422+
--echo #
2423+
SET @save_sql_mode=@@sql_mode;
2424+
SET sql_mode=strict_all_tables;
2425+
create table t1 (
2426+
a int,
2427+
b int default 0,
2428+
c int not null,
2429+
d int not null default 1);
2430+
show create table t1;
2431+
alter table t1
2432+
alter a drop default,
2433+
alter b drop default,
2434+
alter c drop default,
2435+
alter d drop default;
2436+
SHOW create table t1;
2437+
--error ER_NO_DEFAULT_FOR_FIELD
2438+
insert t1 values (default, default, default, default);
2439+
insert t1 values (default, default, 0, 0);
2440+
2441+
drop table t1;
2442+
set sql_mode= @save_sql_mode;
2443+
24202444
--echo #
24212445
--echo # End of 10.6 tests
24222446
--echo #

mysql-test/main/column_compression_parts.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000);
127127
ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT;
128128
INSERT INTO t1 VALUES (REPEAT('b',100),11);
129129
INSERT INTO t1 VALUES (default,10);
130-
ERROR HY000: Field 'a' doesn't have a default value
131130
ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED;
132131
SHOW CREATE TABLE t1;
133132
Table Create Table
@@ -139,6 +138,7 @@ t1 CREATE TABLE `t1` (
139138
(PARTITION `p0` VALUES LESS THAN (100,'sss') ENGINE = MyISAM)
140139
SELECT * from t1 ORDER BY id;
141140
a id
141+
NULL 10
142142
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 11
143143
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 23
144144
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 24

mysql-test/main/column_compression_parts.test

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT;
7272
ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000);
7373
ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT;
7474
INSERT INTO t1 VALUES (REPEAT('b',100),11);
75-
--error ER_NO_DEFAULT_FOR_FIELD
7675
INSERT INTO t1 VALUES (default,10);
7776

7877
ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED;

0 commit comments

Comments
 (0)