mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Cleaned up last bug fixes
Fix bug in SHOW GRANTS when there is a column privilege but no table privilege
This commit is contained in:
@@ -1,83 +1,86 @@
|
||||
# Check that binlog is ok when a transaction mixes updates to InnoDB and
|
||||
# MyISAM. It would be nice to make this a replication test, but in 4.0 the slave
|
||||
# is always with --skip-innodb in the testsuite. I (Guilhem) however did some
|
||||
# tests manually on a slave; tables are replicated fine and Exec_master_log_pos
|
||||
# advances as expected.
|
||||
# MyISAM.
|
||||
# It would be nice to make this a replication test, but in 4.0 the
|
||||
# slave is always with --skip-innodb in the testsuite. I (Guilhem) however
|
||||
# did some tests manually on a slave; tables are replicated fine and
|
||||
# Exec_master_log_pos advances as expected.
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
|
||||
drop table if exists ti, tm;
|
||||
create table ti (a int) type=innodb;
|
||||
create table tm (a int) type=myisam;
|
||||
create table t1 (a int) type=innodb;
|
||||
create table t2 (a int) type=myisam;
|
||||
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(1);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(1);
|
||||
insert into t2 select * from t1;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(2);
|
||||
insert into tm select * from ti;
|
||||
# should say some changes to non-transactional tables couldn't be rolled back
|
||||
insert into t1 values(2);
|
||||
insert into t2 select * from t1;
|
||||
# should say some changes to non-transact1onal tables couldn't be rolled back
|
||||
--error 1196
|
||||
rollback;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(3);
|
||||
insert into t1 values(3);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(4);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(4);
|
||||
insert into t2 select * from t1;
|
||||
--error 1196
|
||||
rollback to savepoint my_savepoint;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(5);
|
||||
insert into t1 values(5);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(6);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(6);
|
||||
insert into t2 select * from t1;
|
||||
--error 1196
|
||||
rollback to savepoint my_savepoint;
|
||||
insert into ti values(7);
|
||||
insert into t1 values(7);
|
||||
commit;
|
||||
select a from ti order by a; # check that savepoints work :)
|
||||
select a from t1 order by a; # check that savepoints work :)
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
# and when ROLLBACK is not explicit?
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
select get_lock("a",10);
|
||||
begin;
|
||||
insert into ti values(8);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(8);
|
||||
insert into t2 select * from t1;
|
||||
disconnect con1;
|
||||
|
||||
connection con2;
|
||||
@@ -89,87 +92,87 @@ connection con2;
|
||||
select get_lock("a",10);
|
||||
show binlog events from 79;
|
||||
|
||||
# and when not in a transaction?
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
# and when not in a transact1on?
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
insert into ti values(9);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(9);
|
||||
insert into t2 select * from t1;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
# Check that when the query updating the MyISAM table is the first in the
|
||||
# transaction, we log it immediately.
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
# Check that when the query updat1ng the MyISAM table is the first in the
|
||||
# transact1on, we log it immediately.
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
insert into ti values(10); # first make ti non-empty
|
||||
insert into t1 values(10); # first make t1 non-empty
|
||||
begin;
|
||||
insert into tm select * from ti;
|
||||
insert into t2 select * from t1;
|
||||
show binlog events from 79;
|
||||
insert into ti values(11);
|
||||
insert into t1 values(11);
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
|
||||
# Check that things work like before this BEGIN/ROLLBACK code was added, when tm
|
||||
# is INNODB
|
||||
# Check that things work like before this BEGIN/ROLLBACK code was added,
|
||||
# when t2 is INNODB
|
||||
|
||||
alter table tm type=INNODB;
|
||||
alter table t2 type=INNODB;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(12);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(12);
|
||||
insert into t2 select * from t1;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(13);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(13);
|
||||
insert into t2 select * from t1;
|
||||
rollback;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(14);
|
||||
insert into t1 values(14);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(15);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(15);
|
||||
insert into t2 select * from t1;
|
||||
rollback to savepoint my_savepoint;
|
||||
commit;
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
|
||||
begin;
|
||||
insert into ti values(16);
|
||||
insert into t1 values(16);
|
||||
savepoint my_savepoint;
|
||||
insert into ti values(17);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(17);
|
||||
insert into t2 select * from t1;
|
||||
rollback to savepoint my_savepoint;
|
||||
insert into ti values(18);
|
||||
insert into t1 values(18);
|
||||
commit;
|
||||
select a from ti order by a; # check that savepoints work :)
|
||||
select a from t1 order by a; # check that savepoints work :)
|
||||
|
||||
show binlog events from 79;
|
||||
|
||||
drop table ti,tm;
|
||||
drop table t1,t2;
|
||||
|
||||
Reference in New Issue
Block a user