From: <mjd...@us...> - 2009-06-23 19:47:15
|
Revision: 86 http://treebase.svn.sourceforge.net/treebase/?rev=86&view=rev Author: mjdominus Date: 2009-06-23 19:46:27 +0000 (Tue, 23 Jun 2009) Log Message: ----------- add --where and --nrecs options Modified Paths: -------------- trunk/treebase-core/src/main/perl/dump/sqldump Modified: trunk/treebase-core/src/main/perl/dump/sqldump =================================================================== --- trunk/treebase-core/src/main/perl/dump/sqldump 2009-06-23 11:14:09 UTC (rev 85) +++ trunk/treebase-core/src/main/perl/dump/sqldump 2009-06-23 19:46:27 UTC (rev 86) @@ -15,7 +15,8 @@ my $schema = 'TBASE2'; # name of schema to analyze my $zip = 0; # zip output my $test = 0; # test run: delete produced files - +my $nrecs; # max number of recs per table +my $where = ""; # WHERE clause to select dumped records # get command line options, see Getopt::Long GetOptions( 'name-after-table' => \$name_file_after_table, @@ -28,6 +29,8 @@ 'table=s' => \@tables, 'zip' => \$zip, 'test' => \$test, + 'nrecs=i' => \$nrecs, + 'where=s' => \$where, 'all' => sub { @tables = get_all_tables() }, 'help|?' => sub { pod2usage( '-verbose' => 0 ) }, # see Pod::Usage 'man' => sub { pod2usage( '-verbose' => 1 ) }, # see Pod::Usage @@ -58,6 +61,10 @@ '-msg' => 'Need at least one operation to write out (--inserts and/or --creates), aborting' ) unless $with_creates or $with_inserts; +# prepend $where clause with WHERE unless it has that already, +# or there was none. +$where = "WHERE $where" unless $where =~ /^\s*$/ || $where =~ /^\s*where\b/i; + { # create database handle my $dbh = get_handle(); @@ -149,6 +156,7 @@ # get all rows from $table my $q = qq{select * from $table}; + $q .= " " . $where if $where; my $sth = $dbh->prepare($q); $sth->execute(); @@ -168,6 +176,7 @@ else { while ( $row = $sth->fetchrow_arrayref ) { $dumper->rec(@$row); + last if defined($nrecs) && (--$nrecs == 0); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |