1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00
This commit is contained in:
Georgi Kodinov
2010-11-26 14:51:48 +02:00
32 changed files with 559 additions and 29 deletions

View File

@ -1713,6 +1713,9 @@ JOIN::reinit()
func->clear();
}
if (!(select_options & SELECT_DESCRIBE))
init_ftfuncs(thd, select_lex, test(order));
DBUG_RETURN(0);
}
@ -2487,6 +2490,13 @@ mysql_select(THD *thd, Item ***rref_pointer_array,
{
DBUG_RETURN(TRUE);
}
/*
Original join tabs might be overwritten at first
subselect execution. So we need to restore them.
*/
Item_subselect *subselect= select_lex->master_unit()->item;
if (subselect && subselect->is_uncacheable() && join->reinit())
DBUG_RETURN(TRUE);
}
else
{
@ -13206,6 +13216,8 @@ static bool
list_contains_unique_index(TABLE *table,
bool (*find_func) (Field *, void *), void *data)
{
if (table->pos_in_table_list->outer_join)
return 0;
for (uint keynr= 0; keynr < table->s->keys; keynr++)
{
if (keynr == table->s->primary_key ||
@ -13219,7 +13231,7 @@ list_contains_unique_index(TABLE *table,
key_part < key_part_end;
key_part++)
{
if (key_part->field->maybe_null() ||
if (key_part->field->real_maybe_null() ||
!find_func(key_part->field, data))
break;
}