summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorunknown <evgen@sunlight.local>2006-07-30 00:33:24 +0400
committerunknown <evgen@sunlight.local>2006-07-30 00:33:24 +0400
commitddb91478e80a02f17c24b6b061123916d1f70e19 (patch)
tree7459ead6708231c323be75b3f99c455341370348 /sql/sql_insert.cc
parentfc466665b74a8b50af586c2c56777409b9214826 (diff)
parent08be4e96a953a883240e9eebb38a9e8b965d3b1d (diff)
downloadmariadb-git-ddb91478e80a02f17c24b6b061123916d1f70e19.tar.gz
Merge sunlight.local:/local_work/tmp_merge-5.0-opt-mysql
into sunlight.local:/local_work/tmp_merge-5.1-opt-mysql client/mysql.cc: Auto merged mysql-test/r/date_formats.result: Auto merged mysql-test/r/func_gconcat.result: Auto merged mysql-test/r/func_group.result: Auto merged mysql-test/r/func_str.result: Auto merged mysql-test/r/group_min_max.result: Auto merged BitKeeper/deleted/.del-make_win_src_distribution.sh~f80d8fca44e4e5f1: Auto merged BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56: Auto merged BitKeeper/deleted/.del-mysqld_ia64.dsp~7f8cf84d81ee04e2: Auto merged BitKeeper/deleted/.del-mysqldump.dsp~a8bd23547d3fc27e: Auto merged BitKeeper/deleted/.del-mysqldump_ia64.dsp~a2aabe898be35b31: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/ps_7ndb.result: Auto merged mysql-test/r/type_ranges.result: Auto merged mysql-test/r/udf.result: Auto merged mysql-test/r/union.result: Auto merged mysql-test/r/view.result: Auto merged mysql-test/t/date_formats.test: Auto merged mysql-test/t/func_gconcat.test: Auto merged mysql-test/t/func_group.test: Auto merged mysql-test/t/group_min_max.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/innodb_mysql.test: Auto merged mysql-test/t/mysql.test: Auto merged mysql-test/t/select.test: Auto merged mysql-test/t/sp.test: Auto merged mysql-test/t/view.test: Auto merged sql/field.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/opt_range.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/time.cc: Auto merged storage/ndb/test/ndbapi/Makefile.am: Auto merged strings/decimal.c: Auto merged mysql-test/r/analyse.result: Manual merge mysql-test/r/bigint.result: Manual merge mysql-test/r/create.result: Manual merge mysql-test/r/information_schema.result: Manual merge mysql-test/r/ps_2myisam.result: Manual merge mysql-test/r/ps_3innodb.result: Manual merge mysql-test/r/ps_4heap.result: Manual merge mysql-test/r/ps_5merge.result: Manual merge mysql-test/r/ps_6bdb.result: Manual merge mysql-test/r/rpl_insert_id.result: Manual merge mysql-test/r/select.result: Manual merge mysql-test/r/sp.result: Manual merge mysql-test/r/subselect.result: Manual merge mysql-test/t/information_schema.test: Manual merge mysql-test/t/rpl_insert_id.test: Manual merge sql/field.h: Manual merge sql/item.cc: Manual merge sql/item.h: Manual merge sql/item_strfunc.h: Manual merge sql/item_sum.cc: Manual merge sql/mysql_priv.h: Manual merge sql/share/errmsg.txt: Manual merge sql/sql_class.h: Manual merge sql/sql_select.cc: Manual merge
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 25ed03c4051..966fe45e690 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -730,6 +730,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
uint used_fields_buff_size= bitmap_buffer_size(table->s->fields);
uint32 *used_fields_buff= (uint32*)thd->alloc(used_fields_buff_size);
MY_BITMAP used_fields;
+ bool save_set_query_id= thd->set_query_id;
DBUG_ENTER("check_key_in_view");
if (!used_fields_buff)
@@ -741,15 +742,26 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
bitmap_clear_all(&used_fields);
view->contain_auto_increment= 0;
+ /*
+ we must not set query_id for fields as they're not
+ really used in this context
+ */
+ thd->set_query_id= 0;
/* check simplicity and prepare unique test of view */
for (trans= trans_start; trans != trans_end; trans++)
{
if (!trans->item->fixed && trans->item->fix_fields(thd, &trans->item))
- return TRUE;
+ {
+ thd->set_query_id= save_set_query_id;
+ DBUG_RETURN(TRUE);
+ }
Item_field *field;
/* simple SELECT list entry (field without expression) */
if (!(field= trans->item->filed_for_view_update()))
+ {
+ thd->set_query_id= save_set_query_id;
DBUG_RETURN(TRUE);
+ }
if (field->field->unireg_check == Field::NEXT_NUMBER)
view->contain_auto_increment= 1;
/* prepare unique test */
@@ -759,6 +771,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
*/
trans->item= field;
}
+ thd->set_query_id= save_set_query_id;
/* unique test */
for (trans= trans_start; trans != trans_end; trans++)
{