Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
6b91e90a
Commit
6b91e90a
authored
Oct 18, 2018
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add recovery&rollback tests for instant DROP COLUMN
parent
876ab037
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
2 deletions
+49
-2
mysql-test/suite/innodb/r/instant_alter_rollback.result
mysql-test/suite/innodb/r/instant_alter_rollback.result
+26
-1
mysql-test/suite/innodb/t/instant_alter_rollback.test
mysql-test/suite/innodb/t/instant_alter_rollback.test
+23
-1
No files found.
mysql-test/suite/innodb/r/instant_alter_rollback.result
View file @
6b91e90a
FLUSH TABLES;
#
# MDEV-11369: Instant ADD COLUMN for InnoDB
# MDEV-15562: Instant DROP COLUMN or changing the order of columns
#
connect to_be_killed, localhost, root;
SET @old_instant=
(SELECT variable_value FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column');
CREATE TABLE empty (id INT PRIMARY KEY, c2 INT UNIQUE) ENGINE=InnoDB;
CREATE TABLE once LIKE empty;
CREATE TABLE twice LIKE empty;
CREATE TABLE thrice LIKE empty;
INSERT INTO once SET id=1,c2=1;
INSERT INTO twice SET id=1,c2=1;
INSERT INTO thrice SET id=1,c2=1;
ALTER TABLE empty ADD COLUMN (d1 INT DEFAULT 15);
ALTER TABLE once ADD COLUMN (d1 INT DEFAULT 20);
ALTER TABLE twice ADD COLUMN (d1 INT DEFAULT 20);
ALTER TABLE thrice ADD COLUMN (d1 INT DEFAULT 20);
ALTER TABLE twice ADD COLUMN
(d2 INT NOT NULL DEFAULT 10,
d3 VARCHAR(15) NOT NULL DEFAULT 'var och en char');
ALTER TABLE thrice ADD COLUMN
(d2 INT NOT NULL DEFAULT 10,
d3 TEXT NOT NULL DEFAULT 'con');
ALTER TABLE thrice DROP c2, DROP d3, CHANGE d2 d3 INT NOT NULL FIRST;
SELECT variable_value-@old_instant instants
FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column';
instants
7
BEGIN;
INSERT INTO empty set id=0,c2=42;
UPDATE once set c2=c2+1;
UPDATE twice set c2=c2+1;
UPDATE thrice set d3=d3+1;
INSERT INTO twice SET id=2,c2=0,d3='';
INSERT INTO thrice SET id=2,d3=0;
DELETE FROM empty;
DELETE FROM once;
DELETE FROM twice;
DELETE FROM thrice;
connection default;
SET GLOBAL innodb_flush_log_at_trx_commit=1;
CREATE TABLE foo(a INT PRIMARY KEY) ENGINE=InnoDB;
...
...
@@ -37,4 +59,7 @@ id c2 d1
SELECT * FROM twice;
id c2 d1 d2 d3
1 1 20 10 var och en char
DROP TABLE empty, once, twice;
SELECT * FROM thrice;
d3 id d1
10 1 20
DROP TABLE empty, once, twice, thrice;
mysql-test/suite/innodb/t/instant_alter_rollback.test
View file @
6b91e90a
...
...
@@ -8,28 +8,49 @@ FLUSH TABLES;
--
echo
#
--
echo
# MDEV-11369: Instant ADD COLUMN for InnoDB
--
echo
# MDEV-15562: Instant DROP COLUMN or changing the order of columns
--
echo
#
connect
to_be_killed
,
localhost
,
root
;
SET
@
old_instant
=
(
SELECT
variable_value
FROM
information_schema
.
global_status
WHERE
variable_name
=
'innodb_instant_alter_column'
);
CREATE
TABLE
empty
(
id
INT
PRIMARY
KEY
,
c2
INT
UNIQUE
)
ENGINE
=
InnoDB
;
CREATE
TABLE
once
LIKE
empty
;
CREATE
TABLE
twice
LIKE
empty
;
CREATE
TABLE
thrice
LIKE
empty
;
INSERT
INTO
once
SET
id
=
1
,
c2
=
1
;
INSERT
INTO
twice
SET
id
=
1
,
c2
=
1
;
INSERT
INTO
thrice
SET
id
=
1
,
c2
=
1
;
ALTER
TABLE
empty
ADD
COLUMN
(
d1
INT
DEFAULT
15
);
ALTER
TABLE
once
ADD
COLUMN
(
d1
INT
DEFAULT
20
);
ALTER
TABLE
twice
ADD
COLUMN
(
d1
INT
DEFAULT
20
);
ALTER
TABLE
thrice
ADD
COLUMN
(
d1
INT
DEFAULT
20
);
ALTER
TABLE
twice
ADD
COLUMN
(
d2
INT
NOT
NULL
DEFAULT
10
,
d3
VARCHAR
(
15
)
NOT
NULL
DEFAULT
'var och en char'
);
ALTER
TABLE
thrice
ADD
COLUMN
(
d2
INT
NOT
NULL
DEFAULT
10
,
d3
TEXT
NOT
NULL
DEFAULT
'con'
);
ALTER
TABLE
thrice
DROP
c2
,
DROP
d3
,
CHANGE
d2
d3
INT
NOT
NULL
FIRST
;
SELECT
variable_value
-@
old_instant
instants
FROM
information_schema
.
global_status
WHERE
variable_name
=
'innodb_instant_alter_column'
;
BEGIN
;
INSERT
INTO
empty
set
id
=
0
,
c2
=
42
;
UPDATE
once
set
c2
=
c2
+
1
;
UPDATE
twice
set
c2
=
c2
+
1
;
UPDATE
thrice
set
d3
=
d3
+
1
;
INSERT
INTO
twice
SET
id
=
2
,
c2
=
0
,
d3
=
''
;
INSERT
INTO
thrice
SET
id
=
2
,
d3
=
0
;
DELETE
FROM
empty
;
DELETE
FROM
once
;
DELETE
FROM
twice
;
DELETE
FROM
thrice
;
connection
default
;
SET
GLOBAL
innodb_flush_log_at_trx_commit
=
1
;
...
...
@@ -48,4 +69,5 @@ SET GLOBAL innodb_purge_rseg_truncate_frequency=@saved_frequency;
SELECT
*
FROM
empty
;
SELECT
*
FROM
once
;
SELECT
*
FROM
twice
;
DROP
TABLE
empty
,
once
,
twice
;
SELECT
*
FROM
thrice
;
DROP
TABLE
empty
,
once
,
twice
,
thrice
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment