1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

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
This commit is contained in:
unknown
2004-07-21 04:26:20 +03:00
parent d3b2b84294
commit b01e2f6ddc
30 changed files with 85 additions and 4 deletions

View File

@@ -1505,6 +1505,13 @@ memory to write 'DELETE FROM `%s`.`%s`' to the binary log",db,name);
}
DBUG_RETURN(0);
err:
/* Hide "Table doesn't exist" errors if table belong to view */
if (thd->net.last_errno == ER_NO_SUCH_TABLE && table_desc->belong_to_view)
{
TABLE_LIST * view= table_desc->belong_to_view;
thd->clear_error();
my_error(ER_VIEW_INVALID, MYF(0), view->view_db.str, view->view_name.str);
}
DBUG_RETURN(1);
}
@@ -2511,8 +2518,8 @@ bool setup_tables(THD *thd, TABLE_LIST *tables, Item **conds)
table->keys_in_use_for_query.subtract(map);
}
table->used_keys.intersect(table->keys_in_use_for_query);
if (table_list->ancestor)
table_list->setup_ancestor(thd, conds);
if (table_list->ancestor && table_list->setup_ancestor(thd, conds))
DBUG_RETURN(1);
}
if (tablenr > MAX_TABLES)
{