summaryrefslogtreecommitdiff
path: root/sql/sql_view.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-07-21 04:26:20 +0300
committerunknown <bell@sanja.is.com.ua>2004-07-21 04:26:20 +0300
commitb01e2f6ddcc93045c9a6bf49294dbf535e3ac4aa (patch)
treed3689fff2353e54044e5be984ccbb6df293109fb /sql/sql_view.cc
parentd3b2b8429436cdb75ae985b103be8132442dbcb2 (diff)
downloadmariadb-git-b01e2f6ddcc93045c9a6bf49294dbf535e3ac4aa.tar.gz
error message interception (Bug#4598)
error handling of view initialization fixed (Bug#4599) include/mysqld_error.h: new error message mysql-test/r/view.result: changing of underlaying table test mysql-test/t/view.test: changing of underlaying table test sql/share/czech/errmsg.txt: new error message sql/share/danish/errmsg.txt: new error message sql/share/dutch/errmsg.txt: new error message sql/share/english/errmsg.txt: new error message sql/share/estonian/errmsg.txt: new error message sql/share/french/errmsg.txt: new error message sql/share/german/errmsg.txt: new error message sql/share/greek/errmsg.txt: new error message sql/share/hungarian/errmsg.txt: new error message sql/share/italian/errmsg.txt: new error message sql/share/japanese/errmsg.txt: new error message sql/share/korean/errmsg.txt: new error message sql/share/norwegian-ny/errmsg.txt: new error message sql/share/norwegian/errmsg.txt: new error message sql/share/polish/errmsg.txt: new error message sql/share/portuguese/errmsg.txt: new error message sql/share/romanian/errmsg.txt: new error message sql/share/russian/errmsg.txt: new error message sql/share/serbian/errmsg.txt: new error message sql/share/slovak/errmsg.txt: new error message sql/share/spanish/errmsg.txt: new error message sql/share/swedish/errmsg.txt: new error message sql/share/ukrainian/errmsg.txt: new error message sql/sql_base.cc: error message interception error handling fixed sql/sql_view.cc: comment fixed error message interception sql/table.cc: error message interception sql/table.h: error message interception
Diffstat (limited to 'sql/sql_view.cc')
-rw-r--r--sql/sql_view.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index c5e9918152d..a4293bd4cd7 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -483,6 +483,10 @@ static int mysql_register_view(THD *thd, TABLE_LIST *view,
mysql_make_view()
parser - parser object;
table - TABLE_LIST structure for filling
+
+ RETURN
+ TRUE OK
+ FALSE error
*/
my_bool
mysql_make_view(File_parser *parser, TABLE_LIST *table)
@@ -576,6 +580,9 @@ mysql_make_view(File_parser *parser, TABLE_LIST *table)
}
if (!res && !thd->is_fatal_error)
{
+ TABLE_LIST *top_view= (table->belong_to_view ?
+ table->belong_to_view :
+ table);
/* move SP to main LEX */
sp_merge_funs(old_lex, lex);
@@ -586,9 +593,12 @@ mysql_make_view(File_parser *parser, TABLE_LIST *table)
if ((table->next_global= lex->query_tables))
table->next_global->prev_global= &table->next_global;
- /* mark to avoid temporary table using */
+ /* mark to avoid temporary table using and put view reference*/
for (TABLE_LIST *tbl= table->next_global; tbl; tbl= tbl->next_global)
+ {
tbl->skip_temporary= 1;
+ tbl->belong_to_view= top_view;
+ }
/*
check rights to run commands (EXPLAIN SELECT & SHOW CREATE) which show