File: mysqldump_bugs.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (174 lines) | stat: -rw-r--r-- 6,362 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
--source include/no_valgrind_without_big.inc

# Save the initial number of concurrent sessions
--source include/count_sessions.inc


--echo #
--echo # Bug #28380961: CONTRIBUTION BY FACEBOOK: ADD MY_APPEND_EXT FLAG
--echo #  WHEN DETERMINING FILE NAME ...
--echo #

--echo # setup
CREATE TABLE `b28380961.p2` (a INT);
INSERT INTO `b28380961.p2` VALUES (1),(2),(3),(4);

--echo # test
--exec $MYSQL_DUMP --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test
--echo # success if files are present
--echo # Dump the sql file
--cat_file $MYSQLTEST_VARDIR/tmp/b28380961.p2.sql
--echo # Dump the txt file
--cat_file $MYSQLTEST_VARDIR/tmp/b28380961.p2.txt
--echo # remove the sql file
--remove_file $MYSQLTEST_VARDIR/tmp/b28380961.p2.sql
--echo # remove the txt file
--remove_file $MYSQLTEST_VARDIR/tmp/b28380961.p2.txt

--echo # cleanup
DROP TABLE `b28380961.p2`;


--echo #
--echo # Bug #28373001: MYSQLDUMP --SKIP-CREATE-OPTIONS FAILS ON MYSQL 8.0 SERVER
--echo #

--echo # Put some data in
CREATE TABLE b28373001 (a INT);
INSERT INTO b28373001 VALUES (1), (2), (3), (4);

--echo # Tes: must pass
--exec $MYSQL_DUMP --skip-create-options --compact test b28373001

--echo # Cleanup
DROP TABLE b28373001;

--echo #
--echo # Bug #32141046: MYSQLDUMP SHOULD DUMP USERS REFERENCED IN DEFINER
--echo #                CLAUSE OF STORED PROGRAMS.
--echo #

CREATE DATABASE IF NOT EXISTS db1;
CREATE DATABASE IF NOT EXISTS db2;
CREATE DATABASE IF NOT EXISTS db3;
CREATE DATABASE IF NOT EXISTS db4;
CREATE DATABASE IF NOT EXISTS mysqj;
CREATE DATABASE IF NOT EXISTS mysqk;
CREATE DATABASE IF NOT EXISTS mysqll;

CREATE USER IF NOT EXISTS view_u1;
CREATE USER IF NOT EXISTS view_u2@my.oracle.com;

CREATE USER IF NOT EXISTS event_u1;
CREATE USER IF NOT EXISTS event_u2@192.1.1.140;

CREATE USER IF NOT EXISTS trig_u1;
CREATE USER IF NOT EXISTS trig_u2@xyz.com;

CREATE USER IF NOT EXISTS proc_u1;
CREATE USER IF NOT EXISTS proc_u2@localhost;

CREATE USER IF NOT EXISTS func_u1;
CREATE USER IF NOT EXISTS func_u2;

CREATE USER IF NOT EXISTS user_not_referenced_as_definer;

USE db1;
CREATE TABLE t1 (i int not null, j int);

CREATE DEFINER=view_u1 VIEW v1 AS SELECT * FROM t1;
CREATE DEFINER=view_u1 VIEW v2 AS SELECT * FROM t1;
CREATE DEFINER=view_u2@my.oracle.com VIEW v3 AS SELECT * FROM t1;
CREATE DEFINER=view_u2@my.oracle.com VIEW v4 AS SELECT * FROM t1;

CREATE DEFINER=event_u1 EVENT e1 ON SCHEDULE AT '2037-01-01 00:00:00' DISABLE DO SET @a = 5;
CREATE DEFINER=event_u1 EVENT e2 ON SCHEDULE AT '2037-01-01 00:00:00' DISABLE DO SET @a = 5;
CREATE DEFINER=event_u2@192.1.1.140 EVENT e3 ON SCHEDULE AT '2037-01-01 00:00:00' DISABLE DO SET @a = 5;
CREATE DEFINER=event_u2@192.1.1.140 EVENT e4 ON SCHEDULE AT '2037-01-01 00:00:00' DISABLE DO SET @a = 5;

CREATE DEFINER=trig_u1 TRIGGER trig1 BEFORE INSERT ON t1 FOR EACH ROW SET @sum = 1;
CREATE DEFINER=trig_u1 TRIGGER trig2 BEFORE INSERT ON t1 FOR EACH ROW SET @sum = 1;
CREATE DEFINER=trig_u2@xyz.com TRIGGER trig3 BEFORE INSERT ON t1 FOR EACH ROW SET @sum = 1;
CREATE DEFINER=trig_u2@xyz.com TRIGGER trig4 BEFORE INSERT ON t1 FOR EACH ROW SET @sum = 1;

CREATE DEFINER=proc_u1 PROCEDURE p1() INSERT INTO t1 VALUES(10);
CREATE DEFINER=proc_u1 PROCEDURE p2() INSERT INTO t1 VALUES(10);
CREATE DEFINER=proc_u2@localhost PROCEDURE p3() INSERT INTO t1 VALUES(10);
CREATE DEFINER=proc_u2@localhost PROCEDURE p4() INSERT INTO t1 VALUES(10);

CREATE DEFINER=func_u1 FUNCTION f1 (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!');
CREATE DEFINER=func_u1 FUNCTION f2 (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!');
CREATE DEFINER=func_u2 FUNCTION f3 (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!');
CREATE DEFINER=func_u2 FUNCTION f4 (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!');

use db2;
CREATE TABLE t1 (i int not null, j int);

--echo # ensure that mysql database is dumped first before any other database is dumped.
--exec $MYSQL_DUMP --all-databases --skip-comments --no-create-info --no-data --skip-triggers

#cleanup
DROP DATABASE IF EXISTS db1;
DROP DATABASE IF EXISTS db2;
DROP DATABASE IF EXISTS db3;
DROP DATABASE IF EXISTS db4;
DROP DATABASE IF EXISTS mysqj;
DROP DATABASE IF EXISTS mysqk;
DROP DATABASE IF EXISTS mysqll;
DROP USER view_u1, view_u2@my.oracle.com, event_u1, event_u2@192.1.1.140, trig_u1, trig_u2@xyz.com,
          proc_u1, proc_u2@localhost, func_u1, func_u2, user_not_referenced_as_definer;
USE test;

--echo #
--echo # WL#13292: Deprecate legacy connection compression parameters
--echo #

USE test;
CREATE TABLE wl13292(a INT PRIMARY KEY);

--echo # exec mysqldump --compress: must have a deprecation warning
--exec $MYSQL_DUMP --compress --skip-create-options --compact test wl13292 2>&1
--echo # exec mysqldump --compression-algorithms: must not have a deprecation warning
--exec $MYSQL_DUMP --compression-algorithms=zlib,uncompressed --skip-create-options --compact test wl13292 2>&1

DROP TABLE wl13292;

--echo #
--echo # Bug#35208605: Mysqldump table with virtual column wrong syntax
--echo #

CREATE DATABASE b35208605;
USE b35208605;
CREATE TABLE x1 (c0 BLOB AS ('a') VIRTUAL, c1 INT);
INSERT INTO x1(c1) VALUES (1);
CREATE TABLE x2 (c1 INT, c0 BLOB AS ('a') VIRTUAL);
INSERT INTO x2(c1) VALUES (1);
CREATE TABLE x3 (c0 BLOB AS ('a') VIRTUAL INVISIBLE, c1 INT);
INSERT INTO x3(c1) VALUES (1);
CREATE TABLE x4 (c1 INT, c0 BLOB AS ('a') VIRTUAL INVISIBLE);
INSERT INTO x4(c1) VALUES (1);
CREATE TABLE x5 (c0 BLOB AS ('a') STORED, c1 INT);
INSERT INTO x5(c1) VALUES (1);
CREATE TABLE x6 (c1 INT, c0 BLOB AS ('a') STORED);
INSERT INTO x6(c1) VALUES (1);
CREATE TABLE x7 (c0 BLOB AS ('a') STORED INVISIBLE, c1 INT);
INSERT INTO x7(c1) VALUES (1);
CREATE TABLE x8 (c1 INT, c0 BLOB AS ('a') STORED INVISIBLE);
INSERT INTO x8(c1) VALUES (1);

--echo # Test: all INSERTs must be valid SQL
--exec $MYSQL_DUMP --skip-comments --compact --result-file=$MYSQLTEST_VARDIR/tmp/b35208605.sql b35208605 2>&1
DROP TABLE x1,x2,x3,x4,x5,x6,x7,x8;
--echo # Test: Must apply OK
--exec $MYSQL b35208605 < $MYSQLTEST_VARDIR/tmp/b35208605.sql 2>&1

DROP TABLE x1,x2,x3,x4,x5,x6,x7,x8;
USE test;
DROP DATABASE b35208605;
remove_file $MYSQLTEST_VARDIR/tmp/b35208605.sql;


--echo # End of 8.0 tests

# Wait till we reached the initial number of concurrent sessions
--source include/wait_until_count_sessions.inc