From 792eb1f17beb1bd8a52c780605c7502f89c3eaed Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 20 Feb 2008 22:23:39 +0300 Subject: Fix for Bug#34337: Server crash when Altering a view using a table name. The problem was that fill_defined_view_parts() did not return an error if a table is going to be altered. That happened if the table was already in the table cache. In that case, open_table() returned non-NULL value (valid TABLE-instance from the cache). The fix is to ensure that an error is thrown even if the table is in the cache. mysql-test/r/view.result: Fix result file. mysql-test/t/view.test: Add a test case for Bug#34337: Server crash when Altering a view using a table name. sql/sql_view.cc: Report an error if we're going to work with a table. --- mysql-test/r/view.result | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'mysql-test/r/view.result') diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 3f8ed1b4e56..e5c20a2c26f 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -3720,6 +3720,21 @@ DROP VIEW v1; # -- End of test case for Bug#32538. +# ----------------------------------------------------------------- +# -- Bug#34337: Server crash when Altering a view using a table name. +# ----------------------------------------------------------------- + +DROP TABLE IF EXISTS t1; + +CREATE TABLE t1(c1 INT); + +ALTER ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW t1 (c2) AS SELECT (1); +ERROR HY000: 'test.t1' is not VIEW + +DROP TABLE t1; + +# -- End of test case for Bug#34337. + # ----------------------------------------------------------------- # -- End of 5.1 tests. # ----------------------------------------------------------------- -- cgit v1.2.1