summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <dlenev@mysql.com>2006-04-22 11:56:15 +0400
committerunknown <dlenev@mysql.com>2006-04-22 11:56:15 +0400
commit2efefe689057a83cf9d3eefecd05740aa06bd4f2 (patch)
tree96693cf69e0bf0c8eec73c8e4e7b431c504ad89a /sql
parent10eac46a520351d47ffbe74aeb14fdd7c6fecd87 (diff)
parentdc526db887e3ab68020d7d010f45fb9ce5d3ad14 (diff)
downloadmariadb-git-2efefe689057a83cf9d3eefecd05740aa06bd4f2.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into mysql.com:/home/dlenev/mysql-5.0-bg15153-2
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_view.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index cdb6c581565..0fb043430a4 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -1057,15 +1057,23 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table)
!old_lex->can_not_use_merged())
{
List_iterator_fast<TABLE_LIST> ti(view_select->top_join_list);
+ /*
+ Currently 'view_main_select_tables' differs from 'view_tables'
+ only then view has CONVERT_TZ() function in its select list.
+ This may change in future, for example if we enable merging
+ of views with subqueries in select list.
+ */
+ TABLE_LIST *view_main_select_tables=
+ (TABLE_LIST*)lex->select_lex.table_list.first;
/* lex should contain at least one table */
- DBUG_ASSERT(view_tables != 0);
+ DBUG_ASSERT(view_main_select_tables != 0);
table->effective_algorithm= VIEW_ALGORITHM_MERGE;
DBUG_PRINT("info", ("algorithm: MERGE"));
table->updatable= (table->updatable_view != 0);
table->effective_with_check=
old_lex->get_effective_with_check(table);
- table->merge_underlying_list= view_tables;
+ table->merge_underlying_list= view_main_select_tables;
/*
Let us set proper lock type for tables of the view's main select
since we may want to perform update or insert on view. This won't
@@ -1081,7 +1089,7 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table)
}
/* prepare view context */
- lex->select_lex.context.resolve_in_table_list_only(view_tables);
+ lex->select_lex.context.resolve_in_table_list_only(view_main_select_tables);
lex->select_lex.context.outer_context= 0;
lex->select_lex.context.select_lex= table->select_lex;
lex->select_lex.select_n_having_items+=
@@ -1097,7 +1105,7 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table)
tbl->select_lex= table->select_lex;
{
- if (view_tables->next_local)
+ if (view_main_select_tables->next_local)
{
table->multitable_view= TRUE;
if (table->belong_to_view)