mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
f169114042
Now one can use user variables as target for data loaded from file (besides table's columns). Also LOAD DATA got new SET-clause in which one can specify values for table columns as expressions. For example the following is possible: LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1; This patch also implements new way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event
195 lines
5.3 KiB
Text
195 lines
5.3 KiB
Text
--disable_warnings
|
||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa;
|
||
drop database if exists mysqldump_test_db;
|
||
drop view if exists v1;
|
||
--enable_warnings
|
||
|
||
# XML output
|
||
|
||
CREATE TABLE t1(a int);
|
||
INSERT INTO t1 VALUES (1), (2);
|
||
--exec $MYSQL_DUMP --skip-create --skip-comments -X test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #2005
|
||
#
|
||
|
||
CREATE TABLE t1 (a decimal(64, 20));
|
||
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||
("0987654321098765432109876543210987654321");
|
||
--exec $MYSQL_DUMP --compact test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #2055
|
||
#
|
||
|
||
CREATE TABLE t1 (a double);
|
||
INSERT INTO t1 VALUES ('-9e999999');
|
||
# The following replaces is here because some systems replaces the above
|
||
# double with '-inf' and others with MAX_DOUBLE
|
||
--replace_result (-1.79769313486232e+308) (RES) (NULL) (RES)
|
||
--exec $MYSQL_DUMP --compact test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #3361 mysqldump quotes DECIMAL values inconsistently
|
||
#
|
||
|
||
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 1054
|
||
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
|
||
--exec $MYSQL_DUMP --compact --skip-create test t1
|
||
--exec $MYSQL_DUMP --skip-create --skip-comments test t1
|
||
--exec $MYSQL_DUMP --skip-opt --extended-insert --skip-comments test t1
|
||
DROP TABLE t1;
|
||
|
||
CREATE TABLE t1(a int, b text, c varchar(3));
|
||
INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
|
||
--exec $MYSQL_DUMP --skip-create --compact -X test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #1707
|
||
#
|
||
|
||
CREATE TABLE t1 (`a"b"` char(2));
|
||
INSERT INTO t1 VALUES ("1\""), ("\"2");
|
||
--exec $MYSQL_DUMP --compact --skip-create -X test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #1994
|
||
# Bug #4261
|
||
#
|
||
|
||
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
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #2634
|
||
#
|
||
|
||
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
||
INSERT INTO t1 VALUES (1), (2);
|
||
--exec $MYSQL_DUMP --skip-comments --compatible=mysql40 test t1
|
||
--exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
|
||
#
|
||
|
||
create table ```a` (i int);
|
||
--exec $MYSQL_DUMP --compact test
|
||
drop table ```a`;
|
||
|
||
#
|
||
# Bug #2591 "mysqldump quotes names inconsistently"
|
||
#
|
||
|
||
create table t1(a int);
|
||
--exec $MYSQL_DUMP --comments=0 test
|
||
--exec $MYSQL_DUMP --comments=0 --compatible=ansi test
|
||
set global sql_mode='ANSI_QUOTES';
|
||
--exec $MYSQL_DUMP --comments=0 test
|
||
--exec $MYSQL_DUMP --comments=0 --compatible=ansi test
|
||
set global sql_mode='';
|
||
drop table t1;
|
||
|
||
#
|
||
# Bug #2705 'mysqldump --tab extra output'
|
||
#
|
||
|
||
create table t1(a int);
|
||
insert into t1 values (1),(2),(3);
|
||
--exec $MYSQL_DUMP --skip-comments --tab=$MYSQL_TEST_DIR/var/tmp/ test
|
||
--exec cat $MYSQL_TEST_DIR/var/tmp/t1.sql
|
||
--exec cat $MYSQL_TEST_DIR/var/tmp/t1.txt
|
||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1.sql
|
||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
|
||
--exec $MYSQL_DUMP --tab=$MYSQL_TEST_DIR/var/tmp/ test
|
||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1.sql
|
||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
|
||
drop table t1;
|
||
|
||
#
|
||
# dump of view
|
||
#
|
||
create table t1(a int);
|
||
create view v1 as select * from t1;
|
||
--exec $MYSQL_DUMP --skip-comments test
|
||
drop view v1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Bug #6101: create database problem
|
||
#
|
||
|
||
--exec $MYSQL_DUMP --skip-comments --databases test
|
||
|
||
create database mysqldump_test_db character set latin2 collate latin2_bin;
|
||
--exec $MYSQL_DUMP --skip-comments --databases mysqldump_test_db;
|
||
drop database mysqldump_test_db;
|
||
|
||
#
|
||
# Bug #7020
|
||
# Check that we don't dump in UTF8 in compatible mode by default,
|
||
# but use the default compiled values, or the values given in
|
||
# --default-character-set=xxx. However, we should dump in UTF8
|
||
# if it is explicitely set.
|
||
|
||
CREATE TABLE t1 (a CHAR(10));
|
||
INSERT INTO t1 VALUES (_latin1 '<27><><EFBFBD><EFBFBD>');
|
||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments test t1
|
||
#
|
||
# Bug#8063: make test mysqldump [ fail ]
|
||
# We cannot tes this command because its output depends
|
||
# on --default-character-set incompiled into "mysqldump" program.
|
||
# If the future we can move this command into a separate test with
|
||
# checking that "mysqldump" is compiled with "latin1"
|
||
#
|
||
#--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 test t1
|
||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1
|
||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1
|
||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# 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);
|
||
--exec $MYSQL_DUMP --skip-comments --ignore-table=test.t1 test
|
||
DROP TABLE t1;
|
||
DROP TABLE t2;
|
||
|
||
#
|
||
# Bug #8830
|
||
#
|
||
|
||
CREATE TABLE t1 (`b` blob);
|
||
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
|
||
--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1
|
||
DROP TABLE t1;
|
||
|