From: <mjd...@us...> - 2009-06-23 20:08:11
|
Revision: 88 http://treebase.svn.sourceforge.net/treebase/?rev=88&view=rev Author: mjdominus Date: 2009-06-23 20:07:19 +0000 (Tue, 23 Jun 2009) Log Message: ----------- improved progress meter reports percentage done 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 19:54:51 UTC (rev 87) +++ trunk/treebase-core/src/main/perl/dump/sqldump 2009-06-23 20:07:19 UTC (rev 88) @@ -74,11 +74,10 @@ $dbh->{LongReadLen} = $maxlen; # Handle LOBs up to $maxlen bytes for my $table ( @tables ) { - # only using these two functions once, so for clarity as to where they - # originate let's use the fully qualified names. + my @names = CIPRES::TreeBase::DBIUtil::get_colnames($dbh, $table); my @types = CIPRES::TreeBase::DBIUtil::get_coltypes($dbh, $table); - + # instantiate a RecDumper object, which will format a row-as-array # into an insert statement my $dumper = CIPRES::TreeBase::RecDumper->new( @@ -168,11 +167,17 @@ # if --progress is provided, print out progress counter if ($with_progress_meter) { + my ($total_records) = @{$dbh->selectcol_arrayref(qq{select count(*) from $table})}; + $total_records = $nrecs if defined($nrecs) && $nrecs < $total_records; my $count = 0; + my $old_percent = ""; while ( $row = $sth->fetchrow_arrayref ) { ++$count; $dumper->rec(@$row); - print STDERR "\r$count" if $count % 1000 == 0; + my $percent = int(0.5 + $count / $total_records * 100); + print STDERR "\r$percent%" if $percent ne $old_percent; + $old_percent = $percent; + last if defined($nrecs) && (--$nrecs == 0); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |