|
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.
|