mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
bc9f901169
When we write 'query=...' string to a frm file for views on a slave, indentifiers are not properly quoted due to missing OPTION_QUOTE_SHOW_CREATE flag in the thd->options. Fix: properly set thd->options for the slave thread. mysql-test/r/rpl_view.result: Fix for bug #19736 VIEW: column names not quoted properly when view is replicated - result adjusted. sql/slave.cc: Fix for bug #19736 VIEW: column names not quoted properly when view is replicated - properly set thd->options only in one place (in the set_slave_thread_options()), using thd_startup_options. As a side effect we have OPTION_BIG_SELECTS flag set after the set_slave_thread_options() call from the log_enevt.cc:Rotate_log_event::exec_event().
109 lines
2.6 KiB
Text
109 lines
2.6 KiB
Text
stop slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
start slave;
|
|
drop table if exists t1,v1;
|
|
drop view if exists t1,v1;
|
|
reset master;
|
|
create table t1 (a int);
|
|
insert into t1 values (1);
|
|
create view v1 as select a from t1;
|
|
insert into v1 values (2);
|
|
select * from v1 order by a;
|
|
a
|
|
1
|
|
2
|
|
select * from v1 order by a;
|
|
a
|
|
1
|
|
2
|
|
update v1 set a=3 where a=1;
|
|
select * from v1 order by a;
|
|
a
|
|
2
|
|
3
|
|
select * from v1 order by a;
|
|
a
|
|
2
|
|
3
|
|
delete from v1 where a=2;
|
|
select * from v1 order by a;
|
|
a
|
|
3
|
|
select * from v1 order by a;
|
|
a
|
|
3
|
|
alter view v1 as select a as b from t1;
|
|
select * from v1 order by 1;
|
|
b
|
|
3
|
|
drop view v1;
|
|
select * from v1 order by a;
|
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
|
drop table t1;
|
|
show binlog events limit 1,100;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-bin.000001 # Query 1 # use `test`; create table t1 (a int)
|
|
slave-bin.000001 # Query 1 # use `test`; insert into t1 values (1)
|
|
slave-bin.000001 # Query 1 # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select a from t1
|
|
slave-bin.000001 # Query 1 # use `test`; insert into v1 values (2)
|
|
slave-bin.000001 # Query 1 # use `test`; update v1 set a=3 where a=1
|
|
slave-bin.000001 # Query 1 # use `test`; delete from v1 where a=2
|
|
slave-bin.000001 # Query 1 # use `test`; ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select a as b from t1
|
|
slave-bin.000001 # Query 1 # use `test`; drop view v1
|
|
slave-bin.000001 # Query 1 # use `test`; drop table t1
|
|
|
|
---> Test for BUG#20438
|
|
|
|
---> Preparing environment...
|
|
---> connection: master
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP VIEW IF EXISTS v1;
|
|
|
|
---> Synchronizing slave with master...
|
|
|
|
---> connection: master
|
|
|
|
---> Creating objects...
|
|
CREATE TABLE t1(c INT);
|
|
/*!50003 CREATE VIEW v1 AS SELECT * FROM t1 */;
|
|
|
|
---> Inserting value...
|
|
INSERT INTO t1 VALUES(1);
|
|
|
|
---> Checking on master...
|
|
SELECT * FROM t1;
|
|
c
|
|
1
|
|
|
|
---> Synchronizing slave with master...
|
|
---> connection: master
|
|
|
|
---> Checking on slave...
|
|
SELECT * FROM t1;
|
|
c
|
|
1
|
|
|
|
---> connection: master
|
|
|
|
---> Cleaning up...
|
|
DROP VIEW v1;
|
|
DROP TABLE t1;
|
|
create table t1(a int, b int);
|
|
insert into t1 values (1, 1), (1, 2), (1, 3);
|
|
create view v1(a, b) as select a, sum(b) from t1 group by a;
|
|
explain v1;
|
|
Field Type Null Key Default Extra
|
|
a int(11) YES NULL
|
|
b decimal(32,0) YES NULL
|
|
show create table v1;
|
|
View Create View
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a`
|
|
select * from v1;
|
|
a b
|
|
1 6
|
|
drop table t1;
|
|
drop view v1;
|
|
End of 5.0 tests
|