]> granicus.if.org Git - pgbadger/commitdiff
Fix issue with compressed csvlog. Thanks to Philip Freeman for the report.
authorDarold Gilles <gilles@darold.net>
Wed, 26 Sep 2012 19:25:27 +0000 (21:25 +0200)
committerDarold Gilles <gilles@darold.net>
Wed, 26 Sep 2012 19:25:27 +0000 (21:25 +0200)
doc/pgBadger.pod
pgbadger

index 179cd73a1a418a9824641ccfa4343cab41f32745..739f46a3e41bcc709b78bec2bdbee3bd33614415 100644 (file)
@@ -14,7 +14,6 @@ Arguments:
     returning a list of file. If you want to pass log content from stdin
     use - as filename. Note that input from stdin will not work with csvlog.
 
-
 Options:
 
     -a | --average minutes : number of minutes to build the average graphs of
index ff88631720874cd34448908109abbca88592397b..aebac084877cb7899bbd0df5f9ca04209fb16909 100755 (executable)
--- a/pgbadger
+++ b/pgbadger
@@ -454,7 +454,14 @@ foreach my $logfile (@log_files) {
        if ($format eq 'csv') {
                require Text::CSV;
                my $csv = Text::CSV->new({binary => 1, eol => $/});
-               open(my $io, "<", $logfile) or die "FATAL: cannot read csvlog file $logfile. $!\n";
+               my $io = undef;
+               if ($logfile !~ /\.gz/) {
+                       open($io, "<", $logfile) or die "FATAL: cannot read csvlog file $logfile. $!\n";
+               } else {
+                       open($io, "$zcat $logfile |") or die "FATAL: cannot open pipe to $zcat $logfile. $!\n";
+                       # Real size of the file is unknow
+                       $totalsize = 0;
+               }
 
                # Parse csvlog lines
                my $getout = 0;