|
|
|
|
DROP TABLE IF EXISTS t1, t2;
|
|
|
|
|
#
|
|
|
|
|
# Bug#31663 FIELDS TERMINATED BY special character
|
|
|
|
|
#
|
|
|
|
|
CREATE TABLE t1 (i1 int, i2 int, c1 VARCHAR(256), c2 VARCHAR(256));
|
|
|
|
|
INSERT INTO t1 VALUES (101, 202, '-r-', '=raker=');
|
|
|
|
|
# FIELDS TERMINATED BY 'raker', warning:
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS TERMINATED BY 'raker' FROM t1;
|
|
|
|
|
SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt');
|
|
|
|
|
LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt')
|
|
|
|
|
101raker202raker-r-raker=raker=
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t2 SELECT * FROM t1;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' IGNORE INTO TABLE t2 FIELDS TERMINATED BY 'raker';
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1262 Row 1 was truncated; it contained more data than there were input columns
|
|
|
|
|
SELECT * FROM t2;
|
|
|
|
|
i1 i2 c1 c2
|
|
|
|
|
101 202 -r- =raker=
|
|
|
|
|
101 202 -r- =
|
|
|
|
|
DROP TABLE t2;
|
|
|
|
|
# Only numeric fields, FIELDS TERMINATED BY 'r', no warnings:
|
|
|
|
|
SELECT i1, i2 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS TERMINATED BY 'r' FROM t1;
|
|
|
|
|
SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt');
|
|
|
|
|
LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt')
|
|
|
|
|
101r202
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t2 SELECT i1, i2 FROM t1;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 FIELDS TERMINATED BY 'r';
|
|
|
|
|
SELECT i1, i2 FROM t2;
|
|
|
|
|
i1 i2
|
|
|
|
|
101 202
|
|
|
|
|
101 202
|
|
|
|
|
DROP TABLE t2;
|
|
|
|
|
# FIELDS TERMINATED BY '0', warning:
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS TERMINATED BY '0' FROM t1;
|
|
|
|
|
SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt');
|
|
|
|
|
LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt')
|
|
|
|
|
10102020-r-0=raker=
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t2 SELECT * FROM t1;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' IGNORE INTO TABLE t2 FIELDS TERMINATED BY '0';
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1262 Row 1 was truncated; it contained more data than there were input columns
|
|
|
|
|
SELECT * FROM t2;
|
|
|
|
|
i1 i2 c1 c2
|
|
|
|
|
101 202 -r- =raker=
|
|
|
|
|
1 1 2 2
|
|
|
|
|
DROP TABLE t2;
|
|
|
|
|
# FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0', warning:
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0' FROM t1;
|
|
|
|
|
SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt');
|
|
|
|
|
LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt')
|
|
|
|
|
10102020"-r-"0"=raker="
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t2 SELECT * FROM t1;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' IGNORE INTO TABLE t2 FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0';
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1262 Row 1 was truncated; it contained more data than there were input columns
|
|
|
|
|
SELECT * FROM t2;
|
|
|
|
|
i1 i2 c1 c2
|
|
|
|
|
101 202 -r- =raker=
|
|
|
|
|
1 1 2 2
|
|
|
|
|
DROP TABLE t2;
|
|
|
|
|
# Only string fields, FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0', no warnings:
|
|
|
|
|
SELECT c1, c2 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0' FROM t1;
|
|
|
|
|
SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt');
|
|
|
|
|
LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt')
|
|
|
|
|
"-r-"0"=raker="
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t2 SELECT c1, c2 FROM t1;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' IGNORE INTO TABLE t2 FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0';
|
|
|
|
|
SELECT c1, c2 FROM t2;
|
|
|
|
|
c1 c2
|
|
|
|
|
-r- =raker=
|
|
|
|
|
-r- =raker=
|
|
|
|
|
DROP TABLE t2;
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
#
|
|
|
|
|
# Bug#32533: SELECT INTO OUTFILE never escapes multibyte character
|
|
|
|
|
#
|
|
|
|
|
CREATE TABLE t1 (c1 VARCHAR(256) charset latin1);
|
|
|
|
|
INSERT INTO t1 VALUES (0xC3);
|
|
|
|
|
SELECT HEX(c1) FROM t1;
|
|
|
|
|
HEX(c1)
|
|
|
|
|
C3
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug32533.txt' FIELDS ENCLOSED BY 0xC3 FROM t1;
|
|
|
|
|
TRUNCATE t1;
|
|
|
|
|
SELECT HEX(LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug32533.txt'));
|
|
|
|
|
HEX(LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug32533.txt'))
|
|
|
|
|
C35CC3C30A
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug32533.txt' INTO TABLE t1 CHARACTER SET latin1 FIELDS ENCLOSED BY 0xC3;
|
|
|
|
|
SELECT HEX(c1) FROM t1;
|
|
|
|
|
HEX(c1)
|
|
|
|
|
C3
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
# End of 5.0 tests.
|
|
|
|
|
#
|
|
|
|
|
# Bug #30946: mysqldump silently ignores --default-character-set
|
|
|
|
|
# when used with --tab
|
|
|
|
|
#
|
|
|
|
|
# Also see mysqldump.test
|
|
|
|
|
#
|
|
|
|
|
SET NAMES utf8;
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
|
|
|
CREATE TABLE t1 (a INT, b CHAR(10) CHARSET koi8r, c CHAR(10) CHARSET latin1);
|
|
|
|
|
CREATE TABLE t2 LIKE t1;
|
|
|
|
|
INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
|
|
|
|
|
# Error on multi-character ENCLOSED/ESCAPED BY
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FIELDS ENCLOSED BY '12345';
|
|
|
|
|
ERROR 42000: Field separator argument is not what is expected; check the manual
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FIELDS ESCAPED BY '12345';
|
|
|
|
|
ERROR 42000: Field separator argument is not what is expected; check the manual
|
|
|
|
|
# "Not implemented" warning on multibyte ENCLOSED/ESCAPED BY character,
|
|
|
|
|
# LOAD DATA rises error or has unpredictable result -- to be fixed later
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FIELDS ENCLOSED BY 'ъ';
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET binary FIELDS ENCLOSED BY 'ъ';
|
|
|
|
|
ERROR 42000: Field separator argument is not what is expected; check the manual
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FIELDS ESCAPED BY 'ъ';
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET binary FIELDS ESCAPED BY 'ъ';
|
|
|
|
|
ERROR 42000: Field separator argument is not what is expected; check the manual
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FIELDS TERMINATED BY 'ъ';
|
|
|
|
|
##################################################
|
|
|
|
|
1ъABC-<EFBFBD><EFBFBD><EFBFBD>ъDEF-<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
2ъ\Nъ\N
|
|
|
|
|
##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET binary FIELDS TERMINATED BY 'ъ';
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SELECT * FROM t2;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' LINES STARTING BY 'ъ';
|
|
|
|
|
##################################################
|
|
|
|
|
ъ1 ABC-<EFBFBD><EFBFBD><EFBFBD> DEF-<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ъ2 \N \N
|
|
|
|
|
##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET binary LINES STARTING BY 'ъ';
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1638 Non-ASCII separator arguments are not fully supported
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' LINES TERMINATED BY 'ъ';
|
|
|
|
|
##################################################
|
|
|
|
|
1 ABC-<EFBFBD><EFBFBD><EFBFBD> DEF-<EFBFBD><EFBFBD><EFBFBD>ъ2 \N \Nъ##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET binary LINES TERMINATED BY 'ъ';
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1638 Non-ASCII separator arguments are not fully supported
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SELECT * FROM t2;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
# Default (binary) charset:
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FROM t1;
|
|
|
|
|
##################################################
|
|
|
|
|
1 ABC-<EFBFBD><EFBFBD><EFBFBD> DEF-<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
2 \N \N
|
|
|
|
|
##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET binary;
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
# latin1 charset (INTO OUTFILE warning is expected):
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' CHARACTER SET latin1 FROM t1;
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1366 Incorrect string value: '\xE1\xE2\xF7' for column 'b' at row 1
|
|
|
|
|
##################################################
|
|
|
|
|
1 ABC-??? DEF-<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
2 \N \N
|
|
|
|
|
##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET latin1 ;
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-??? DEF-ÂÃÄ
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
# KOI8-R charset (INTO OUTFILE warning is expected):
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' CHARACTER SET koi8r FROM t1;
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1366 Incorrect string value: '\xC2\xC3\xC4' for column 'c' at row 1
|
|
|
|
|
##################################################
|
|
|
|
|
1 ABC-<EFBFBD><EFBFBD><EFBFBD> DEF-???
|
|
|
|
|
2 \N \N
|
|
|
|
|
##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET koi8r;
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-???
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
# UTF-8 charset:
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' CHARACTER SET utf8 FROM t1;
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
|
|
|
##################################################
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 \N \N
|
|
|
|
|
##################################################
|
|
|
|
|
TRUNCATE t2;
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET utf8;
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
|
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
|
|
|
|
|
a b c
|
|
|
|
|
1 ABC-АБВ DEF-ÂÃÄ
|
|
|
|
|
2 NULL NULL
|
|
|
|
|
SET NAMES default;
|
|
|
|
|
DROP TABLE t1, t2;
|
|
|
|
|
#
|
|
|
|
|
# Bug #53088: mysqldump with -T & --default-character-set set
|
|
|
|
|
# truncates text/blob to 766 chars
|
|
|
|
|
#
|
|
|
|
|
# Also see mysqldump.test
|
|
|
|
|
#
|
|
|
|
|
CREATE TABLE t1 (a BLOB) CHARSET latin1;
|
|
|
|
|
CREATE TABLE t2 LIKE t1;
|
|
|
|
|
INSERT INTO t1 VALUES (REPEAT('.', 800));
|
|
|
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug53088.txt' CHARACTER SET latin1 FROM t1;
|
|
|
|
|
# should be greater than 800
|
|
|
|
|
SELECT LENGTH(LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug53088.txt'));
|
|
|
|
|
LENGTH(LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug53088.txt'))
|
|
|
|
|
801
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug53088.txt' INTO TABLE t2;
|
|
|
|
|
# should be 800
|
|
|
|
|
SELECT LENGTH(a) FROM t2;
|
|
|
|
|
LENGTH(a)
|
|
|
|
|
800
|
|
|
|
|
DROP TABLE t1, t2;
|
|
|
|
|
# End of 5.1 tests.
|
|
|
|
|
#
|
|
|
|
|
# Bug#24577194 - LOAD DATA ERROR 1262 BEHAVIOUR DIFFERENT
|
|
|
|
|
# BETWEEN 5.6 AND 5.7 UNDER STRICT SQLMOD
|
|
|
|
|
#
|
|
|
|
|
CREATE TABLE t1(c1 VARCHAR(10), c2 VARCHAR(10));
|
|
|
|
|
INSERT INTO t1 VALUES('aaaaa', 'bbbbb');
|
|
|
|
|
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug24577194.txt' FIELDS TERMINATED BY ',';
|
|
|
|
|
CREATE TABLE t2(c1 VARCHAR(10));
|
|
|
|
|
SET sql_mode='STRICT_ALL_TABLES';
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
|
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug24577194.txt' INTO TABLE t2 FIELDS TERMINATED BY ',';
|
|
|
|
|
ERROR 01000: Row 1 was truncated; it contained more data than there were input columns
|
|
|
|
|
DROP TABLE t1,t2;
|
|
|
|
|
SET sql_mode=default;
|