~ubuntu-branches/ubuntu/natty/mysql-5.1/natty-proposed

« back to all changes in this revision

Viewing changes to mysql-test/include/rpl_diff.inc

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 08:30:45 UTC
  • mfrom: (1.4.1)
  • Revision ID: package-import@ubuntu.com-20120222083045-2rd53r4bnyx7qus4
Tags: 5.1.61-0ubuntu0.11.04.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# ==== Purpose ====
 
2
#
 
3
# Diff the output of a statement on all configured servers (usually
 
4
# master and slave).
 
5
#
 
6
#
 
7
# ==== Usage =====
 
8
#
 
9
# --let $rpl_diff_statement= SELECT * FROM t1 WHERE a < 100
 
10
# [--let $rpl_diff_servers= <server1>,<server2>,...<serverN>]
 
11
# --source include/rpl_diff.inc
 
12
#
 
13
# Parameters:
 
14
#   $rpl_diff_statement
 
15
#     Statement to check. For each compared server, this script will
 
16
#     start a new client and pass this statement to the client.
 
17
#     Note: This string will be evaluated as a single-quote-escaped
 
18
#     SQL string and hence must be quoted as such.  In particular, any
 
19
#     single quotes in this string must be escaped.
 
20
#
 
21
#   $rpl_diff_servers
 
22
#     By default, this file compares all servers configured by
 
23
#     rpl_init.inc.  You can set $diff_servers to a comma-separated
 
24
#     list of numbers: only the servers identified by these numbers
 
25
#     will be compared.
 
26
#
 
27
#   $rpl_diff_database
 
28
#     By default, the statement will be executed on the database
 
29
#     'test'.  If $rpl_diff_database is set, the statement will be
 
30
#     executed on the database named $rpl_diff_database instead.
 
31
 
 
32
 
 
33
--let $include_filename= rpl_diff.inc
 
34
--source include/begin_include_file.inc
 
35
 
 
36
 
 
37
if (!$rpl_diff_statement)
 
38
{
 
39
  --die ERROR IN TEST: you must set $rpl_diff_statement before you source include/rpl_diff.inc
 
40
}
 
41
 
 
42
 
 
43
# Sync.
 
44
--source include/rpl_sync.inc
 
45
 
 
46
 
 
47
# Get database name.
 
48
--let $_rpl_diff_database= $rpl_diff_database
 
49
if (`SELECT '$_rpl_diff_database' = ''`)
 
50
{
 
51
  --let $_rpl_diff_database= test
 
52
}
 
53
 
 
54
 
 
55
# Generate list of servers.
 
56
--let $_rpl_diff_servers= $rpl_diff_servers
 
57
if (!$_rpl_diff_servers)
 
58
{
 
59
  --let $_rpl_server_i= $rpl_server_count
 
60
  --let $_rpl_diff_servers= 
 
61
  while ($_rpl_server_i)
 
62
  {
 
63
    --let $_rpl_diff_servers= $_rpl_server_i,$_rpl_diff_servers
 
64
    --dec $_rpl_server_i
 
65
  }
 
66
}
 
67
if ($rpl_debug)
 
68
{
 
69
  --echo \$rpl_diff_servers= '$_rpl_diff_servers'
 
70
}
 
71
 
 
72
 
 
73
if (!$rpl_debug)
 
74
{
 
75
  --disable_query_log
 
76
}
 
77
 
 
78
 
 
79
# Generate file containing $rpl_diff_statement. We don't pass the
 
80
# statement on the command line, because it would be subject to shell
 
81
# substitutions.
 
82
--let $write_to_file= GENERATE
 
83
--let $write_var= $rpl_diff_statement
 
84
--source include/write_var_to_file.inc
 
85
--let $_rpl_diff_statement_file= $write_to_file
 
86
 
 
87
 
 
88
# Compare all servers.
 
89
--let $_rpl_diff_first= 1
 
90
while ($_rpl_diff_servers)
 
91
{
 
92
  # Set $_rpl_diff_server_i to the first number in the list
 
93
  --let $_rpl_diff_server_i= `SELECT SUBSTRING_INDEX('$_rpl_diff_servers', ',', 1)`
 
94
  # Remove $_rpl_diff_server_i from the list
 
95
  --let $_rpl_diff_servers= `SELECT SUBSTRING('$_rpl_diff_servers', LENGTH('$_rpl_diff_server_i') + 2)`
 
96
 
 
97
  # Execute statement
 
98
  --let $_rpl_diff_file= $MYSQLTEST_VARDIR/tmp/_rpl_diff_server-$_rpl_diff_server_i.tmp
 
99
  --exec $MYSQL --defaults-group-suffix=.$_rpl_diff_server_i $_rpl_diff_database < $_rpl_diff_statement_file > $_rpl_diff_file
 
100
 
 
101
  # Compare
 
102
  if (!$_rpl_diff_first)
 
103
  {
 
104
    if ($rpl_debug)
 
105
    {
 
106
      --echo diffing $_rpl_diff_file and $_rpl_diff_prev_file
 
107
    }
 
108
    --diff_files $_rpl_diff_file $_rpl_diff_prev_file
 
109
    --remove_file $_rpl_diff_prev_file
 
110
  }
 
111
  --let $_rpl_diff_prev_file= $_rpl_diff_file
 
112
  --let $_rpl_diff_first= 0
 
113
}
 
114
--remove_file $_rpl_diff_prev_file
 
115
 
 
116
 
 
117
--let $include_filename= rpl_diff.inc
 
118
--source include/end_include_file.inc