~percona-toolkit-dev/percona-toolkit/1.0

« back to all changes in this revision

Viewing changes to lib/MySQLDump.pm

  • Committer: Daniel Nichter
  • Date: 2011-12-22 20:11:46 UTC
  • Revision ID: daniel@percona.com-20111222201146-1xq21ewhzeanlh1t
Change MKDEBUG to PTDEBUG everywhere.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
use strict;
26
26
use warnings FATAL => 'all';
27
27
use English qw(-no_match_vars);
28
 
use constant MKDEBUG => $ENV{MKDEBUG} || 0;
 
28
use constant PTDEBUG => $ENV{PTDEBUG} || 0;
29
29
 
30
30
( our $before = <<'EOF') =~ s/^   //gm;
31
31
   /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
121
121
sub _use_db {
122
122
   my ( $self, $dbh, $quoter, $new ) = @_;
123
123
   if ( !$new ) {
124
 
      MKDEBUG && _d('No new DB to use');
 
124
      PTDEBUG && _d('No new DB to use');
125
125
      return;
126
126
   }
127
127
   my $sql = 'USE ' . $quoter->quote($new);
128
 
   MKDEBUG && _d($dbh, $sql);
 
128
   PTDEBUG && _d($dbh, $sql);
129
129
   $dbh->do($sql);
130
130
   return;
131
131
}
137
137
         . q{@@SQL_MODE := REPLACE(REPLACE(@@SQL_MODE, 'ANSI_QUOTES', ''), ',,', ','), }
138
138
         . '@OLD_QUOTE := @@SQL_QUOTE_SHOW_CREATE, '
139
139
         . '@@SQL_QUOTE_SHOW_CREATE := 1 */';
140
 
      MKDEBUG && _d($sql);
 
140
      PTDEBUG && _d($sql);
141
141
      eval { $dbh->do($sql); };
142
 
      MKDEBUG && $EVAL_ERROR && _d($EVAL_ERROR);
 
142
      PTDEBUG && $EVAL_ERROR && _d($EVAL_ERROR);
143
143
      $self->_use_db($dbh, $quoter, $db);
144
144
      $sql = "SHOW CREATE TABLE " . $quoter->quote($db, $tbl);
145
 
      MKDEBUG && _d($sql);
 
145
      PTDEBUG && _d($sql);
146
146
      my $href;
147
147
      eval { $href = $dbh->selectrow_hashref($sql); };
148
148
      if ( $EVAL_ERROR ) {
152
152
 
153
153
      $sql = '/*!40101 SET @@SQL_MODE := @OLD_SQL_MODE, '
154
154
         . '@@SQL_QUOTE_SHOW_CREATE := @OLD_QUOTE */';
155
 
      MKDEBUG && _d($sql);
 
155
      PTDEBUG && _d($sql);
156
156
      $dbh->do($sql);
157
157
      my ($key) = grep { m/create table/i } keys %$href;
158
158
      if ( $key ) {
159
 
         MKDEBUG && _d('This table is a base table');
 
159
         PTDEBUG && _d('This table is a base table');
160
160
         $self->{tables}->{$db}->{$tbl} = [ 'table', $href->{$key} ];
161
161
      }
162
162
      else {
163
 
         MKDEBUG && _d('This table is a view');
 
163
         PTDEBUG && _d('This table is a view');
164
164
         ($key) = grep { m/create view/i } keys %$href;
165
165
         $self->{tables}->{$db}->{$tbl} = [ 'view', $href->{$key} ];
166
166
      }
170
170
 
171
171
sub get_columns {
172
172
   my ( $self, $dbh, $quoter, $db, $tbl ) = @_;
173
 
   MKDEBUG && _d('Get columns for', $db, $tbl);
 
173
   PTDEBUG && _d('Get columns for', $db, $tbl);
174
174
   if ( !$self->{cache} || !$self->{columns}->{$db}->{$tbl} ) {
175
175
      $self->_use_db($dbh, $quoter, $db);
176
176
      my $sql = "SHOW COLUMNS FROM " . $quoter->quote($db, $tbl);
177
 
      MKDEBUG && _d($sql);
 
177
      PTDEBUG && _d($sql);
178
178
      my $cols = $dbh->selectall_arrayref($sql, { Slice => {} });
179
179
 
180
180
      $self->{columns}->{$db}->{$tbl} = [
195
195
      map { '  ' . $quoter->quote($_->{field}) . ' ' . $_->{type} }
196
196
      @{$self->get_columns($dbh, $quoter, $db, $tbl)});
197
197
   $result .= "\n)";
198
 
   MKDEBUG && _d($result);
 
198
   PTDEBUG && _d($result);
199
199
   return $result;
200
200
}
201
201
 
207
207
         . q{@@SQL_MODE := REPLACE(REPLACE(@@SQL_MODE, 'ANSI_QUOTES', ''), ',,', ','), }
208
208
         . '@OLD_QUOTE := @@SQL_QUOTE_SHOW_CREATE, '
209
209
         . '@@SQL_QUOTE_SHOW_CREATE := 1 */';
210
 
      MKDEBUG && _d($sql);
 
210
      PTDEBUG && _d($sql);
211
211
      eval { $dbh->do($sql); };
212
 
      MKDEBUG && $EVAL_ERROR && _d($EVAL_ERROR);
 
212
      PTDEBUG && $EVAL_ERROR && _d($EVAL_ERROR);
213
213
      $sql = "SHOW TRIGGERS FROM " . $quoter->quote($db);
214
 
      MKDEBUG && _d($sql);
 
214
      PTDEBUG && _d($sql);
215
215
      my $sth = $dbh->prepare($sql);
216
216
      $sth->execute();
217
217
      if ( $sth->rows ) {
227
227
      }
228
228
      $sql = '/*!40101 SET @@SQL_MODE := @OLD_SQL_MODE, '
229
229
         . '@@SQL_QUOTE_SHOW_CREATE := @OLD_QUOTE */';
230
 
      MKDEBUG && _d($sql);
 
230
      PTDEBUG && _d($sql);
231
231
      $dbh->do($sql);
232
232
   }
233
233
   if ( $tbl ) {
246
246
         push @params, $like;
247
247
      }
248
248
      my $sth = $dbh->prepare($sql);
249
 
      MKDEBUG && _d($sql, @params);
 
249
      PTDEBUG && _d($sql, @params);
250
250
      $sth->execute( @params );
251
251
      my @dbs = map { $_->[0] } @{$sth->fetchall_arrayref()};
252
252
      $self->{databases} = \@dbs unless $like;
264
264
         $sql .= ' LIKE ?';
265
265
         push @params, $like;
266
266
      }
267
 
      MKDEBUG && _d($sql, @params);
 
267
      PTDEBUG && _d($sql, @params);
268
268
      my $sth = $dbh->prepare($sql);
269
269
      $sth->execute(@params);
270
270
      my @tables = @{$sth->fetchall_arrayref({})};
290
290
         $sql .= ' LIKE ?';
291
291
         push @params, $like;
292
292
      }
293
 
      MKDEBUG && _d($sql, @params);
 
293
      PTDEBUG && _d($sql, @params);
294
294
      my $sth = $dbh->prepare($sql);
295
295
      $sth->execute(@params);
296
296
      my @tables = @{$sth->fetchall_arrayref()};