mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Cleaned up last bug fixes
Fix bug in SHOW GRANTS when there is a column privilege but no table privilege include/mysql.h: Make server_inited external libmysqld/libmysqld.c: Remove reference to (wrong) external variable mysql-test/r/grant.result: Fixed up grant test to not user 'user1' or 'user2' Check for bug in SHOW GRANTS when there is a column privilege but no table privilege mysql-test/r/mix_innodb_myisam_binlog.result: Change to use tables t1 and t2 mysql-test/t/grant.test: Fixed up grant test to not user 'user1' or 'user2' Check for bug in SHOW GRANTS when there is a column privilege but no table privilege mysql-test/t/mix_innodb_myisam_binlog.test: Change to use tables t1 and t2 sql/sql_acl.cc: Fix bug in SHOW GRANTS when there is a column privilege but no table privilege sql/sql_parse.cc: Use HAVE_REPLICATION instead of EMBEDDED_LIBRARY
This commit is contained in:
parent
13f0dc32f4
commit
8272be9412
8 changed files with 206 additions and 201 deletions
|
@ -424,6 +424,8 @@ int simple_command(MYSQL *mysql,enum enum_server_command command,
|
|||
unsigned long net_safe_read(MYSQL* mysql);
|
||||
void mysql_once_init(void);
|
||||
|
||||
extern my_bool server_inited;
|
||||
|
||||
#ifdef __NETWARE__
|
||||
#pragma pack(pop) /* restore alignment */
|
||||
#endif
|
||||
|
|
|
@ -74,8 +74,6 @@ static int send_file_to_server(MYSQL *mysql,const char *filename);
|
|||
static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
|
||||
const char *from, ulong length);
|
||||
|
||||
extern char server_inited;
|
||||
|
||||
#define init_sigpipe_variables
|
||||
#define set_sigpipe(mysql)
|
||||
#define reset_sigpipe(mysql)
|
||||
|
|
|
@ -91,39 +91,39 @@ show grants for mysqltest_1@localhost;
|
|||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||
GRANT SELECT, INSERT, INSERT (a), REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localhost'
|
||||
REVOKE insert,insert (a) on t1 from mysqltest_1@localhost;
|
||||
GRANT references on t1 to mysqltest_1@localhost;
|
||||
REVOKE select,update,insert,insert (a) on t1 from mysqltest_1@localhost;
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||
GRANT SELECT, REFERENCES, REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localhost'
|
||||
GRANT REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localhost'
|
||||
GRANT select,references on t1 to mysqltest_1@localhost;
|
||||
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
|
||||
table_priv column_priv
|
||||
Select,References References
|
||||
grant all on test.* to user1@localhost with grant option;
|
||||
revoke all on test.* from user1@localhost;
|
||||
show grants for user1@localhost;
|
||||
Grants for user1@localhost
|
||||
GRANT USAGE ON *.* TO 'user1'@'localhost'
|
||||
GRANT USAGE ON `test`.* TO 'user1'@'localhost' WITH GRANT OPTION
|
||||
revoke grant option on test.* from user1@localhost;
|
||||
show grants for user1@localhost;
|
||||
Grants for user1@localhost
|
||||
GRANT USAGE ON *.* TO 'user1'@'localhost'
|
||||
grant all on test.t1 to user2@localhost with grant option;
|
||||
revoke all on test.t1 from user2@localhost;
|
||||
show grants for user2@localhost;
|
||||
Grants for user2@localhost
|
||||
GRANT USAGE ON *.* TO 'user2'@'localhost'
|
||||
GRANT USAGE ON `test`.`t1` TO 'user2'@'localhost' WITH GRANT OPTION
|
||||
revoke grant option on test.t1 from user2@localhost;
|
||||
show grants for user2@localhost;
|
||||
Grants for user2@localhost
|
||||
GRANT USAGE ON *.* TO 'user2'@'localhost'
|
||||
delete from mysql.user where user='mysqltest_1';
|
||||
delete from mysql.db where user='mysqltest_1';
|
||||
delete from mysql.tables_priv where user='mysqltest_1';
|
||||
delete from mysql.columns_priv where user='mysqltest_1';
|
||||
grant all on test.* to mysqltest_3@localhost with grant option;
|
||||
revoke all on test.* from mysqltest_3@localhost;
|
||||
show grants for mysqltest_3@localhost;
|
||||
Grants for mysqltest_3@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
|
||||
GRANT USAGE ON `test`.* TO 'mysqltest_3'@'localhost' WITH GRANT OPTION
|
||||
revoke grant option on test.* from mysqltest_3@localhost;
|
||||
show grants for mysqltest_3@localhost;
|
||||
Grants for mysqltest_3@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
|
||||
grant all on test.t1 to mysqltest_2@localhost with grant option;
|
||||
revoke all on test.t1 from mysqltest_2@localhost;
|
||||
show grants for mysqltest_2@localhost;
|
||||
Grants for mysqltest_2@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_2'@'localhost'
|
||||
GRANT USAGE ON `test`.`t1` TO 'mysqltest_2'@'localhost' WITH GRANT OPTION
|
||||
revoke grant option on test.t1 from mysqltest_2@localhost;
|
||||
show grants for mysqltest_2@localhost;
|
||||
Grants for mysqltest_2@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_2'@'localhost'
|
||||
delete from mysql.user where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
delete from mysql.db where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
delete from mysql.tables_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
delete from mysql.columns_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
flush privileges;
|
||||
drop table t1;
|
||||
GRANT FILE on mysqltest.* to mysqltest_1@localhost;
|
||||
|
|
|
@ -1,180 +1,180 @@
|
|||
drop table if exists ti, tm;
|
||||
create table ti (a int) type=innodb;
|
||||
create table tm (a int) type=myisam;
|
||||
drop table if exists t1, t2;
|
||||
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;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(1)
|
||||
master-bin.001 178 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(1)
|
||||
master-bin.001 178 Query 1 79 use test; insert into t2 select * from t1
|
||||
master-bin.001 244 Query 1 244 use test; COMMIT
|
||||
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;
|
||||
insert into t1 values(2);
|
||||
insert into t2 select * from t1;
|
||||
rollback;
|
||||
Warning: Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(2)
|
||||
master-bin.001 178 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(2)
|
||||
master-bin.001 178 Query 1 79 use test; insert into t2 select * from t1
|
||||
master-bin.001 244 Query 1 244 use test; ROLLBACK
|
||||
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;
|
||||
rollback to savepoint my_savepoint;
|
||||
Warning: Some non-transactional changed tables couldn't be rolled back
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(3)
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(3)
|
||||
master-bin.001 178 Query 1 79 use test; savepoint my_savepoint
|
||||
master-bin.001 235 Query 1 79 use test; insert into ti values(4)
|
||||
master-bin.001 294 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 235 Query 1 79 use test; insert into t1 values(4)
|
||||
master-bin.001 294 Query 1 79 use test; insert into t2 select * from t1
|
||||
master-bin.001 360 Query 1 79 use test; rollback to savepoint my_savepoint
|
||||
master-bin.001 429 Query 1 429 use test; COMMIT
|
||||
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;
|
||||
rollback to savepoint my_savepoint;
|
||||
Warning: Some non-transactional changed tables couldn't be rolled back
|
||||
insert into ti values(7);
|
||||
insert into t1 values(7);
|
||||
commit;
|
||||
select a from ti order by a;
|
||||
select a from t1 order by a;
|
||||
a
|
||||
5
|
||||
7
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(5)
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(5)
|
||||
master-bin.001 178 Query 1 79 use test; savepoint my_savepoint
|
||||
master-bin.001 235 Query 1 79 use test; insert into ti values(6)
|
||||
master-bin.001 294 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 235 Query 1 79 use test; insert into t1 values(6)
|
||||
master-bin.001 294 Query 1 79 use test; insert into t2 select * from t1
|
||||
master-bin.001 360 Query 1 79 use test; rollback to savepoint my_savepoint
|
||||
master-bin.001 429 Query 1 79 use test; insert into ti values(7)
|
||||
master-bin.001 429 Query 1 79 use test; insert into t1 values(7)
|
||||
master-bin.001 488 Query 1 488 use test; COMMIT
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
begin;
|
||||
insert into ti values(8);
|
||||
insert into tm select * from ti;
|
||||
insert into t1 values(8);
|
||||
insert into t2 select * from t1;
|
||||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(8)
|
||||
master-bin.001 178 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(8)
|
||||
master-bin.001 178 Query 1 79 use test; insert into t2 select * from t1
|
||||
master-bin.001 244 Query 1 244 use test; ROLLBACK
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
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;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; insert into ti values(9)
|
||||
master-bin.001 138 Query 1 138 use test; insert into tm select * from ti
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
master-bin.001 79 Query 1 79 use test; insert into t1 values(9)
|
||||
master-bin.001 138 Query 1 138 use test; insert into t2 select * from t1
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
insert into ti values(10);
|
||||
insert into t1 values(10);
|
||||
begin;
|
||||
insert into tm select * from ti;
|
||||
insert into t2 select * from t1;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; insert into ti values(10)
|
||||
master-bin.001 139 Query 1 139 use test; insert into tm select * from ti
|
||||
insert into ti values(11);
|
||||
master-bin.001 79 Query 1 79 use test; insert into t1 values(10)
|
||||
master-bin.001 139 Query 1 139 use test; insert into t2 select * from t1
|
||||
insert into t1 values(11);
|
||||
commit;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; insert into ti values(10)
|
||||
master-bin.001 139 Query 1 139 use test; insert into tm select * from ti
|
||||
master-bin.001 79 Query 1 79 use test; insert into t1 values(10)
|
||||
master-bin.001 139 Query 1 139 use test; insert into t2 select * from t1
|
||||
master-bin.001 205 Query 1 205 use test; BEGIN
|
||||
master-bin.001 245 Query 1 205 use test; insert into ti values(11)
|
||||
master-bin.001 245 Query 1 205 use test; insert into t1 values(11)
|
||||
master-bin.001 305 Query 1 305 use test; COMMIT
|
||||
alter table tm type=INNODB;
|
||||
delete from ti;
|
||||
delete from tm;
|
||||
alter table t2 type=INNODB;
|
||||
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;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(12)
|
||||
master-bin.001 179 Query 1 79 use test; insert into tm select * from ti
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(12)
|
||||
master-bin.001 179 Query 1 79 use test; insert into t2 select * from t1
|
||||
master-bin.001 245 Query 1 245 use test; COMMIT
|
||||
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;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
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;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(14)
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(14)
|
||||
master-bin.001 179 Query 1 179 use test; COMMIT
|
||||
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;
|
||||
select a from t1 order by a;
|
||||
a
|
||||
16
|
||||
18
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.001 79 Query 1 79 use test; BEGIN
|
||||
master-bin.001 119 Query 1 79 use test; insert into ti values(16)
|
||||
master-bin.001 179 Query 1 79 use test; insert into ti values(18)
|
||||
master-bin.001 119 Query 1 79 use test; insert into t1 values(16)
|
||||
master-bin.001 179 Query 1 79 use test; insert into t1 values(18)
|
||||
master-bin.001 239 Query 1 239 use test; COMMIT
|
||||
drop table ti,tm;
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -62,24 +62,24 @@ show grants for mysqltest_1@localhost;
|
|||
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
|
||||
REVOKE select (a), update on t1 from mysqltest_1@localhost;
|
||||
show grants for mysqltest_1@localhost;
|
||||
REVOKE insert,insert (a) on t1 from mysqltest_1@localhost;
|
||||
GRANT references on t1 to mysqltest_1@localhost;
|
||||
REVOKE select,update,insert,insert (a) on t1 from mysqltest_1@localhost;
|
||||
show grants for mysqltest_1@localhost;
|
||||
GRANT select,references on t1 to mysqltest_1@localhost;
|
||||
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
|
||||
grant all on test.* to user1@localhost with grant option;
|
||||
revoke all on test.* from user1@localhost;
|
||||
show grants for user1@localhost;
|
||||
revoke grant option on test.* from user1@localhost;
|
||||
show grants for user1@localhost;
|
||||
grant all on test.t1 to user2@localhost with grant option;
|
||||
revoke all on test.t1 from user2@localhost;
|
||||
show grants for user2@localhost;
|
||||
revoke grant option on test.t1 from user2@localhost;
|
||||
show grants for user2@localhost;
|
||||
delete from mysql.user where user='mysqltest_1';
|
||||
delete from mysql.db where user='mysqltest_1';
|
||||
delete from mysql.tables_priv where user='mysqltest_1';
|
||||
delete from mysql.columns_priv where user='mysqltest_1';
|
||||
grant all on test.* to mysqltest_3@localhost with grant option;
|
||||
revoke all on test.* from mysqltest_3@localhost;
|
||||
show grants for mysqltest_3@localhost;
|
||||
revoke grant option on test.* from mysqltest_3@localhost;
|
||||
show grants for mysqltest_3@localhost;
|
||||
grant all on test.t1 to mysqltest_2@localhost with grant option;
|
||||
revoke all on test.t1 from mysqltest_2@localhost;
|
||||
show grants for mysqltest_2@localhost;
|
||||
revoke grant option on test.t1 from mysqltest_2@localhost;
|
||||
show grants for mysqltest_2@localhost;
|
||||
delete from mysql.user where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
delete from mysql.db where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
delete from mysql.tables_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
delete from mysql.columns_priv where user='mysqltest_1' or user="mysqltest_2" or user="mysqltest_3";
|
||||
flush privileges;
|
||||
drop table t1;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -3091,17 +3091,19 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
|
|||
if ((table_access | grant_table->cols) != 0)
|
||||
{
|
||||
String global(buff,sizeof(buff));
|
||||
ulong test_access= (table_access | grant_table->cols) & ~GRANT_ACL;
|
||||
|
||||
global.length(0);
|
||||
global.append("GRANT ",6);
|
||||
|
||||
if (test_all_bits(table_access, (TABLE_ACLS & ~GRANT_ACL)))
|
||||
global.append("ALL PRIVILEGES",14);
|
||||
else if (!(table_access & ~GRANT_ACL))
|
||||
else if (!test_access)
|
||||
global.append("USAGE",5);
|
||||
else
|
||||
{
|
||||
int found= 0;
|
||||
ulong j,test_access= (table_access | grant_table->cols) & ~GRANT_ACL;
|
||||
ulong j;
|
||||
|
||||
for (counter= 0, j= SELECT_ACL; j <= TABLE_ACLS; counter++, j<<= 1)
|
||||
{
|
||||
|
|
|
@ -1500,7 +1500,7 @@ mysql_execute_command(void)
|
|||
break;
|
||||
}
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#ifdef HAVE_REPLICATION
|
||||
case SQLCOM_CHANGE_MASTER:
|
||||
{
|
||||
if (check_global_access(thd, SUPER_ACL))
|
||||
|
@ -1538,7 +1538,7 @@ mysql_execute_command(void)
|
|||
res = load_master_data(thd);
|
||||
break;
|
||||
|
||||
#endif /*!EMBEDDED_LIBRARY*/
|
||||
#endif /* HAVE_REPLICATION */
|
||||
|
||||
#ifdef HAVE_INNOBASE_DB
|
||||
case SQLCOM_SHOW_INNODB_STATUS:
|
||||
|
@ -1550,7 +1550,7 @@ mysql_execute_command(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#ifdef HAVE_REPLICATION
|
||||
case SQLCOM_LOAD_MASTER_TABLE:
|
||||
{
|
||||
if (!tables->db)
|
||||
|
@ -1577,7 +1577,7 @@ mysql_execute_command(void)
|
|||
UNLOCK_ACTIVE_MI;
|
||||
break;
|
||||
}
|
||||
#endif /*!EMBEDDED_LIBRARY*/
|
||||
#endif /* HAVE_REPLICATION */
|
||||
|
||||
case SQLCOM_CREATE_TABLE:
|
||||
{
|
||||
|
@ -1683,7 +1683,7 @@ mysql_execute_command(void)
|
|||
res = mysql_create_index(thd, tables, lex->key_list);
|
||||
break;
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#ifdef HAVE_REPLICATION
|
||||
case SQLCOM_SLAVE_START:
|
||||
{
|
||||
LOCK_ACTIVE_MI;
|
||||
|
@ -1716,7 +1716,7 @@ mysql_execute_command(void)
|
|||
UNLOCK_ACTIVE_MI;
|
||||
break;
|
||||
}
|
||||
#endif /*!EMBEDDED_LIBRARY*/
|
||||
#endif /* HAVE_REPLICATION */
|
||||
|
||||
case SQLCOM_ALTER_TABLE:
|
||||
#if defined(DONT_ALLOW_SHOW_COMMANDS)
|
||||
|
|
Loading…
Reference in a new issue