Loading mysql-test/r/view.result +15 −0 Original line number Diff line number Diff line Loading @@ -3547,4 +3547,19 @@ a b 6 6 DROP VIEW v1; DROP TABLE t1,t2,t3; create table t1 (i int); insert into t1 values (1), (2), (1), (3), (2), (4); create view v1 as select distinct i from t1; select * from v1; i 1 2 3 4 select table_name, is_updatable from information_schema.views where table_name = 'v1'; table_name is_updatable v1 NO drop view v1; drop table t1; End of 5.0 tests. mysql-test/t/view.test +13 −0 Original line number Diff line number Diff line Loading @@ -3402,5 +3402,18 @@ SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6; DROP VIEW v1; DROP TABLE t1,t2,t3; # # Bug#30020: Insufficient check led to a wrong info provided by the # information schema table. # create table t1 (i int); insert into t1 values (1), (2), (1), (3), (2), (4); create view v1 as select distinct i from t1; select * from v1; select table_name, is_updatable from information_schema.views where table_name = 'v1'; drop view v1; drop table t1; --echo End of 5.0 tests. sql/sql_show.cc +3 −1 Original line number Diff line number Diff line Loading @@ -3211,7 +3211,7 @@ static int get_schema_views_record(THD *thd, TABLE_LIST *tables, Item *item; Item_field *field; /* chech that at least one coulmn in view is updatable check that at least one column in view is updatable */ while ((item= it++)) { Loading @@ -3222,6 +3222,8 @@ static int get_schema_views_record(THD *thd, TABLE_LIST *tables, break; } } if (updatable_view && !tables->view->can_be_merged()) updatable_view= 0; } if (updatable_view) table->field[5]->store(STRING_WITH_LEN("YES"), cs); Loading Loading
mysql-test/r/view.result +15 −0 Original line number Diff line number Diff line Loading @@ -3547,4 +3547,19 @@ a b 6 6 DROP VIEW v1; DROP TABLE t1,t2,t3; create table t1 (i int); insert into t1 values (1), (2), (1), (3), (2), (4); create view v1 as select distinct i from t1; select * from v1; i 1 2 3 4 select table_name, is_updatable from information_schema.views where table_name = 'v1'; table_name is_updatable v1 NO drop view v1; drop table t1; End of 5.0 tests.
mysql-test/t/view.test +13 −0 Original line number Diff line number Diff line Loading @@ -3402,5 +3402,18 @@ SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6; DROP VIEW v1; DROP TABLE t1,t2,t3; # # Bug#30020: Insufficient check led to a wrong info provided by the # information schema table. # create table t1 (i int); insert into t1 values (1), (2), (1), (3), (2), (4); create view v1 as select distinct i from t1; select * from v1; select table_name, is_updatable from information_schema.views where table_name = 'v1'; drop view v1; drop table t1; --echo End of 5.0 tests.
sql/sql_show.cc +3 −1 Original line number Diff line number Diff line Loading @@ -3211,7 +3211,7 @@ static int get_schema_views_record(THD *thd, TABLE_LIST *tables, Item *item; Item_field *field; /* chech that at least one coulmn in view is updatable check that at least one column in view is updatable */ while ((item= it++)) { Loading @@ -3222,6 +3222,8 @@ static int get_schema_views_record(THD *thd, TABLE_LIST *tables, break; } } if (updatable_view && !tables->view->can_be_merged()) updatable_view= 0; } if (updatable_view) table->field[5]->store(STRING_WITH_LEN("YES"), cs); Loading