summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorunknown <dlenev@brandersnatch.localdomain>2005-03-16 12:13:35 +0300
committerunknown <dlenev@brandersnatch.localdomain>2005-03-16 12:13:35 +0300
commitec919d742838f491556cb98a894bffab79957cd5 (patch)
treeb8622bdfca30af3b43d99987e30119fd6b8726bf /sql/log_event.cc
parent5f75c8f5b47b73e6c1cd4261de9b99b0fdb8c24e (diff)
downloadmariadb-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 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index a943181e999..3176cdfd5cb 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -2713,7 +2713,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
update it inside mysql_load().
*/
if (mysql_load(thd, &ex, &tables, field_list, set_fields, set_fields,
- handle_dup, ignore, net != 0, TL_WRITE))
+ handle_dup, ignore, net != 0))
thd->query_error= 1;
if (thd->cuted_fields)
{