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 /sql/sql_load.cc | |
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 'sql/sql_load.cc')
-rw-r--r-- | sql/sql_load.cc | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc index b27ba9c095f..e2f7c9d62c8 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -99,7 +99,6 @@ static int read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list, replace row if we will meet duplicates. ignore - - indicates whenever we should ignore duplicates read_file_from_client - is this LOAD DATA LOCAL ? - lock_type - what type of concurrency do we allow then we are inserting data RETURN VALUES TRUE - error / FALSE - success @@ -109,7 +108,7 @@ bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, List<Item> &fields_vars, List<Item> &set_fields, List<Item> &set_values, enum enum_duplicates handle_duplicates, bool ignore, - bool read_file_from_client, thr_lock_type lock_type) + bool read_file_from_client) { char name[FN_REFLEN]; File file; @@ -143,7 +142,6 @@ bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, MYF(0)); DBUG_RETURN(TRUE); } - table_list->lock_type= lock_type; if (open_and_lock_tables(thd, table_list)) DBUG_RETURN(TRUE); if (setup_tables(thd, table_list, &unused_conds, |