mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/tmp_merge-5.0-opt-mysql
This commit is contained in:
@ -755,6 +755,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
|
||||
uint used_fields_buff_size= (table->s->fields + 7) / 8;
|
||||
uchar *used_fields_buff= (uchar*)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)
|
||||
@ -767,15 +768,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 */
|
||||
@ -785,6 +797,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++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user