mirror of
https://github.com/MariaDB/server.git
synced 2025-11-30 05:23:50 +03:00
92 lines
3.2 KiB
Plaintext
92 lines
3.2 KiB
Plaintext
FLUSH TABLES;
|
|
#
|
|
# MDEV-11369: Instant ADD COLUMN for InnoDB
|
|
#
|
|
connect to_be_killed, localhost, root;
|
|
CREATE TABLE empty_REDUNDANT
|
|
(id INT PRIMARY KEY, c2 INT UNIQUE) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
|
CREATE TABLE once_REDUNDANT LIKE empty_REDUNDANT;
|
|
CREATE TABLE twice_REDUNDANT LIKE empty_REDUNDANT;
|
|
INSERT INTO once_REDUNDANT SET id=1,c2=1;
|
|
INSERT INTO twice_REDUNDANT SET id=1,c2=1;
|
|
ALTER TABLE empty_REDUNDANT ADD COLUMN (d1 INT DEFAULT 15);
|
|
ALTER TABLE once_REDUNDANT ADD COLUMN (d1 INT DEFAULT 20);
|
|
ALTER TABLE twice_REDUNDANT ADD COLUMN (d1 INT DEFAULT 20);
|
|
ALTER TABLE twice_REDUNDANT ADD COLUMN
|
|
(d2 INT NOT NULL DEFAULT 10,
|
|
d3 VARCHAR(15) NOT NULL DEFAULT 'var och en char');
|
|
CREATE TABLE empty_COMPACT
|
|
(id INT PRIMARY KEY, c2 INT UNIQUE) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
|
CREATE TABLE once_COMPACT LIKE empty_COMPACT;
|
|
CREATE TABLE twice_COMPACT LIKE empty_COMPACT;
|
|
INSERT INTO once_COMPACT SET id=1,c2=1;
|
|
INSERT INTO twice_COMPACT SET id=1,c2=1;
|
|
ALTER TABLE empty_COMPACT ADD COLUMN (d1 INT DEFAULT 15);
|
|
ALTER TABLE once_COMPACT ADD COLUMN (d1 INT DEFAULT 20);
|
|
ALTER TABLE twice_COMPACT ADD COLUMN (d1 INT DEFAULT 20);
|
|
ALTER TABLE twice_COMPACT ADD COLUMN
|
|
(d2 INT NOT NULL DEFAULT 10,
|
|
d3 VARCHAR(15) NOT NULL DEFAULT 'var och en char');
|
|
CREATE TABLE empty_DYNAMIC
|
|
(id INT PRIMARY KEY, c2 INT UNIQUE) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
|
CREATE TABLE once_DYNAMIC LIKE empty_DYNAMIC;
|
|
CREATE TABLE twice_DYNAMIC LIKE empty_DYNAMIC;
|
|
INSERT INTO once_DYNAMIC SET id=1,c2=1;
|
|
INSERT INTO twice_DYNAMIC SET id=1,c2=1;
|
|
ALTER TABLE empty_DYNAMIC ADD COLUMN (d1 INT DEFAULT 15);
|
|
ALTER TABLE once_DYNAMIC ADD COLUMN (d1 INT DEFAULT 20);
|
|
ALTER TABLE twice_DYNAMIC ADD COLUMN (d1 INT DEFAULT 20);
|
|
ALTER TABLE twice_DYNAMIC ADD COLUMN
|
|
(d2 INT NOT NULL DEFAULT 10,
|
|
d3 VARCHAR(15) NOT NULL DEFAULT 'var och en char');
|
|
BEGIN;
|
|
INSERT INTO empty_REDUNDANT set id=0,c2=42;
|
|
UPDATE once_REDUNDANT set c2=c2+1;
|
|
UPDATE twice_REDUNDANT set c2=c2+1;
|
|
INSERT INTO twice_REDUNDANT SET id=2,c2=0,d3='';
|
|
INSERT INTO empty_COMPACT set id=0,c2=42;
|
|
UPDATE once_COMPACT set c2=c2+1;
|
|
UPDATE twice_COMPACT set c2=c2+1;
|
|
INSERT INTO twice_COMPACT SET id=2,c2=0,d3='';
|
|
INSERT INTO empty_DYNAMIC set id=0,c2=42;
|
|
UPDATE once_DYNAMIC set c2=c2+1;
|
|
UPDATE twice_DYNAMIC set c2=c2+1;
|
|
INSERT INTO twice_DYNAMIC SET id=2,c2=0,d3='';
|
|
connection default;
|
|
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
|
CREATE TABLE foo(a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
# Kill the server
|
|
disconnect to_be_killed;
|
|
SET @saved_frequency= @@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
|
|
DROP TABLE foo;
|
|
InnoDB 0 transactions not purged
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency=@saved_frequency;
|
|
SELECT * FROM empty_REDUNDANT;
|
|
id c2 d1
|
|
SELECT * FROM once_REDUNDANT;
|
|
id c2 d1
|
|
1 1 20
|
|
SELECT * FROM twice_REDUNDANT;
|
|
id c2 d1 d2 d3
|
|
1 1 20 10 var och en char
|
|
DROP TABLE empty_REDUNDANT, once_REDUNDANT, twice_REDUNDANT;
|
|
SELECT * FROM empty_COMPACT;
|
|
id c2 d1
|
|
SELECT * FROM once_COMPACT;
|
|
id c2 d1
|
|
1 1 20
|
|
SELECT * FROM twice_COMPACT;
|
|
id c2 d1 d2 d3
|
|
1 1 20 10 var och en char
|
|
DROP TABLE empty_COMPACT, once_COMPACT, twice_COMPACT;
|
|
SELECT * FROM empty_DYNAMIC;
|
|
id c2 d1
|
|
SELECT * FROM once_DYNAMIC;
|
|
id c2 d1
|
|
1 1 20
|
|
SELECT * FROM twice_DYNAMIC;
|
|
id c2 d1 d2 d3
|
|
1 1 20 10 var och en char
|
|
DROP TABLE empty_DYNAMIC, once_DYNAMIC, twice_DYNAMIC;
|