Commit 5d736f10 authored by timour@mysql.com's avatar timour@mysql.com

Merge mysql.com:/home/timka/mysql/src/5.0-virgin

into  mysql.com:/home/timka/mysql/src/5.0-2486
parents adb82441 04a6a8e0
...@@ -3763,8 +3763,13 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref, ...@@ -3763,8 +3763,13 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref,
TABLE_LIST *left_neighbor, TABLE_LIST *left_neighbor,
TABLE_LIST *right_neighbor) TABLE_LIST *right_neighbor)
{ {
Query_arena *arena, backup;
bool result= TRUE;
DBUG_ENTER("store_top_level_join_columns"); DBUG_ENTER("store_top_level_join_columns");
arena= thd->change_arena_if_needed(&backup);
/* Call the procedure recursively for each nested table reference. */ /* Call the procedure recursively for each nested table reference. */
if (table_ref->nested_join) if (table_ref->nested_join)
{ {
...@@ -3797,7 +3802,7 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref, ...@@ -3797,7 +3802,7 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref,
if (cur_table_ref->nested_join && if (cur_table_ref->nested_join &&
store_top_level_join_columns(thd, cur_table_ref, store_top_level_join_columns(thd, cur_table_ref,
cur_left_neighbor, cur_right_neighbor)) cur_left_neighbor, cur_right_neighbor))
DBUG_RETURN(TRUE); goto err;
cur_right_neighbor= cur_table_ref; cur_right_neighbor= cur_table_ref;
} }
} }
...@@ -3829,7 +3834,7 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref, ...@@ -3829,7 +3834,7 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref,
swap_variables(TABLE_LIST*, table_ref_1, table_ref_2); swap_variables(TABLE_LIST*, table_ref_1, table_ref_2);
if (mark_common_columns(thd, table_ref_1, table_ref_2, if (mark_common_columns(thd, table_ref_1, table_ref_2,
using_fields, &found_using_fields)) using_fields, &found_using_fields))
DBUG_RETURN(TRUE); goto err;
/* /*
Swap the join operands back, so that we pick the columns of the second Swap the join operands back, so that we pick the columns of the second
...@@ -3841,7 +3846,7 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref, ...@@ -3841,7 +3846,7 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref,
if (store_natural_using_join_columns(thd, table_ref, table_ref_1, if (store_natural_using_join_columns(thd, table_ref, table_ref_1,
table_ref_2, using_fields, table_ref_2, using_fields,
found_using_fields)) found_using_fields))
DBUG_RETURN(TRUE); goto err;
/* /*
Change NATURAL JOIN to JOIN ... ON. We do this for both operands Change NATURAL JOIN to JOIN ... ON. We do this for both operands
...@@ -3872,7 +3877,12 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref, ...@@ -3872,7 +3877,12 @@ store_top_level_join_columns(THD *thd, TABLE_LIST *table_ref,
else else
table_ref->next_name_resolution_table= NULL; table_ref->next_name_resolution_table= NULL;
} }
DBUG_RETURN(FALSE); result= FALSE; /* All is OK. */
err:
if (arena)
thd->restore_backup_item_arena(arena, &backup);
DBUG_RETURN(result);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment