mirror of
https://github.com/MariaDB/server.git
synced 2025-10-09 01:09:15 +02:00

Follow-up patch with adjustments of test files and updates of result files for tests. Some of tests were rewritten slighlty. Everywhere where common pattern used: ----- CREATE USER userA; --connect con1 ... userA ... <sql statements...> --disconnect con1 DROP USER userA; ----- the DROP USER statement has been eclosed into the directive --disable_warnings --enable_warnings This change is caused by the race conddition between --disconnect and DROP USER since a number of currently running sessions established on behalf the user being dropped is counted by holding the rw_lock THD_list_iterator::lock that is not acquired on execution the DROP USER statement but the lock is taken as the last step on handling disconnection (when the client is already sending the next statement). Therefore, for the cases where the command --disconnect precedes the DROP USER statement we hide the possible warnings about presence of active sessions for the user being deleted to make tests deterministic.
67 lines
2.5 KiB
Text
67 lines
2.5 KiB
Text
#
|
|
# MDEV-24208 SHOW RELAYLOG EVENTS command is not supported in the prepared
|
|
# statement protocol yet
|
|
#
|
|
CREATE USER u1;
|
|
include/master-slave.inc
|
|
[connection master]
|
|
connection master;
|
|
CREATE TABLE t1(n INT);
|
|
DROP TABLE t1;
|
|
connection slave;
|
|
PREPARE stmt_1 FROM 'SHOW BINLOG EVENTS';
|
|
EXECUTE stmt_1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
# # Format_desc # # #
|
|
# # Gtid_list # # []
|
|
# # Binlog_checkpoint # # #
|
|
# # Gtid # # GTID 0-1-1
|
|
# # Query # # use `test`; CREATE TABLE t1(n INT)
|
|
# # Gtid # # GTID 0-1-2
|
|
# # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */
|
|
# Execute the same prepared statement the second time to check that
|
|
# no internal structures used for handling the statement
|
|
# 'SHOW BINLOG EVENTS' were damaged.
|
|
EXECUTE stmt_1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
# # Format_desc # # #
|
|
# # Gtid_list # # []
|
|
# # Binlog_checkpoint # # #
|
|
# # Gtid # # GTID 0-1-1
|
|
# # Query # # use `test`; CREATE TABLE t1(n INT)
|
|
# # Gtid # # GTID 0-1-2
|
|
# # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */
|
|
DEALLOCATE PREPARE stmt_1;
|
|
connection slave;
|
|
PREPARE stmt_1 FROM 'SHOW RELAYLOG EVENTS';
|
|
EXECUTE stmt_1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-relay-bin.000001 # Format_desc # # #
|
|
slave-relay-bin.000001 # Rotate # # #
|
|
# Execute the same prepared statement the second time to check that
|
|
# no internal structures used for handling the statement
|
|
# 'SHOW RELAYLOG EVENTS' were damaged.
|
|
EXECUTE stmt_1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-relay-bin.000001 # Format_desc # # #
|
|
slave-relay-bin.000001 # Rotate # # #
|
|
DEALLOCATE PREPARE stmt_1;
|
|
# Create the user u1 without the REPLICATION SLAVE privilege required
|
|
# for running the statements SHOW BINLOG EVENTS/SHOW RELAYLOG EVENTS
|
|
# and check that attempt to execute the statements SHOW BINLOG EVENTS/
|
|
# SHOW RELAYLOG EVENTS as a prepared statements by a user without required
|
|
# privileges results in error.
|
|
connect con2,localhost,u1,,"*NO-ONE*";
|
|
PREPARE stmt_1 FROM 'SHOW BINLOG EVENTS';
|
|
EXECUTE stmt_1;
|
|
ERROR 42000: Access denied; you need (at least one of) the BINLOG MONITOR privilege(s) for this operation
|
|
PREPARE stmt_1 FROM 'SHOW RELAYLOG EVENTS';
|
|
EXECUTE stmt_1;
|
|
ERROR 42000: Access denied; you need (at least one of) the SLAVE MONITOR privilege(s) for this operation
|
|
DEALLOCATE PREPARE stmt_1;
|
|
include/rpl_end.inc
|
|
connection default;
|
|
DROP USER u1;
|
|
Warnings:
|
|
Note 4226 Dropped users ['u1'@'%'] have active connections. Use KILL CONNECTION if they should not be used anymore.
|
|
# End of 10.2 tests
|