~ubuntu-branches/ubuntu/precise/mysql-5.5/precise-201203300109

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Clint Byrum
  • Date: 2012-02-14 23:59:22 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20120214235922-cux5uek1e5l0hje9
Tags: 5.5.20-0ubuntu1
* New upstream release.
* d/mysql-server-5.5.mysql.upstart: Fix stop on to make sure mysql is
  fully stopped before shutdown commences. (LP: #688541) Also simplify
  start on as it is redundant.
* d/control: Depend on upstart version which has apparmor profile load
  script to prevent failure on upgrade from lucid to precise.
  (LP: #907465)
* d/apparmor-profile: need to allow /run since that is the true path
  of /var/run files. (LP: #917542)
* d/control: mysql-server-5.5 has files in it that used to be owned
  by libmysqlclient-dev, so it must break/replace it. (LP: #912487)
* d/rules, d/control: 5.5.20 Fixes segfault on tests with gcc 4.6,
  change compiler back to system default.
* d/rules: Turn off embedded libedit/readline.(Closes: #659566)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# ==== Purpose ====
 
2
#
 
3
# Relocates the relay logs and index file from 
 
4
# a directory into another. The logs relocated 
 
5
# are the one listed in the index file.
 
6
#
 
7
# ==== Usage ====
 
8
#
 
9
# [--let $relocate_disable_query_log= 1]
 
10
# [--let $rpl_debug= 1]
 
11
# [--let $relocate_is_windows= 0]
 
12
# [--let $relocate_recreate_index= 0]
 
13
# [--let $relocate_fix_relay_log_info= 0]
 
14
# --let $relocate_from= DIR
 
15
# --let $relocate_to= DIR
 
16
# --let $relocate_index_file= FNAME
 
17
# --source include/relocate_binlogs.inc
 
18
 
 
19
if ($relocate_disable_query_log)
 
20
{
 
21
  --disable_query_log
 
22
}
 
23
 
 
24
--let $_path_separator=/
 
25
if ($relocate_is_windows)
 
26
{
 
27
  --let $_path_separator=\
 
28
}
 
29
 
 
30
if ($relocate_index_file)
 
31
{
 
32
  SET SQL_LOG_BIN=0;
 
33
  CREATE TEMPORARY TABLE tmp(id INT AUTO_INCREMENT PRIMARY KEY, filename VARCHAR(1024));
 
34
 
 
35
  --let $write_var=
 
36
  --let $_index_file= $relocate_index_file
 
37
  --let $_index_file_basename= `SELECT RIGHT(RTRIM("$_index_file"), LOCATE("$_path_separator",REVERSE(RTRIM("$_index_file"))) -1)`
 
38
  --let $_from= $relocate_from
 
39
  --let $_to= $relocate_into
 
40
 
 
41
  # chmod to allow the following LOAD DATA
 
42
  --chmod 0666 $_index_file
 
43
 
 
44
  --eval LOAD DATA INFILE '$_index_file' INTO TABLE tmp (filename)
 
45
  --let $count= `SELECT count(*) FROM tmp`
 
46
 
 
47
  while ($count)
 
48
  {
 
49
    --let $_filename= `select filename from tmp where id=$count`
 
50
 
 
51
    --let $_filename= `SELECT RIGHT(RTRIM("$_filename"), LOCATE("$_path_separator",REVERSE(RTRIM("$_filename"))) -1)`
 
52
    --move_file $_from/$_filename $_to/$_filename
 
53
 
 
54
    if ($relocate_recreate_index)
 
55
    {
 
56
 
 
57
      if ($relocate_is_windows)
 
58
      {
 
59
        --let $_write_var=$_to\$_filename\n
 
60
      }
 
61
      if (!$relocate_is_windows)
 
62
      {
 
63
        --let $_write_var=$_to/$_filename\n
 
64
      }
 
65
      if (!$write_var)
 
66
      {
 
67
        --let $write_var=$_write_var
 
68
      }
 
69
 
 
70
      if (!`SELECT STRCMP('$write_var', '$_write_var') = 0`)
 
71
      {
 
72
        --let $write_var=$_write_var$write_var
 
73
      }
 
74
    }
 
75
 
 
76
    --dec $count
 
77
  }
 
78
 
 
79
  if (!$relocate_recreate_index)
 
80
  {
 
81
    --move_file $_index_file $_to/$_index_file_basename
 
82
  }
 
83
 
 
84
  if ($relocate_recreate_index)
 
85
  {
 
86
    --let $write_to_file= $_to/$_index_file_basename
 
87
    --source include/write_var_to_file.inc
 
88
    --remove_file $_index_file
 
89
  }
 
90
 
 
91
  DROP TEMPORARY TABLE tmp;
 
92
 
 
93
  if ($relocate_fix_relay_log_info)
 
94
  {
 
95
    CREATE TEMPORARY TABLE tmp(id INT AUTO_INCREMENT PRIMARY KEY, entry VARCHAR(1024));
 
96
    --let $write_var=
 
97
   
 
98
    # chmod to allow the following LOAD DATA
 
99
    --chmod 0666 $relocate_fix_relay_log_info
 
100
 
 
101
    --eval LOAD DATA INFILE '$relocate_fix_relay_log_info' INTO TABLE tmp (entry)
 
102
    --let $count= `SELECT count(*) FROM tmp`
 
103
 
 
104
    --let $_curr_entry= `SELECT entry FROM tmp WHERE id=1`
 
105
    --let $_curr_entry_basename= `SELECT RIGHT(RTRIM("$_curr_entry"), LOCATE("$_path_separator",REVERSE(RTRIM("$_curr_entry"))) -1)`
 
106
 
 
107
    if ($relocate_is_windows)
 
108
    {
 
109
      --eval UPDATE tmp SET entry='$_to\$_curr_entry_basename' WHERE id=1
 
110
    }
 
111
    if (!$relocate_is_windows)
 
112
    {
 
113
      --eval UPDATE tmp SET entry='$_to/$_curr_entry_basename' WHERE id=1
 
114
    }
 
115
 
 
116
    --remove_file $relocate_fix_relay_log_info
 
117
 
 
118
    while($count)
 
119
    {
 
120
      --let $_write_var= `SELECT entry FROM tmp WHERE id= $count`
 
121
      --let $write_var=$_write_var\n$write_var
 
122
      --dec $count
 
123
    }
 
124
 
 
125
    --let $write_to_file= $relocate_fix_relay_log_info
 
126
    --source include/write_var_to_file.inc
 
127
 
 
128
    DROP TEMPORARY TABLE tmp;
 
129
  }
 
130
  SET SQL_LOG_BIN=1;
 
131
}
 
132
 
 
133
 
 
134
if ($relocate_disable_query_log)
 
135
{
 
136
  --enable_query_log
 
137
}