2009-10-12 08:22:53 +02:00
|
|
|
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);
|
Bug#42520 killing load .. infile Assertion failed: ! is_set(), file .\sql_error.cc, line 8
The additional patch. That 'loadxml.test' failure was actually about our testing system,
not the code.
Firstly we need a new mysqltest command, wich i called 'send_eval'. So the expression
can be evaluated, then started in a parallel thread. We only have separane 'send' and
'eval' commands at the moment.
Then we need to add the waiting code after the 'KILL' to our test, so the thread will be killed
before the test goes further. The present 'reap' command doesn't handle the killed threads
well.
per-file comments:
client/mysqltest.cc
Bug#42520 killing load .. infile Assertion failed: ! is_set(), file .\sql_error.cc, line 8
The 'send_eval' command implemented.
mysql-test/r/loadxml.result
Bug#42520 killing load .. infile Assertion failed: ! is_set(), file .\sql_error.cc, line 8
test result updated.
mysql-test/t/loadxml.test
Bug#42520 killing load .. infile Assertion failed: ! is_set(), file .\sql_error.cc, line 8
test case added.
2009-11-10 21:55:05 +01:00
|
|
|
LOAD XML LOCAL INFILE "MYSQLTEST_VARDIR/tmp/loadxml-dump.xml" INTO TABLE t2 ROWS IDENTIFIED BY '<person>';;
|
2009-10-12 08:22:53 +02:00
|
|
|
drop table t1;
|
|
|
|
drop table t2;
|
|
|
|
create table t1 (
|
|
|
|
id int(11) not null,
|
|
|
|
text text,
|
|
|
|
primary key (id)
|
|
|
|
) engine=MyISAM default charset=latin1;
|
|
|
|
load xml infile '../../std_data/loadxml2.dat' into table t1;
|
|
|
|
select * from t1;
|
|
|
|
id text
|
|
|
|
1 line1
|
|
|
|
line2
|
|
|
|
line3
|
|
|
|
drop table t1;
|
2010-05-05 12:34:20 +02:00
|
|
|
#
|
|
|
|
# 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;
|