# pgBadger 11.x Release Notes

> Complete upstream release notes for the pgBadger 11.x series

---

LLMS index: [llms.txt](/llms.txt)

---

These entries preserve the complete upstream change record for pgBadger 11.x, newest first.

> Source: [upstream `ChangeLog`](https://github.com/darold/pgbadger/blob/a1ad95a035a0c2d246fe632eb1c361d4bde0ddae/ChangeLog) at commit [`a1ad95a`](https://github.com/darold/pgbadger/commit/a1ad95a035a0c2d246fe632eb1c361d4bde0ddae).

## v11.8 · 2022-04-08 {#v11-8}

This release of pgBadger fix some issues reported by users since past
three months and especially two fixes on new log entries detection in
incremental mode.

  * Fix detection of new log entries with timestamp when millisecond (%m) or
    epoch (%n) was used in log_line_prefix.
  * Fix detection of new log entries in local file when multiprocess was not
    used.

Here is the complete list of changes and acknowledgments:

  - Full review and simplification of the log file change detection.
  - Reports messages "could not (receive|send) data (from|to) client" in the
    Events reports. Thanks to Adrien Nayrat for the report.
  - Fix parsing issue when the name of a prepared query contain the ':'
    character. Thanks to aleszeleny for the report.
  - Fix detection of new log entries with timestamp when millisecond (%m) or
    epoch (%n). Thanks to aleszeleny for the report.
  - Fix detection of new log entries in local file when multiprocess was not
    used. Thanks to aleszeleny for the report.
  - Fix detection of new log entries in remote files through ssh. Thanks to
    Luca Ferrari for the report
  - Fix garbage in username of "Connections per user" report. Thanks to
    caseyandgina for the report.
  - Fix ssh command when using URI, the ssh options was missing. Thanks to Luca
    Ferrari for the report.
  - Handle queryid %Q placeholder. Thanks to Adrien Nayrat for the patch.
  - Fix typo in error sentence. Thanks to Luca Ferrari for the patch
  - Report message: "server process was terminated by signal" in the Events
    report. Thanks to Avi Vallarapu for the report.
  - doc: fix filename for incremental every week command. Thanks to Theophile
    Helleboid for the patch.
  - t/04_advanced.t: Fix syslog test. Thanks to Christoph Berg for the patch.

## v11.7 · 2022-01-23 {#v11-7}

This release of pgBadger fix some issues reported by users since past
five months as well as some improvements:

* Add new option --no-progressbar option to not display it but keep the
  other outputs.
* Add new option --day-report that can be used to rebuild an HTML report
  over the specified day. Like option --month-report but only for a day.
  It requires the incremental output directories and the presence of all
  necessary binary data files. The value is date in format: YYYY-MM-DD
* Improve parsing of Heroku logplex and cloudsql json logs.

Here is the complete list of changes and acknowledgments:

- Update contribution guidelines and Makefile.PL to improve consistency,
  clarity, and dependencies. Thanks to diffuse for the patch.
- Fix use of last parse file (--last-parsed) with binary mode. Thanks to
  wibrt for the report.
- Add regression test for --last-parsed use and fix regression test on
  report for temporary files only.
- Fix title for session per host graph. Thanks to Norbert Bede for the
  report.
- Fix week number when computing weeks reports when --iso-week-number
  and --incremental options was enabled. Thanks to hansgv for the report.
- Add --no-progressbar option to not display it and keep the other outputs.
  Thanks to seidlmic for the feature request.
- Prevent too much unknown format line prints in debug mode for multi-line
  jsonlog.
- Fix parsing of single line cloudsql json log. Thanks to Thomas Leclaire
  for the report.
- Fix temporary files summary with log_temp_files only.
- Print debug message with -v even if -q or --quiet is used.
- Fix autodetection of jsonlog file.
- Fix parsing of cloudsql log file. Thanks to Luc Lamarle for the report.
- Fixes pid extraction in parse_json_input. Thanks to Francois Scala for
  the patch.
- Add new option --day-report with value as date in format: YYYY-MM-DD
  that can be used to rebuild an HTML report over the specified day.
  Thanks to Thomas Leclaire for the feature request.
- Fix query counter in progress bar. Thanks to Guillaume Lelarge for the
  report.
- Fix incomplete queries stored for top bind and prepare reports.
- Fix normalization of object identifier, in some case the numbers was
  replaced by a ?.
- Fix unformatted normalized queries when there is a comment at beginning.
- Fix multi-line in stderr format when --dbname is used. Thanks to
  Guillaume Lelarge for the report.
- Fix not generated reports in incremental mode when --dbname is used.
  Thanks to Dudley Perkins for the report.
- Do not die anymore if a binary file is not compatible, switch to next
  file. Thanks to Thomas Leclaire for the suggestion.
- Fix Heroku logplex format change in pgbadger parser. Thanks to François
  Pietka for the report.

## v11.6 · 2021-09-04 {#v11-6}

This release of pgBadger fix some issues reported by users since past
seven months as well as some improvements:

  * Add detection of Query Id in log_line_prefix new in PG14. Thanks to
    Florent Jardin for the report.
  * Add advanced regression tests with db exclusion and the explode
    feature. Thanks to MigOps Inc for the patch.
  * Apply multiprocess to report generation when --explode is used.
    Thanks to MigOps Inc for the patch and Thomas Leclaire for the
    feature request.
  * Add --iso-week-number in incremental mode, calendar's weeks start
    on a Monday and respect the ISO 8601 week number, range 01 to 53,
    where week 1 is the first week that has at least 4 days in the new
    year. Thanks to Alex Muntada for the feature request.
  * Add command line option --keep-comments to not remove comments from
    normalized queries. It can be useful if you want to distinguish
    between same normalized queries. Thanks to Stefan Corneliu Petrea
    for the feature request.
  * Skip INFO lines introduced in PostgreSQL log file by third parties
    software. Thanks to David Piscitelli for the report.
  * Add compatibility with PostgresPro log file including rows number
    and size in bytes following the statement duration. Thanks to
    panatamann for the report.
  * Parse times with T's to allow using the timestamps from journalctl.
    Thanks to Graham Christensen for the patch.
  * Improve Windows port. Thanks to Bertrand Bourgier for the patches.

Important note:

  * Expect that --iso-week-number will be the default in next major
    release and that --start-monday option will be removed as the week
    will always start a Monday. The possibility to have week reports
    start a Sunday will be removed to simplify the code.

Here is the complete list of changes and acknowledgments:

  - Fix duplicate of warning message:
      "database ... must be vacuumed within ... transactions".
    Thank to Christophe Courtois for the report.
  - Fix use of uninitialized variable. Thanks to phiresky for the report.
  - Improve query id detection, it can be negative, as well as read it
    from csvlog.
  - Fix case where last file in incremental mode is always parsed even if
    it was already done. Thanks to  Thomas Leclaire for the report.
  - Update syslog format regex to handle where session line indicator
    only contains one int vs two ints separated by dash. Thanks to
    Timothy Alexander for the patch.
  - Fix --exclude-db option to create anyway the related report with json
    log. Thanks to MigOps Inc for the patch and Thomas Leclaire for the
    report.
  - Add regression test about Storable buggy version.
  - Fix use of uninitialized value in substitution iterator in incremental
    mode during the week report generation. Thanks to Thomas Leclaire,
    Michael Vitale, Sumeet Shukla and Stefan Corneliu Petrea for the report.
  - Add 'g' option to replace all bind parameters. Thanks to Nicolas Lutic
    and Sebastien Lardiere for the patch.
  - Documentation improvements. Thanks to Stefan Petrea for the patch.
  - Fixes change log time zone calculation. Thanks to Stefan Petrea for
    the patch.
  - Fix log filter by begin/end time.
  - Fix wrong association of orphan lines for multi-line queries with a
    filter on database. Thanks to Abhishek Mehta for the report.
  - Fix reports in incremental mode when --dbname parameter is partially
    ignored with "explode" option (-E). Thanks to lrevest for the report.
  - Update javascript resources.
  - Fix display of menu before switching to hamburger mode when screen is
    reduced. Thanks to Guillaume Lelarge for the report.
  - Fix bind parameters values over multiple lines in the log that were
    not well supported.
  - Apply same fix for previous patch than in pgFormatter.
  - Fix an other use of uninitialized value in substitution iterator from
    pgFormatter code. Thanks to Christophe Courtois for the report.
  - Fix query normalization. Thanks to Jeffrey Beale for the patch.
  - Be sure that all statements end with a semicolon when --dump-all-queries
    is used. Thanks to Christian for the report.
  - Fix typo and init of EOL type with multiple log files.
  - Add auto detection of EOL type to fix LAST_PARSED offset when OEL is on
    2 bytes (Windows case). Thanks to Bertrand Bourgier for the patch.
  - Fix get_day_of_week() port on Windows where strftime %u is not supported.
    Thanks to Bertrand Bourgier for the patch.
  - Fix Windows port that call pl2bat.bat perl utility to create a corrupted
    pgbadger.bat du to the way __DATA__ was read in pgbadger. Thanks to
    Bertrand Bourgier for the patch.
  - Fix begin/end time filter and add regression test for timestamp filters.
    Thanks to Alexis Lahouze and plmayekar for the report.
  - Fix use of uninitialized value in pattern match introduced by pgFormatter
    update. Thanks to arlt for the report.

## v11.5 · 2021-02-18 {#v11-5}

This release of pgBadger fix some issues reported by users since
past three months as well as some improvements:

  * Add report about sessions idle time, computed using:
        "total sessions time - total queries time / number of sessions
    This require that log_connection and log disconnection have been
    enabled and that log_min_duration_statement = 0 (all queries logged)
    to have a reliable value. This can help to know how much idle time
    is lost, and if a pooler transaction mode would be useful.
    This report is available in the "Sessions" tab of "Global Stats"
    and in the "Sessions" tab of "General Activity" reports (per hour).
  * Add anonymization of numeric values, replaced by 4 random digits.
  * Update SQL beautifier based on pgFormatter 5.0.

Here is the complete list of changes and acknowledgments:

  - Fix parsing of cloudsql multi-line statement. Thanks to Jon Young for the report. 
  - Add regression test for anonymization.
  - Fix anonymization broken by maxlength truncate. Thanks to artl for the report.
  - Add anonymization of parameter in time consuming prepare and bind reports. Thanks to arlt for the report.
  - Add support to microseconds in logplex log line prefix. Thanks to Ross Gardiner for the report.
  - Add report about sessions idle time. Thanks to Guillaume Lelarge for the feature request.
  - Complete patch to support multi-line in jsonlog format.

## v11.4 · 2020-11-24 {#v11-4}

This release of pgBadger fix some issues reported by users since
past four months. Improve support for PostgreSQL 13 log information
and adds some new features:

  * Add full autovacuum information in "Vacuums per table" report for
    buffer usage (hits, missed, dirtied), skipped due to pins, skipped
    frozen and WAL usage (records, full page images, bytes). In report
    "Tuples removed per table" additional autovacuum information are
    tuples remaining, tuples not yet removable and pages remaining.
    These information are only available on the "Table" tab.
  * Add new repartition report about checkpoint starting causes.
  * Add detection of application name from connection authorized traces.

Here is the complete list of changes and acknowledgments:

  - Fix typo in an error message. Thanks to Vidar Tyldum for the patch.
  - Fix Windows port with error: "can not load incompatible binary data".
    Thanks to Eric Brawner for the report.
  - Fix typo on option --html-outdir in pgbadger usage and documentation.
    Thanks to Vidar Tyldum for the patch.
  - Fix autodetection of jsonlog/cloudsql format. Thanks to Jon Young
    for the report.
  - Fix CSV log parsing with PG v13. Thanks to Kanwei Li for the report
    and Kaarel Moppel for the patch.
  - Fix sort of queries generating the most temporary files report.
    Thanks to Sebastien Lardiere for the report.
  - Add pgbadger version trace in debug mode.

## v11.3 · 2020-07-26 {#v11-3}

This release of pgBadger fix several issues reported by users since
past four months. It also adds some new features and new command line
options:

  * Add autodetection of UTC timestamp to avoid applying timezone
    for graphs.
  * Add support to GCP CloudSQL json log format.
  * Add new option --dump-all-queries to use pgBadger to dump all
    queries to a text file, no report is generated just the full list
    of statements found in the PostgreSQL log. Bind parameters are
    inserted into the queries at their respective position.
  * Add new option -Q | --query-numbering used to add numbering of
    queries to the output when using options --dump-all-queries or
    --normalized-only.
  * Add new command line option --tempdir to set the directory where
    temporary files will be written. Can be useful on system that do
    not allow writing to /tmp.
  * Add command line option --ssh-port used to set the ssh port if not
    default to 22. The URI notation also adds support to ssh port
    specification by using the form:
        ssh://192.168.1.100:2222//var/log/postgresql-11.log

Here is the complete list of changes and acknowledgments:

  - Fix incremental reports for jsonlog/cloudsql log format. Thanks
    to Ryan DeShone for the report
  - Add autodetection of UTC timestamp to avoid applying autodetected
    timezone for graphs. With UTC time the javascript will apply the
    local timezone. Thanks to Brett Stauner for the report.
  - Fix incremental parsing of journalctl logs doesn't work from the
    second run. Thanks to Paweł Koziol for the patch.
  - Fix path to resources file when -X and -E are used. Thanks to Ryan
    DeShone for the report.
  - Fix General Activity report about read/write queries. Thanks to
    alexandre-sk5 for the report.
  - Add debug message when parallel mode is not use.
  - Fix elsif logic in file size detection and extra space introduced
    in the journalctl command when the --since option is added. Thanks
    to Pawel Koziol for the patch.
  - Fix "not a valid file descriptor" error. Thanks to Pawel Koziol
    for the report.
  - Fix incremental mode with RDS files. Thanks to Ildefonso Camargo,
    nodje and John Walsh for the report.
  - Add new option -Q | --query-numbering used to add numbering of
    queries to the output when using options --dump-all-queries or
    --normalized-only. This can be useful to extract multiline queries
    in the output file from an external script. Thanks to Shantanu Oak
    for the feature request.
  - Fix parsing of cloudsql json logs when log_min_duration_statement
   is enabled. Thanks to alexandre-sk5 for the report.
  - Fix wrong hash key for users in RDS log. Thanks to vosmax for the
    report.
  - Fix error related to modification of non-creatable array value.
    Thanks to John Walsh and Mark Fletcher for the report.
  - Add support to GCP CloudSQL json log format, log format (-f) is
    jsonlog. Thanks to Thomas Poindessous for the feature request.
  - Add new option --dump-all-queries to use pgBadger to dump all
    queries to a text file, no report is generated just the full list
    of statements found in the PostgreSQL log. Bind parameters are
    inserted into the queries at their respective position. There is
    not sort on unique queries, all queries are logged. Thanks to
    Shantanu Oak for the feature request.
  - Add documentation for --dump-all-queries option.
  - Fix vacuum report for new PG version. Thanks to Alexey Timanovsky
    for the report.
  - Add new command line option --no-process-info to disable change of
    process title to help identify pgbadger process, some system do
    not allow it. Thanks to Akshay2378 for the report.
  - Add new command line option --tempdir to set the directory where
    temporary files will be written. Default:
        File::Spec->tmpdir() || '/tmp'
    Can be useful on system that do not allow writing to /tmp. Thanks
    to Akshay2378 for the report.
  - Fix unsupported compressed filenames with spaces and/or brackets.
    Thanks to Alexey Timanovsky for the report.
  - Add command line option --ssh-port used to set the ssh port if not
    default to 22. The URI notation also adds support to ssh port
    specification by using the form:
        ssh://192.168.1.100:2222//var/log/postgresql-11.log
    Thanks to Augusto Murri for the feature request.

## v11.2 · 2020-03-11 {#v11-2}

This release of pgBadger fix several issues reported by users since
past six months. It also adds some new features:

  * Add support and autodetection of AWS redshift log format.
  * Add support to pgbouncer 1.11 new log format.
  * Handle zstd and lz4 compression format
  * Allow to fully separate statistics build and HTML report build in
    incremental mode without having to read a log file. For example
    it is possible to run pgbadger each hours as follow:
    
        pgbadger -I -O "/out-dir/data" --noreport /var/log/postgresql*.log
    
    It just creates the data binary files in "/out-dir/data" then
   for example you can make reports each night for the next day in
   a separate directory `/out-dir/reports`:
    
        pgbadger -I -l "/out-dir/data/LAST_PARSED" -H "/out-dir/reports" /out-dir/data/2020/02/19/*.bin
    
    This require to set the path to the last parsed information, the
    path where HTML reports will be written and the binary data file
    of the day.

There is also new command line options:

  * Add new command line option --explain-url used to override the url
    of the graphical explain tool. Default URL is:
    
        http://explain.depesz.com/?is_public=0&is_anon=0&plan=
    
    If you want to use a local install of PgExplain or an other tool.
    pgBadger will add the plan in text format escaped at the end of
    the URL.

  * Add new option --no-week to instruct pgbadger to not build weekly
    reports in incremental mode. Useful if it takes too much time and
    resources.

  * Add new command line option --command to be able to set a command
    that pgBadger will execute to retrieve log entries on stdin.
    pgBadger will open a pipe to the command and parse log entries
    generated by the command. For example:
    
      pgbadger -f stderr --command 'cat /var/log/postgresql.log'
    
    which is the same as executing pgbadger with the log file directly
    as argument. The interest of this option is obvious if you have to
    modify the log file on the fly or that log entries are extracted
    from a program or generated from a database. For example:
    
      pgbadger -f csv --command 'psql dbname -c "COPY jrn_log TO STDOUT (FORMAT CSV)"'
    
  * Add new command line option --noexplain to prevent pgBadger to
    parse and report explain plan written to log by auto_explain
    extension. This is useful if you have a PostgreSQL version < 9.0
    where pgBadger generate broken reports when there is explain plan
    in log.

Backward compatibility:

  - By default pgBadger will truncate queries up to 100000 characters.
    This arbitrary value and can be adjusted using option --maxlength.
    Previous behavior was to not truncate queries but this could
    lead in excessive resources usage. Limiting default size is safer
    and the size limit might allow no truncate in most cases. However
    queries will not be beautified if they exceed 25000 characters.

Here is the complete list of changes and acknowledgments:

  - Fix non working --exclude-client option. Thanks to John Walsh
    for the report.
  - Add regression test for RDS log parsing and --exclude-client.
  - Fix progress bar for pgbouncer log file. The "queries" label is
    changed in "stats" for pgbouncer log files.
  - Add command line option --explain-url used to override the url
    of the graphical explain tool. Thanks to Christophe Courtois for
    the feature request.
  - Add support to pgbouncer 1.11 new log format. Thanks to Dan
    Aksenov for the report.
  - Handle zstd and lz4 compression format. Thanks to Adrien Nayrat
    for the patch.
  - Add support and autodetection of AWS redshift log format. Thanks
    to Bhuvanesh for the reature request.
  - Update documentation about redshift log format.
  - Add new option --no-week to instruct pgbadger to not build weekly
    reports in incremental mode. Thanks to cleverKermit17 for the
    feature request.
  - Fix a pattern match on file path that breaks pgBadger on Windows.
  - Fix #554 about cyrillic and other encoded statement parameters
    that was not reported properly in the HTML report even with custom
    charset. The regression was introduced with a fix to the well
    known Perl error message "Wide character in print". The patch have
    been reverted and a new command line option: --wide-char is
    available to recover this behavior. Add this option to your
    pgbadger command if you have message "Wide character in print".
    Add a regression test with Cyrillic and french encoding. Thanks
    to 4815162342lost and yethee for the report.
  - Update documentation to inform that lc_messages = 'en_US.UTF-8'
    is valid too. Thanks to nodje for the report.
  - Update documentation about --maxlength which default truncate size
    is 100000 and no more default to no truncate. Thanks to nodje for
    the report.
  - Fix retention calculation at year overlap. Thanks to Fabio Pereira
    for the patch.
  - Fix parsing of rds log file format. Thanks to Kadaffy Talavera for
    the report.
  - Prevent generating empty index file in incremental mode when there
    is no new log entries. Thanks to Kadaffy Talavera for the report.
  - Fix non up to date documentation. Thanks to Eric Hanson for the
    patch.
  - Fixes the command line parameter from -no-explain to -noexplain.
    Thanks to Indrek Toom for the patch.
  - Fall back to default file size when totalsize can not be found.
    Thanks to Adrien Nayrat for the patch.
  - Fix some dates in examples. Thanks to Greg Clough for the patch.
  - Use compressed file extension regexp in remaining test and extract
    .bin extension in a separate condition.
  - Handle zstd and lz4 compression format. Thanks to Adrien Nayrat
    for the patch.
  - Fix remaining call of SIGUSR2 on Windows. Thanks to inrap for the
    report.
  - Fix progress bar with log file of indetermined size.
  - Add new command line option --command to be able to set a command
    that pgBadger will execute to retrieve log entries on stdin.
    Thanks to Justin Pryzby for the feature request.
  - Add new command line option --noexplain to prevent pgBadger to
    parse and report explain plan written to log by auto_explain
    extension. This is useful if you have a PostgreSQL version < 9.0
    where pgBadger generate broken reports when there is explain plan
    in log. Thanks to Massimo Sala for the feature request.
  - Fix RDS log parsing when the prefix is set at command line. Thanks
    to Bing Zhao for the report.
  - Fix incremental mode with rds log format. Thanks to Bing Zhao for
    the report.
  - Fix possible rds log parsing. Thanks to James van Lommel and Simon
    Dobner for the report.
  - Fix statement classification and add regression test. Thanks to
    alexanderlaw for the report.
  - Fix anonymization of single characters in IN clause. Thanks to
    Massimo Sala for the report.
  - Fix RDS log parsing for rows without client/user/db information.
    Thanks to Konrad for the report.

## v11.1 · 2019-09-16 {#v11-1}

This release of pgBadger fix several issues reported by users since
three months. It also adds some new features and reports:

  - Add report of top N queries that consume the most time in the
    prepare or parse stage.
  - Add report of top N queries that consume the most time in the
    bind stage.
  - Add report of timing for prepare/bind/execute queries parts.
    Reported in a new "Duration" tab in Global Stats report. Example:
        Total query duration: 6m16s
        Prepare/parse total duration: 45s564ms
        Bind total duration: 4m46s
        Execute total duration: 44s71m
    This also fix previous report of "Total query duration" that was
    only reporting execute total duration.
  - Add support to RDS and CloudWatch log format, they are detected
    automatically. You can use -f rds if pgbadger is not able to
    auto-detect the log format.
  - Add new configuration option --month-report to be able to build
    monthly incremental reports.
  - Restore support to Windows operating system.

There's also some bugs fixes and features enhancements.

  - Add auto-generated Markdown documentation in README.md using tool
    pod2markdown. If the command is not present the file will just not
    be generated. Thanks to Derek Yang for the patch.
  - Translate action WITH into CTE, regression introduced in last release.
  - Fix support of Windows Operating System
  - Add support to RDS and CloudWatch log format, use -f rds if pgbadger is
    not able to auto-detect this log format. Thanks to peruuparkar for the
    feature request.
  - Fix option -f | --format that was not applied on all files get from the
    parameter list where log format auto-detection was failing, the format was
    taken from the fist file parsed. Thanks to Levente Birta for the report.
  - Update source documentation file to replace reference to pgBadger v7.x
    with v11. Thanks to Will Buckner for the patch.
  - Limit height display size of top queries to avoid taking the whole page
    with huge queries. Thanks to ilias ilisepe1 for the patch.
  - Fix overflow of queries and detail in Slowest individual queries.
  - Fix SSH URIs for files, directories and wildcards. Thanks to tbussmann for
    the patch.
  - Fix URI samples in documentation. Thanks to tbussmann for the patch.
  - Hide message of use of default out file when --rebuild is used.
  - Add extra newline to usage() output to not bread POD documentation at
    make time.
  - Reapply --exclude-client option description in documentation. Thanks to
    Christoph Berg for the report.

## v11.0 · 2019-06-25 {#v11-0}

This release of pgBadger adds some major new features and fixes some
issues reported by users since the last four months. New features:

  - Regroup cursor related query (DECLARE,CLOSE,FETCH,MOVE) into new
    query type CURSOR.
  - Add top bind queries that generate the more temporary files.
    Require log_connection and log_disconnection be activated.
  - Add --exclude-client command line option to be able to exclude log
    entries for the specified client ip. Can be used multiple time.
  - Allow to use time only in --begin and --end filters.
  - Add -H, --html-dir option to be able to set a different path where
    HTML report must be written in incremental mode. Binary files stay
    on directory defined with -O, --outdir option.
  - Add -E | --explode option to explode the main report into one
    report per database. Global information not related to a database
    are added to the postgres database report.
  - Add per database report to incremental mode. In this mode there
    will be a sub directory per database with dedicated incremental
    reports.
  - Add support to Heroku's PostgreSQL logplex format. Log can be
    parsed using:

      heroku logs -p postgres | pgbadger -f logplex -o heroku.html -

  - When a query is > 10Kb we first limit size of all constant string
    parameters to 30 characters and then the query is truncated to 10Kb.
    This prevent pgbadger to waste time/hang with very long queries
    when inserting bytea for example. The 10Kb limit can be controlled
    with the --maxlength command line parameter.
    The query is normalized or truncated to maxlength value only after
    this first attempt to limit size.

This new release breaks backward compatibility with old binary or JSON
files. This also mean that incremental mode will not be able to read
old binary file. If you want to update pgBadger and keep you old reports
take care to upgrade at start of a new week otherwise weekly report will
be broken. pgBadger will print a warning and just skip the old binary
file.

There's also some bugs fixes and features enhancements.

  - Add a warning about version and skip loading incompatible binary file.
  - Update code formatter to pgFormatter 4.0.
  - Fix pgbadger hang on Windows OS. Thanks to JMLessard for the report.
  - Update tools/pgbadger_tools script to be compatible with new binary
    file format in pgBadger v11.
  - Add top bind queries that generate the more temporary files. This
    collect is possible only if log_connection and log_disconnection
    are activated in postgresql.conf. Thanks to Ildefonso Camargo for
    the feature request.
  - Fix auto detection of timezone. Thanks to massimosala for the fix.
  - Remove some remaining graph when --nograph is used
  - Force use of .txt extension when --normalized-only is used.
  - Fix report of auto vacuum/analyze in logplex format. Thanks to
    Konrad zichul for the report.
  - Fix use of progress bar on Windows operating system. Thanks to
    JMLessard for the report.
  - Use a `$prefix_vars{'t_time'} to store the log time. Thanks to Luca
    Ferrari for the patch.
  - Update usage and documentation to remove perl command from pgbadger
    invocations. Thanks to Luca Ferrari for the patch.
  - Use begin and end with times without date. Thanks to Luca Ferrari
    for the patch.
  - Added some very minor spelling and grammar fixes to the readme file.
    Thanks to ofni yratilim for the patch.
  - Fix remote paths using SSH. Thanks to Luca Ferrari for the patch.
  - Update regression test to works with new structure introduced with
    the per database report feature.
  - Fix fractional seconds in all begin and end parameters. Thanks to
    Luca Ferrari for the patch.
  - Fix documentation URL. Thanks to Kara Mansel for the report.
  - Fix parsing of auto_explain.
    Add more information about -U option that can be used multiple time.
    Thanks to Douglas J Hunley for the report.
  - Lot of HTML / CSS report improvements. Thanks to Pierre Giraud for
    the patches.
  - Update resource file.
  - Add regression test for logplex format.
  - Add support to Heroku's PostgreSQL logplex format. You should be able
    to parse these logs as follow:
        heroku logs -p postgres | pgbadger -f logplex -o heroku.html -
    or if you have already saved the output to a file:
        pgbadger heroku.log
    The logplex format is auto-dectected like any other supported format.
    pgBadger understand the following default log_line_prefix:
        database = %d connection_source = %r sql_error_code = %e
    or simply:
        sql_error_code = %e
    Let me know if there's any other default log_line_prefix. The prefix
    can always be set using the -p | --prefix pgbadger option:
        pgbadger --p 'base = %d source = %r sql_state = %e' heroku.log
    for example.
    Thanks to Anthony Sosso for the feature request.
  - Fix pgbadger help on URI use.
  - Fix broken wildcard use in ssh URI introduced in previous patch.
    Thanks to Tobias Bussmann for the report.
  - Allow URI with space in path to log file. Thanks to Tobias Bussmann
    for the report.
  - Fix URI samples in documentation. Thanks to Tobias Bussmann for the
    patch.
  - Fix t/02_basics.t to don't fail if syslog test takes more than 10s.
    Thanks to Christoph Berg for the patch.
