1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

A previous changeset by me today about SQL_LOG_BIN had the problem

that it tested the privilege in ::update() whereas it should be
in ::check() (see email from Serg, subject
"Re: bk commit - 4.1 tree (guilhem:1.1706)").
So I add instead a check_func function to sys_var_thd_bit.
I do the same addition to sys_var_thd_ulong, to unify handling
of PSEUDO_THREAD_ID with the one of SQL_LOG_BIN. So class
sys_var_pseudo_thread_id is not needed anymore, removing it.


mysql-test/r/rpl_temporary.result:
  result update
mysql-test/t/rpl_temporary.test:
  tests after new way of fixing; verify that when second variable
  assignment is refused then first is not done.
sql/set_var.cc:
  a check_func (check_log_update) when setting SQL_LOG_BIN,
  and one when setting PSEUDO_THREAD_ID.
  Removing class sys_var_pseudo_thread_id.
  Updates for new prototypes of constructor in sys_var_thd_bit
  and sys_var_thd_ulong.
sql/set_var.h:
  Adding check_func to sys_var_thd_bit.
  Adding check_func to sys_var_thd_ulong, so class sys_var_pseudo_thread_id
  is not needed anymore, removing it.
This commit is contained in:
unknown
2004-03-27 01:07:09 +01:00
parent 266d36196d
commit ec4a9dc983
4 changed files with 90 additions and 73 deletions

View File

@ -5,10 +5,17 @@ reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
reset master;
SET @@session.pseudo_thread_id=100;
SET @save_select_limit=@@session.sql_select_limit;
SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100;
ERROR HY000: Access denied. You need the SUPER privilege for this operation
SET @@session.sql_log_bin=0;
SELECT @@session.sql_select_limit = @save_select_limit;
@@session.sql_select_limit = @save_select_limit
1
SET @@session.sql_select_limit=10, @@session.sql_log_bin=0;
ERROR HY000: Access denied. You need the SUPER privilege for this operation
SELECT @@session.sql_select_limit = @save_select_limit;
@@session.sql_select_limit = @save_select_limit
1
SET @@session.pseudo_thread_id=100;
SET @@session.pseudo_thread_id=connection_id();
SET @@session.sql_log_bin=0;