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
|
drop table if exists t1, t2;
create table t1 (a int, b varchar(64));
-- Load a static XML file
load xml infile '../../std_data/loadxml.dat' into table t1
rows identified by '<row>';
select * from t1 order by a;
a b
1 b1
2 b2
3 b3
11 b11
111 b111
112 b112 & < > " ' &unknown; -- check entities
212 b212
213 b213
214 b214
215 b215
216 &bb b;
delete from t1;
-- Load a static XML file with 'IGNORE num ROWS'
load xml infile '../../std_data/loadxml.dat' into table t1
rows identified by '<row>' ignore 4 rows;
select * from t1 order by a;
a b
111 b111
112 b112 & < > " ' &unknown; -- check entities
212 b212
213 b213
214 b214
215 b215
216 &bb b;
-- Check 'mysqldump --xml' + 'LOAD XML' round trip
delete from t1;
load xml infile 'MYSQLTEST_VARDIR/tmp/loadxml-dump.xml' into table t1 rows identified by '<row>';;
select * from t1 order by a;
a b
111 b111
112 b112 & < > " ' &unknown; -- check entities
212 b212
213 b213
214 b214
215 b215
216 &bb b;
--Check that default row tag is '<row>
delete from t1;
load xml infile 'MYSQLTEST_VARDIR/tmp/loadxml-dump.xml' into table t1;;
select * from t1 order by a;
a b
111 b111
112 b112 & < > " ' &unknown; -- check entities
212 b212
213 b213
214 b214
215 b215
216 &bb b;
-- Check that 'xml' is not a keyword
select 1 as xml;
xml
1
create table t2(fl text);
LOAD XML LOCAL INFILE "MYSQLTEST_VARDIR/tmp/loadxml-dump.xml" INTO TABLE t2 ROWS IDENTIFIED BY '<person>';;
drop table t1;
drop table t2;
create table t1 (
id int(11) not null,
text text,
primary key (id)
) default charset=latin1;
Warnings:
Warning 1681 Integer display width is deprecated and will be removed in a future release.
load xml infile '../../std_data/loadxml2.dat' into table t1;
select * from t1;
id text
1 line1
line2
line3
drop table t1;
#
# Bug#51571 load xml infile causes server crash
#
CREATE TABLE t1 (a text, b text);
LOAD XML INFILE '../../std_data/loadxml.dat' INTO TABLE t1
ROWS IDENTIFIED BY '<row>' (a,@b) SET b=concat('!',@b);
SELECT * FROM t1 ORDER BY a;
a b
1 !b1
11 !b11
111 !b111
112 !b112 & < > " ' &unknown; -- check entities
2 !b2
212 !b212
213 !b213
214 !b214
215 !b215
216 !&bb b;
3 !b3
DROP TABLE t1;
#
# Bug#16171518 LOAD XML DOES NOT HANDLE EMPTY ELEMENTS
#
CREATE TABLE t1 (col1 VARCHAR(3), col2 VARCHAR(3), col3 VARCHAR(3), col4 VARCHAR(4));
LOAD XML INFILE '../../std_data/bug16171518_1.dat' INTO TABLE t1;
SELECT * FROM t1 ORDER BY col1, col2, col3, col4;
col1 col2 col3 col4
0bc def ghi jkl
1no NULL pqr stu
2BC DEF GHI JKL
3NO NULL PQR STU
4bc def ghi jkl
5no pqr stu vwx
6BC DEF NULL JKL
7NO PQR STU VWX
8bc def ghi NULL
9kl NULL mno pqr
ABC DEF NULL JKL
MNO NULL STU VWX
DROP TABLE t1;
CREATE TABLE t1 (col1 VARCHAR(3), col2 VARCHAR(3), col3 INTEGER);
LOAD XML INFILE '../../std_data/bug16171518_2.dat' INTO TABLE t1;
SELECT * FROM t1 ORDER BY col1, col2, col3;
col1 col2 col3
ABC DEF NULL
GHI NULL 123
DROP TABLE t1;
#
# Regression test added in WL#8063
#
CREATE TABLE t1 (col1 VARCHAR(3), col2 VARCHAR(3), col3 INTEGER);
CREATE TABLE t2(i INT NOT NULL);
CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t2 VALUES (NULL);
LOAD XML INFILE '../../std_data/bug16171518_2.dat' INTO TABLE t1;
ERROR 23000: Column 'i' cannot be null
DROP TABLE t1, t2;
CREATE TABLE t3 (col1 VARCHAR(3), col2 VARCHAR(3), col3 INTEGER);
CREATE VIEW v3 AS SELECT * FROM t3 WHERE col3 < 0 WITH CHECK OPTION;
LOAD XML INFILE '../../std_data/bug16171518_2.dat' INTO TABLE v3;
ERROR HY000: CHECK OPTION failed 'test.v3'
DROP VIEW v3;
DROP TABLE t3;
CREATE TABLE t4 (col1 VARCHAR(3), col2 VARCHAR(3), col3 INTEGER, col4 INT NOT NULL);
LOAD XML INFILE '../../std_data/bug16171518_2.dat' INTO TABLE t4 (col1, col2, col3) SET col4 = NULL;
ERROR 23000: Column 'col4' cannot be null
DROP TABLE t4;
#
# BUG#30753708: LOAD XML: FIELD VALUES LEAK WHEN GOING OUT OF SCOPE
#
CREATE TABLE t1(a INT NOT NULL PRIMARY KEY, p INT NULL);
LOAD XML INFILE '../../std_data/bug30753708.dat' INTO TABLE t1 ROWS IDENTIFIED BY '<address>';
SELECT * FROM t1 ORDER BY a;
a p
1 1
2 2
3 3
4 NULL
5 NULL
6 NULL
7 NULL
DROP TABLE t1;
CREATE TABLE t1(a INT NOT NULL PRIMARY KEY, p INT NULL, s VARCHAR(100));
LOAD XML INFILE '../../std_data/bug30753708.dat' INTO TABLE t1 ROWS IDENTIFIED BY '<address>';
SELECT * FROM t1 ORDER BY a;
a p s
1 1 NULL
2 2 ABC
3 3 ABC + XYZ
4 NULL NULL
5 NULL ABC + KLM + XYZ + the end
6 NULL ABC +
7 NULL A<L>Z
DROP TABLE t1;
#
|