diff options
author | unknown <dlenev@brandersnatch.localdomain> | 2005-03-16 12:13:35 +0300 |
---|---|---|
committer | unknown <dlenev@brandersnatch.localdomain> | 2005-03-16 12:13:35 +0300 |
commit | ec919d742838f491556cb98a894bffab79957cd5 (patch) | |
tree | b8622bdfca30af3b43d99987e30119fd6b8726bf /mysql-test/t/loaddata.test | |
parent | 5f75c8f5b47b73e6c1cd4261de9b99b0fdb8c24e (diff) | |
download | mariadb-git-ec919d742838f491556cb98a894bffab79957cd5.tar.gz |
Fixed behavior of LOAD DATA with subqueries in SET clause.
The idea is to use TABLE_LIST::lock_type for passing type of lock for
target table to mysql_load() instead of using LEX::lock_option
(which were rewritten by first subselect in SET clause).
This should also fix potential problem with LOAD DATA in SP
(it is important for them to have right lock_type in the table
list by the end of statement parsing).
mysql-test/r/loaddata.result:
Added nice test for LOAD DATA with subquery.
mysql-test/t/loaddata.test:
Added nice test for LOAD DATA with subquery.
sql/log_event.cc:
Now we don't pass type of lock for target table to mysql_load()
explicitly . Instead we use TABLE_LIST::lock_type for this table
which is already properly set here.
sql/mysql_priv.h:
Now we don't pass type of lock for target table to mysql_load()
explicitly . Instead we properly set TABLE_LIST::lock_type for
this table in parser.
sql/sql_load.cc:
Now we don't pass type of lock for target table to mysql_load()
explicitly . Instead we properly set TABLE_LIST::lock_type for
this table in parser.
sql/sql_parse.cc:
Now we don't pass type of lock for target table to mysql_load()
explicitly . Instead we properly set TABLE_LIST::lock_type for
this table in parser.
sql/sql_yacc.yy:
load_data:
Let us use TABLE_LIST::lock_type for passing type of lock for target
table to mysql_load() instead of using LEX::lock_option (which will
be rewritten by first subselect in SET clause).
Diffstat (limited to 'mysql-test/t/loaddata.test')
-rw-r--r-- | mysql-test/t/loaddata.test | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test index d384b955212..14ef749c802 100644 --- a/mysql-test/t/loaddata.test +++ b/mysql-test/t/loaddata.test @@ -3,7 +3,7 @@ # --disable_warnings -drop table if exists t1; +drop table if exists t1, t2; --enable_warnings create table t1 (a date, b date, c date not null, d date); @@ -64,4 +64,13 @@ select * from t1; # and this should bark --error 1409 load data infile '../../std_data/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, @b); -drop table t1; + +# Now let us test LOAD DATA with subselect +create table t2 (num int primary key, str varchar(10)); +insert into t2 values (10,'Ten'), (15,'Fifteen'); +truncate table t1; +load data infile '../../std_data/rpl_loaddata.dat' into table t1 (@dummy,@n) set a= @n, c= (select str from t2 where num=@n); +select * from t1; + +# cleanup +drop table t1, t2; |