mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03:00
Fix for BUG#6808.
The problem was in that add_table_to_list was testing for duplicate tables in a list of tables that included the created view.
This commit is contained in:
@@ -1146,11 +1146,11 @@ create view v2 as select * from v1;
|
|||||||
alter view v1 as select * from v2;
|
alter view v1 as select * from v2;
|
||||||
ERROR 42S02: Table 'test.v1' doesn't exist
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
||||||
alter view v1 as select * from v1;
|
alter view v1 as select * from v1;
|
||||||
ERROR 42000: Not unique table/alias: 'v1'
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
||||||
create or replace view v1 as select * from v2;
|
create or replace view v1 as select * from v2;
|
||||||
ERROR 42S02: Table 'test.v1' doesn't exist
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
||||||
create or replace view v1 as select * from v1;
|
create or replace view v1 as select * from v1;
|
||||||
ERROR 42000: Not unique table/alias: 'v1'
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
||||||
drop view v2,v1;
|
drop view v2,v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
@@ -2186,3 +2186,7 @@ r_object_id users_names
|
|||||||
120001a080000542 guser02
|
120001a080000542 guser02
|
||||||
drop view v1, v2;
|
drop view v1, v2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
create table t1 (s1 int);
|
||||||
|
create view abc as select * from t1 as abc;
|
||||||
|
drop table t1;
|
||||||
|
drop view abc;
|
||||||
|
@@ -1083,11 +1083,11 @@ create view v1 as select * from t1;
|
|||||||
create view v2 as select * from v1;
|
create view v2 as select * from v1;
|
||||||
-- error 1146
|
-- error 1146
|
||||||
alter view v1 as select * from v2;
|
alter view v1 as select * from v2;
|
||||||
-- error 1066
|
-- error 1146
|
||||||
alter view v1 as select * from v1;
|
alter view v1 as select * from v1;
|
||||||
-- error 1146
|
-- error 1146
|
||||||
create or replace view v1 as select * from v2;
|
create or replace view v1 as select * from v2;
|
||||||
-- error 1066
|
-- error 1146
|
||||||
create or replace view v1 as select * from v1;
|
create or replace view v1 as select * from v1;
|
||||||
drop view v2,v1;
|
drop view v2,v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@@ -2059,3 +2059,12 @@ order by users_names;
|
|||||||
|
|
||||||
drop view v1, v2;
|
drop view v1, v2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #6808 - Views: CREATE VIEW v ... FROM t AS v fails
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (s1 int);
|
||||||
|
create view abc as select * from t1 as abc;
|
||||||
|
drop table t1;
|
||||||
|
drop view abc;
|
||||||
|
@@ -6059,7 +6059,10 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd,
|
|||||||
/* check that used name is unique */
|
/* check that used name is unique */
|
||||||
if (lock_type != TL_IGNORE)
|
if (lock_type != TL_IGNORE)
|
||||||
{
|
{
|
||||||
for (TABLE_LIST *tables=(TABLE_LIST*) table_list.first ;
|
TABLE_LIST *first_table= (TABLE_LIST*) table_list.first;
|
||||||
|
if (lex->sql_command == SQLCOM_CREATE_VIEW)
|
||||||
|
first_table= first_table ? first_table->next_local : NULL;
|
||||||
|
for (TABLE_LIST *tables= first_table ;
|
||||||
tables ;
|
tables ;
|
||||||
tables=tables->next_local)
|
tables=tables->next_local)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user