Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
0737be6a
Commit
0737be6a
authored
Dec 17, 2008
by
Horst Hunger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Final fix for bug#36773: Moved patch in 5.1 from rpl to bug team tree.
parent
d566770b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
165 additions
and
99 deletions
+165
-99
mysql-test/include/wait_condition_sp.inc
mysql-test/include/wait_condition_sp.inc
+62
-0
mysql-test/r/rpl_init_slave_func.result
mysql-test/r/rpl_init_slave_func.result
+33
-34
mysql-test/t/rpl_init_slave_func-slave.opt
mysql-test/t/rpl_init_slave_func-slave.opt
+0
-1
mysql-test/t/rpl_init_slave_func.test
mysql-test/t/rpl_init_slave_func.test
+70
-64
No files found.
mysql-test/include/wait_condition_sp.inc
0 → 100644
View file @
0737be6a
# include/wait_condition.inc
#
# SUMMARY
#
# Waits until the passed statement returns true, or the operation
# times out.
#
# USAGE
#
# let $wait_condition=
# SELECT c = 3 FROM t;
# --source include/wait_condition.inc
#
# OR
#
# let $wait_timeout= 60; # Override default 30 seconds with 60.
# let $wait_condition=
# SELECT c = 3 FROM t;
# --source include/wait_condition.inc
# --echo Executed the test condition $wait_condition_reps times
#
# EXAMPLE
# events_bugs.test, events_time_zone.test
#
--
disable_query_log
let
$wait_counter
=
300
;
if
(
$wait_timeout
)
{
let
$wait_counter
=
`SELECT $wait_timeout * 10`
;
}
# Reset $wait_timeout so that its value won't be used on subsequent
# calls, and default will be used instead.
let
$wait_timeout
=
0
;
# Keep track of how many times the wait condition is tested
# This is used by some tests (e.g., main.status)
let
$wait_condition_reps
=
0
;
while
(
$wait_counter
)
{
let
$success
=
`$wait_condition`
;
inc
$wait_condition_reps
;
if
(
$success
)
{
let
$wait_counter
=
0
;
}
if
(
!
$success
)
{
real_sleep
0.1
;
dec
$wait_counter
;
}
}
if
(
!
$success
)
{
echo
Timeout
in
wait_condition
.
inc
for
$wait_condition
;
show
master
status
;
show
slave
status
;
}
--
enable_query_log
mysql-test/r/rpl_init_slave_func.result
View file @
0737be6a
...
...
@@ -4,44 +4,43 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
'#--------------------FN_DYNVARS_037_01-------------------------#'
SET @@global.init_slave = "SET @a = 10";
'connect (con1,localhost,root,,)'
'connection con1'
SELECT @@global.init_slave;
@@global.init_slave
SET @a = 10
'connection master'
'#--------------------FN_DYNVARS_037_02-------------------------#'
'check if value in slave opt file is executed'
'connection slave'
show variables like 'init_slave';
Variable_name Value
init_slave set global max_connections=500
show variables like 'max_connections';
Variable_name Value
max_connections 500
reset master;
'check if value in slave opt file doesnt apply to master'
'connection master'
show variables like 'init_slave';
Variable_name Value
init_slave SET @a = 10
show variables like 'max_connections';
Variable_name Value
max_connections 151
'connection slave'
'try creating a temporary variable in init_slave'
connection slave
SET @start_max_connections= @@global.max_connections;
SET @start_init_slave= @@global.init_slave;
SET @@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1';
DROP TABLE IF EXISTS t1;
CREATE TEMPORARY TABLE t1 AS SELECT @@global.init_slave AS my_column;
DESCRIBE t1;
Field Type Null Key Default Extra
my_column longtext NO NULL
DROP TABLE t1;
SELECT @@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1';
@@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1'
1
Expect 1
SELECT @@global.max_connections= @start_max_connections;
@@global.max_connections= @start_max_connections
1
Expect 1
STOP SLAVE;
RESET MASTER;
RESET SLAVE;
START SLAVE;
SELECT @@global.max_connections = @start_max_connections + 1;
@@global.max_connections = @start_max_connections + 1
1
Expect 1
SET @@global.init_slave = "SET @a=5";
stop slave
;
reset slave
;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9
;
start slave
;
STOP SLAVE
;
RESET MASTER
;
RESET SLAVE
;
START SLAVE
;
SHOW VARIABLES LIKE 'init_slave';
Variable_name Value
init_slave SET @a=5
SELECT @a;
@a
NULL
'Bug#35365 SET statement in init_slave not execute if slave is restarted'
set global max_connections= default;
Expect NULL
SET @@global.max_connections= @start_max_connections;
SET @@global.init_slave= @start_init_slave;
mysql-test/t/rpl_init_slave_func-slave.opt
deleted
100644 → 0
View file @
d566770b
--init-slave="set global max_connections=500"
mysql-test/t/rpl_init_slave_func.test
View file @
0737be6a
...
...
@@ -10,86 +10,92 @@
# #
# Creation Date: 2008-03-08 #
# Author: Rizwan #
# Modified: HHunger 2008-09-29 Fixed the bug by inserting the usual wait and #
# SQL-Satements to control master and slave, #
# deleted the sleep and made improvements like: #
# - Replaced the opt file by dynamic variables, #
# - Made the tests independant of the initial #
# values of the global variables, #
# - Reduced the test to the needed test case to #
# save run time, #
# - Beautification. #
# #
# Description: Test Cases of Dynamic System Variable init_slave #
# that checks the behavior of this variable #
# #
# Reference:
http://dev.mysql.com/doc/refman/5.1/en/
#
#
server-system-variables.html
#
# Reference:
#
#
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html
#
# #
###############################################################################
source
include
/
master
-
slave
.
inc
;
--
echo
'#--------------------FN_DYNVARS_037_01-------------------------#'
##################################################################
# Check if setting init_slave is changed in every new connection #
##################################################################
SET
@@
global
.
init_slave
=
"SET @a = 10"
;
--
echo
'connect (con1,localhost,root,,)'
connect
(
con1
,
localhost
,
root
,,);
--
echo
'connection con1'
connection
con1
;
SELECT
@@
global
.
init_slave
;
disconnect
con1
;
--
echo
'connection master'
connection
master
;
--
echo
'#--------------------FN_DYNVARS_037_02-------------------------#'
####################################################
# Begin the functionality Testing of init_slave #
####################################################
#====================================================
--
echo
'check if value in slave opt file is executed'
#====================================================
save_master_pos
;
--
echo
'connection slave'
--
echo
connection
slave
connection
slave
;
sleep
1
;
show
variables
like
'init_slave'
;
show
variables
like
'max_connections'
;
sync_with_master
;
reset
master
;
#
# save the current values
#===============================================================
--
echo
'check if value in slave opt file doesnt apply to master'
#===============================================================
SET
@
start_max_connections
=
@@
global
.
max_connections
;
SET
@
start_init_slave
=
@@
global
.
init_slave
;
--
echo
'connection master'
connection
master
;
show
variables
like
'init_slave'
;
show
variables
like
'max_connections'
;
save_master_pos
;
--
echo
'connection slave'
connection
slave
;
sync_with_master
;
#=======================================================
--
echo
'try creating a temporary variable in init_slave'
#=======================================================
SET
@@
global
.
init_slave
=
"SET @a=5"
;
# setting of a global value with an effect on the next start of the slave server
# check that @@global.init_slave could be set
let
$my_init_slave
=
'SET @@global.max_connections = @@global.max_connections + 1'
;
eval
SET
@@
global
.
init_slave
=
$my_init_slave
;
stop
slave
;
--
wait_for_slave_to_stop
reset
slave
;
# Clean up old test tables
# show the data type of the variable
--
disable_warnings
drop
table
if
exists
t1
,
t2
,
t3
,
t4
,
t5
,
t6
,
t7
,
t8
,
t9
;
DROP
TABLE
IF
EXISTS
t1
;
CREATE
TEMPORARY
TABLE
t1
AS
SELECT
@@
global
.
init_slave
AS
my_column
;
--
enable_warnings
start
slave
;
DESCRIBE
t1
;
DROP
TABLE
t1
;
#
# check that the new setting of @@global.init_slave becomes immediately visible
eval
SELECT
@@
global
.
init_slave
=
$my_init_slave
;
--
echo
Expect
1
# wait for the slave threads have set the global variable.
let
$wait_timeout
=
90
;
let
$wait_condition
=
SELECT
@@
global
.
max_connections
=
@
start_max_connections
;
--
source
include
/
wait_condition_sp
.
inc
# check that the action in init_slave does not happen immediately
SELECT
@@
global
.
max_connections
=
@
start_max_connections
;
--
echo
Expect
1
#
# reset of the server
STOP
SLAVE
;
--
wait_for_slave_to_stop
RESET
MASTER
;
RESET
SLAVE
;
START
SLAVE
;
source
include
/
wait_for_slave_to_start
.
inc
;
#
# wait for the slave threads have set the global variable.
let
$wait_timeout
=
90
;
let
$wait_condition
=
SELECT
@@
global
.
max_connections
=
@
start_max_connections
+
1
;
--
source
include
/
wait_condition_sp
.
inc
# check that the action in init_slave was executed and had the intended effect
SELECT
@@
global
.
max_connections
=
@
start_max_connections
+
1
;
--
echo
Expect
1
#
# Setting a variable(which is local to a session) and must not be visible
SET
@@
global
.
init_slave
=
"SET @a=5"
;
#
STOP
SLAVE
;
--
wait_for_slave_to_stop
RESET
MASTER
;
RESET
SLAVE
;
START
SLAVE
;
source
include
/
wait_for_slave_to_start
.
inc
;
#
SHOW
VARIABLES
LIKE
'init_slave'
;
# expect NULL
SELECT
@
a
;
--
echo
'Bug#35365 SET statement in init_slave not execute if slave is restarted'
# Restore value
set
global
max_connections
=
default
;
--
echo
Expect
NULL
#
# Clean up
SET
@@
global
.
max_connections
=
@
start_max_connections
;
SET
@@
global
.
init_slave
=
@
start_init_slave
;
##################################################
# End of functionality Testing for init_slave #
##################################################
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment