1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

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.
This commit is contained in:
Aleksey Midenkov
2025-07-09 15:45:35 +03:00
committed by Sergei Golubchik
parent 67745e4dbf
commit 9a51709dba
9 changed files with 96 additions and 80 deletions

View File

@@ -3131,6 +3131,42 @@ alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id;
ERROR 42000: Can't DROP COLUMN `t2_id`; check that it exists ERROR 42000: Can't DROP COLUMN `t2_id`; check that it exists
drop table t1, t2; drop table t1, t2;
# #
# MDEV-29001 DROP DEFAULT makes SHOW CREATE non-idempotent
#
SET @save_sql_mode=@@sql_mode;
SET sql_mode=strict_all_tables;
create table t1 (
a int,
b int default 0,
c int not null,
d int not null default 1);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT 0,
`c` int(11) NOT NULL,
`d` int(11) NOT NULL DEFAULT 1
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
alter table t1
alter a drop default,
alter b drop default,
alter c drop default,
alter d drop default;
SHOW create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) NOT NULL,
`d` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert t1 values (default, default, default, default);
ERROR HY000: Field 'c' doesn't have a default value
insert t1 values (default, default, 0, 0);
drop table t1;
set sql_mode= @save_sql_mode;
#
# End of 10.6 tests # End of 10.6 tests
# #
# #

View File

@@ -2417,6 +2417,30 @@ create table t1(id int primary key, t2_id int, constraint t1_fk_t2_id foreign ke
alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id; alter table t1 drop constraint t1_fk_t2_id, drop t2_id, drop t2_id;
drop table t1, t2; drop table t1, t2;
--echo #
--echo # MDEV-29001 DROP DEFAULT makes SHOW CREATE non-idempotent
--echo #
SET @save_sql_mode=@@sql_mode;
SET sql_mode=strict_all_tables;
create table t1 (
a int,
b int default 0,
c int not null,
d int not null default 1);
show create table t1;
alter table t1
alter a drop default,
alter b drop default,
alter c drop default,
alter d drop default;
SHOW create table t1;
--error ER_NO_DEFAULT_FOR_FIELD
insert t1 values (default, default, default, default);
insert t1 values (default, default, 0, 0);
drop table t1;
set sql_mode= @save_sql_mode;
--echo # --echo #
--echo # End of 10.6 tests --echo # End of 10.6 tests
--echo # --echo #

View File

@@ -127,7 +127,6 @@ ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000);
ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT;
INSERT INTO t1 VALUES (REPEAT('b',100),11); INSERT INTO t1 VALUES (REPEAT('b',100),11);
INSERT INTO t1 VALUES (default,10); INSERT INTO t1 VALUES (default,10);
ERROR HY000: Field 'a' doesn't have a default value
ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED; ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
@@ -139,6 +138,7 @@ t1 CREATE TABLE `t1` (
(PARTITION `p0` VALUES LESS THAN (100,'sss') ENGINE = MyISAM) (PARTITION `p0` VALUES LESS THAN (100,'sss') ENGINE = MyISAM)
SELECT * from t1 ORDER BY id; SELECT * from t1 ORDER BY id;
a id a id
NULL 10
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 11 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 11
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 23 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 23
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 24 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 24

View File

@@ -72,7 +72,6 @@ ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT;
ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000); ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000);
ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT;
INSERT INTO t1 VALUES (REPEAT('b',100),11); INSERT INTO t1 VALUES (REPEAT('b',100),11);
--error ER_NO_DEFAULT_FOR_FIELD
INSERT INTO t1 VALUES (default,10); INSERT INTO t1 VALUES (default,10);
ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED; ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED;

View File

@@ -24,8 +24,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -34,7 +32,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` tinyint(4) NOT NULL, `c1` tinyint(4) NOT NULL,
`c2` tinyint(4), `c2` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -65,8 +63,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -75,7 +71,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` smallint(6) NOT NULL, `c1` smallint(6) NOT NULL,
`c2` smallint(6), `c2` smallint(6) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -106,8 +102,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -116,7 +110,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` mediumint(9) NOT NULL, `c1` mediumint(9) NOT NULL,
`c2` mediumint(9), `c2` mediumint(9) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -147,8 +141,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -157,7 +149,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11), `c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -188,8 +180,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -198,7 +188,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11), `c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -229,8 +219,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -239,7 +227,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` bigint(20) NOT NULL, `c1` bigint(20) NOT NULL,
`c2` bigint(20), `c2` bigint(20) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -270,8 +258,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -280,7 +266,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` double NOT NULL, `c1` double NOT NULL,
`c2` double, `c2` double DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -311,8 +297,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -321,7 +305,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` double NOT NULL, `c1` double NOT NULL,
`c2` double, `c2` double DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -352,8 +336,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -362,7 +344,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` float NOT NULL, `c1` float NOT NULL,
`c2` float, `c2` float DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -393,8 +375,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -403,7 +383,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` decimal(10,0) NOT NULL, `c1` decimal(10,0) NOT NULL,
`c2` decimal(10,0), `c2` decimal(10,0) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -434,8 +414,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER c2 DROP DEFAULT; ALTER TABLE t1 ALTER c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -444,7 +422,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` decimal(10,0) NOT NULL, `c1` decimal(10,0) NOT NULL,
`c2` decimal(10,0), `c2` decimal(10,0) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -475,8 +453,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -485,7 +461,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` tinyint(4) NOT NULL, `c1` tinyint(4) NOT NULL,
`c2` tinyint(4), `c2` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -516,8 +492,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -526,7 +500,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` smallint(6) NOT NULL, `c1` smallint(6) NOT NULL,
`c2` smallint(6), `c2` smallint(6) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -557,8 +531,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -567,7 +539,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` mediumint(9) NOT NULL, `c1` mediumint(9) NOT NULL,
`c2` mediumint(9), `c2` mediumint(9) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -598,8 +570,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -608,7 +578,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11), `c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -639,8 +609,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -649,7 +617,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11), `c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -680,8 +648,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -690,7 +656,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` bigint(20) NOT NULL, `c1` bigint(20) NOT NULL,
`c2` bigint(20), `c2` bigint(20) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -721,8 +687,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -731,7 +695,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` double NOT NULL, `c1` double NOT NULL,
`c2` double, `c2` double DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -762,8 +726,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -772,7 +734,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` double NOT NULL, `c1` double NOT NULL,
`c2` double, `c2` double DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -803,8 +765,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -813,7 +773,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` float NOT NULL, `c1` float NOT NULL,
`c2` float, `c2` float DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -844,8 +804,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -854,7 +812,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` decimal(10,0) NOT NULL, `c1` decimal(10,0) NOT NULL,
`c2` decimal(10,0), `c2` decimal(10,0) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;
@@ -885,8 +843,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT;
INSERT IGNORE INTO t1(c1) VALUES(2); INSERT IGNORE INTO t1(c1) VALUES(2);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * FROM t1 ORDER BY c1; SELECT * FROM t1 ORDER BY c1;
c1 c2 c1 c2
1 10 1 10
@@ -895,7 +851,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` decimal(10,0) NOT NULL, `c1` decimal(10,0) NOT NULL,
`c2` decimal(10,0), `c2` decimal(10,0) DEFAULT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1; DROP TABLE t1;

View File

@@ -52,7 +52,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11), `c2` int(11) DEFAULT NULL,
`ct` text DEFAULT NULL, `ct` text DEFAULT NULL,
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `c2` (`c2`) KEY `c2` (`c2`)

View File

@@ -59,7 +59,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL, `c1` int(11) NOT NULL,
`c2` int(11), `c2` int(11) DEFAULT NULL,
`ct` text DEFAULT NULL, `ct` text DEFAULT NULL,
PRIMARY KEY (`c1`), PRIMARY KEY (`c1`),
KEY `c2` (`c2`) KEY `c2` (`c2`)

View File

@@ -8658,7 +8658,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
} }
else else
{ {
if ((def->default_value= alter->default_value)) if ((def->default_value= alter->default_value) ||
!(def->flags & NOT_NULL_FLAG))
def->flags&= ~NO_DEFAULT_VALUE_FLAG; def->flags&= ~NO_DEFAULT_VALUE_FLAG;
else else
def->flags|= NO_DEFAULT_VALUE_FLAG; def->flags|= NO_DEFAULT_VALUE_FLAG;

View File

@@ -26,7 +26,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
@@ -37,7 +37,7 @@ Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`b1` char(8) DEFAULT NULL, `b1` char(8) DEFAULT NULL,
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -46,7 +46,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
@@ -56,7 +56,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
`b` char(8) DEFAULT NULL, `b` char(8) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
@@ -66,7 +66,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
@@ -77,7 +77,7 @@ Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`b` char(8) DEFAULT NULL, `b` char(8) DEFAULT NULL,
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -86,7 +86,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
@@ -96,7 +96,7 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -107,7 +107,7 @@ SHOW CREATE TABLE t2;
Table Create Table Table Create Table
t2 CREATE TABLE `t2` ( t2 CREATE TABLE `t2` (
`pk` int(11) NOT NULL, `pk` int(11) NOT NULL,
`a` int(11), `a` int(11) DEFAULT NULL,
`c` char(8) DEFAULT NULL, `c` char(8) DEFAULT NULL,
PRIMARY KEY (`pk`) PRIMARY KEY (`pk`)
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci