mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
42eecc539a
DROP USER RENAME USER CURRENT_USER() ... GRANT ... TO CURRENT_USER() REVOKE ... FROM CURRENT_USER() ALTER DEFINER = CURRENT_USER() EVENTbut, When these statements are binlogged, CURRENT_USER() just is binlogged as 'CURRENT_USER()', it is not expanded to the real user name. When slave executes the log event, 'CURRENT_USER()' is expand to the user of slave SQL thread, but SQL thread's user name always NULL. This breaks the replication. After this patch, session's user will be written into query log events if these statements call CURREN_USER() or 'ALTER EVENT' does not assign a definer.
35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
# #############################################################################
|
|
# Check whether the given table is consistent between different master and
|
|
# slaves
|
|
#
|
|
# Usage:
|
|
# --let $diff_table= test.t1
|
|
# --let $diff_server_list= master, slave, slave2
|
|
# --source include/rpl_diff_tables.inc
|
|
# #############################################################################
|
|
|
|
if (`SELECT "XX$diff_table" = "XX"`)
|
|
{
|
|
--die diff_table is null.
|
|
}
|
|
|
|
--let $_servers= master, slave
|
|
if (`SELECT "XX$diff_server_list" <> "XX"`)
|
|
{
|
|
--let $_servers= $diff_server_list
|
|
}
|
|
|
|
--let $_master= `SELECT SUBSTRING_INDEX('$_servers', ',', 1)`
|
|
--let $_servers= `SELECT LTRIM(SUBSTRING('$_servers', LENGTH('$_master') + 2))`
|
|
connection $_master;
|
|
while (`SELECT "XX$_servers" <> "XX"`)
|
|
{
|
|
--let $_slave= `SELECT SUBSTRING_INDEX('$_servers', ',', 1)`
|
|
--let $_servers= `SELECT LTRIM(SUBSTRING('$_servers', LENGTH('$_slave') + 2))`
|
|
|
|
--sync_slave_with_master $_slave
|
|
--let $diff_table_1= $_master:$diff_table
|
|
--let $diff_table_2= $_slave:$diff_table
|
|
--source include/diff_tables.inc
|
|
connection $_slave;
|
|
}
|