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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
2c5e79bb
Commit
2c5e79bb
authored
May 22, 2009
by
Patrick Crews
Browse files
Options
Browse Files
Download
Plain Diff
merge 5.0-> 5.1
parents
8354ce07
e42f2819
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
271 additions
and
1 deletion
+271
-1
mysql-test/include/mysqldump.inc
mysql-test/include/mysqldump.inc
+50
-0
mysql-test/r/mysqldump_restore.result
mysql-test/r/mysqldump_restore.result
+110
-0
mysql-test/t/mysqldump.test
mysql-test/t/mysqldump.test
+0
-1
mysql-test/t/mysqldump_restore.test
mysql-test/t/mysqldump_restore.test
+111
-0
No files found.
mysql-test/include/mysqldump.inc
0 → 100644
View file @
2c5e79bb
################################################################################
# mysqldump.inc
#
# SUMMARY: include file to facilitate testing the quality of mysqldump output
#
# INPUTS: Two variables:
# $table_name - the name of the table that was dumped
# $mysqldumpfile - the name of the file that captured mysqldump output
#
# OUTPUTS: minor echo data:
# We 'echo' some stage information to the .result file:
# 'altering original table', 'restoring from dumpfile', 'comparing'
#
# OTHER FILES: We use include/diff_tables.inc to compare the original, renamed
# table with the 'restored' one.
#
# DESCRIPTION: This file works by being fed the name of the original table
# and a mysqldump output file. The original table is then renamed
# to <table_name>_orig, the mysqldump file is used to recreate the
# table, then diff_tables.inc is called to compare them.
#
# LIMITATIONS: Does *NOT* work with xml output!
#
# AUTHOR: pcrews 2009-05-21
# Bug#40465 mysqldump.test does no checking of dump or restore
#
# LAST CHANGE: 2009-05-21
#
################################################################################
--
echo
# Begin testing mysqldump output + restore
--
echo
# Create 'original table name - <table>_orig
# NOTE: We use SET then let as query_get_value has issues with the extra commas
# used in the CONCAT statement.
eval
SET
@
orig_table_name
=
CONCAT
(
'$table_name'
,
'_orig'
);
let
$orig_table_name
=
query_get_value
(
SELECT
@
orig_table_name
,
@
orig_table_name
,
1
);
--
echo
# Rename original table
eval
ALTER
TABLE
$table_name
RENAME
to
$orig_table_name
;
--
echo
# Recreate table from mysqldump output
--
exec
$MYSQL
test
<
$mysqldumpfile
--
echo
# Compare original and recreated tables
--
echo
# Recreated table: $table_name
--
echo
# Original table: $orig_table_name
let
$diff_table_1
=
$table_name
;
let
$diff_table_2
=
$orig_table_name
;
--
source
include
/
diff_tables
.
inc
--
echo
# Cleanup
--
remove_file
$mysqldumpfile
eval
DROP
TABLE
$table_name
,
$orig_table_name
;
mysql-test/r/mysqldump_restore.result
0 → 100644
View file @
2c5e79bb
# Set concurrent_insert = 0 to prevent random errors
# will reset to original value at the end of the test
SET @old_concurrent_insert = @@global.concurrent_insert;
SET @@global.concurrent_insert = 0;
# Pre-test cleanup
DROP TABLE IF EXISTS t1;
# Begin tests
#
# Bug#2005 Long decimal comparison bug.
#
CREATE TABLE t1 (a DECIMAL(64, 20));
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
("0987654321098765432109876543210987654321");
# Begin testing mysqldump output + restore
# Create 'original table name - <table>_orig
SET @orig_table_name = CONCAT('test.t1', '_orig');
# Rename original table
ALTER TABLE test.t1 RENAME to test.t1_orig;
# Recreate table from mysqldump output
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
Comparing tables test.t1 and test.t1_orig
# Cleanup
DROP TABLE test.t1, test.t1_orig;
#
# Bug#3361 mysqldump quotes DECIMAL values inconsistently
#
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
INSERT INTO t1 VALUES (1.2345, 2.3456);
INSERT INTO t1 VALUES ('1.2345', 2.3456);
INSERT INTO t1 VALUES ("1.2345", 2.3456);
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ANSI_QUOTES';
INSERT INTO t1 VALUES (1.2345, 2.3456);
INSERT INTO t1 VALUES ('1.2345', 2.3456);
INSERT INTO t1 VALUES ("1.2345", 2.3456);
ERROR 42S22: Unknown column '1.2345' in 'field list'
SET SQL_MODE=@OLD_SQL_MODE;
# Begin testing mysqldump output + restore
# Create 'original table name - <table>_orig
SET @orig_table_name = CONCAT('test.t1', '_orig');
# Rename original table
ALTER TABLE test.t1 RENAME to test.t1_orig;
# Recreate table from mysqldump output
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
Comparing tables test.t1 and test.t1_orig
# Cleanup
DROP TABLE test.t1, test.t1_orig;
#
# Bug#1994 mysqldump does not correctly dump UCS2 data
# Bug#4261 mysqldump 10.7 (mysql 4.1.2) --skip-extended-insert drops NULL from inserts
#
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
# Begin testing mysqldump output + restore
# Create 'original table name - <table>_orig
SET @orig_table_name = CONCAT('test.t1', '_orig');
# Rename original table
ALTER TABLE test.t1 RENAME to test.t1_orig;
# Recreate table from mysqldump output
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
Comparing tables test.t1 and test.t1_orig
# Cleanup
DROP TABLE test.t1, test.t1_orig;
#
# WL#2319 Exclude Tables from dump
#
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (a INT);
INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t2 VALUES (4),(5),(6);
# Begin testing mysqldump output + restore
# Create 'original table name - <table>_orig
SET @orig_table_name = CONCAT('test.t2', '_orig');
# Rename original table
ALTER TABLE test.t2 RENAME to test.t2_orig;
# Recreate table from mysqldump output
# Compare original and recreated tables
# Recreated table: test.t2
# Original table: test.t2_orig
Comparing tables test.t2 and test.t2_orig
# Cleanup
DROP TABLE test.t2, test.t2_orig;
DROP TABLE t1;
#
# Bug#8830 mysqldump --skip-extended-insert causes --hex-blob to dump wrong values
#
CREATE TABLE t1 (`b` blob);
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
# Begin testing mysqldump output + restore
# Create 'original table name - <table>_orig
SET @orig_table_name = CONCAT('test.t1', '_orig');
# Rename original table
ALTER TABLE test.t1 RENAME to test.t1_orig;
# Recreate table from mysqldump output
# Compare original and recreated tables
# Recreated table: test.t1
# Original table: test.t1_orig
Comparing tables test.t1 and test.t1_orig
# Cleanup
DROP TABLE test.t1, test.t1_orig;
# End tests
# Cleanup
# Reset concurrent_insert to its original value
SET @@global.concurrent_insert = @old_concurrent_insert;
# remove mysqldumpfile
mysql-test/t/mysqldump.test
View file @
2c5e79bb
# Embedded server doesn't support external clients
--
source
include
/
not_embedded
.
inc
--
source
include
/
have_log_bin
.
inc
# Binlog is required
--
source
include
/
have_log_bin
.
inc
...
...
mysql-test/t/mysqldump_restore.test
0 → 100644
View file @
2c5e79bb
###############################################################################
# mysqldump_restore.test
#
# Purpose: Tests if mysqldump output can be used to successfully restore
# tables and data.
# We CREATE a table, mysqldump it to a file, ALTER the original
# table's name, recreate the table from the mysqldump file, then
# utilize include/diff_tables to compare the original and recreated
# tables.
#
# We use several examples from mysqldump.test here and include
# the relevant bug numbers and headers from that test.
#
# NOTE: This test is not currently complete and offers only basic
# cases of mysqldump output being restored.
# Also, does NOT work with -X (xml) output!
#
# Author: pcrews
# Created: 2009-05-21
# Last Change:
# Change date:
###############################################################################
# Embedded server doesn't support external clients
--
source
include
/
not_embedded
.
inc
--
source
include
/
have_log_bin
.
inc
--
echo
# Set concurrent_insert = 0 to prevent random errors
--
echo
# will reset to original value at the end of the test
SET
@
old_concurrent_insert
=
@@
global
.
concurrent_insert
;
SET
@@
global
.
concurrent_insert
=
0
;
# Define mysqldumpfile here. It is used to capture mysqldump output
# in order to test the output's ability to restore an exact copy of the table
let
$mysqldumpfile
=
$MYSQLTEST_VARDIR
/
tmp
/
mysqldumpfile
.
sql
;
--
echo
# Pre-test cleanup
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
--
enable_warnings
--
echo
# Begin tests
--
echo
#
--
echo
# Bug#2005 Long decimal comparison bug.
--
echo
#
CREATE
TABLE
t1
(
a
DECIMAL
(
64
,
20
));
INSERT
INTO
t1
VALUES
(
"1234567890123456789012345678901234567890"
),
(
"0987654321098765432109876543210987654321"
);
--
exec
$MYSQL_DUMP
--
compact
test
t1
>
$mysqldumpfile
let
$table_name
=
test
.
t1
;
--
source
include
/
mysqldump
.
inc
--
echo
#
--
echo
# Bug#3361 mysqldump quotes DECIMAL values inconsistently
--
echo
#
CREATE
TABLE
t1
(
a
DECIMAL
(
10
,
5
),
b
FLOAT
);
# Check at first how mysql work with quoted decimal
INSERT
INTO
t1
VALUES
(
1.2345
,
2.3456
);
INSERT
INTO
t1
VALUES
(
'1.2345'
,
2.3456
);
INSERT
INTO
t1
VALUES
(
"1.2345"
,
2.3456
);
SET
@
OLD_SQL_MODE
=@@
SQL_MODE
,
SQL_MODE
=
'ANSI_QUOTES'
;
INSERT
INTO
t1
VALUES
(
1.2345
,
2.3456
);
INSERT
INTO
t1
VALUES
(
'1.2345'
,
2.3456
);
--
error
ER_BAD_FIELD_ERROR
INSERT
INTO
t1
VALUES
(
"1.2345"
,
2.3456
);
SET
SQL_MODE
=@
OLD_SQL_MODE
;
# check how mysqldump make quoting
--
exec
$MYSQL_DUMP
--
compact
test
t1
>
$mysqldumpfile
let
$table_name
=
test
.
t1
;
--
source
include
/
mysqldump
.
inc
--
echo
#
--
echo
# Bug#1994 mysqldump does not correctly dump UCS2 data
--
echo
# Bug#4261 mysqldump 10.7 (mysql 4.1.2) --skip-extended-insert drops NULL from inserts
--
echo
#
CREATE
TABLE
t1
(
a
VARCHAR
(
255
))
DEFAULT
CHARSET
koi8r
;
INSERT
INTO
t1
VALUES
(
_koi8r
x
'C1C2C3C4C5'
),
(
NULL
);
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
skip
-
extended
-
insert
test
t1
>
$mysqldumpfile
let
$table_name
=
test
.
t1
;
--
source
include
/
mysqldump
.
inc
--
echo
#
--
echo
# WL#2319 Exclude Tables from dump
--
echo
#
CREATE
TABLE
t1
(
a
INT
);
CREATE
TABLE
t2
(
a
INT
);
INSERT
INTO
t1
VALUES
(
1
),(
2
),(
3
);
INSERT
INTO
t2
VALUES
(
4
),(
5
),(
6
);
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
ignore
-
table
=
test
.
t1
test
>
$mysqldumpfile
let
$table_name
=
test
.
t2
;
--
source
include
/
mysqldump
.
inc
DROP
TABLE
t1
;
--
echo
#
--
echo
# Bug#8830 mysqldump --skip-extended-insert causes --hex-blob to dump wrong values
--
echo
#
CREATE
TABLE
t1
(
`b`
blob
);
INSERT
INTO
`t1`
VALUES
(
0x602010000280100005E71A
);
--
exec
$MYSQL_DUMP
--
skip
-
extended
-
insert
--
hex
-
blob
test
--
skip
-
comments
t1
>
$mysqldumpfile
let
$table_name
=
test
.
t1
;
--
source
include
/
mysqldump
.
inc
--
echo
# End tests
--
echo
# Cleanup
--
echo
# Reset concurrent_insert to its original value
SET
@@
global
.
concurrent_insert
=
@
old_concurrent_insert
;
--
echo
# remove mysqldumpfile
--
error
0
,
1
--
remove_file
$mysqldumpfile
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