Skip to content
Snippets Groups Projects
release-9.2.sgml 71.1 KiB
Newer Older
        if a <literal>postgres</> database connection fails (Robert Haas)
       </para>
      </listitem>
    </itemizedlist>

    <sect4>
     <title><link linkend="APP-PSQL"><application>psql</></link></title>

     <itemizedlist>

      <listitem>
       <para>
        Add <application>psql</> mode to auto-expand output based on the
        display width (Peter Eisentraut)
       <para>
        This adds the <literal>auto</> option to the <command>\x</>
        command, which switches to the expanded mode when the normal
        output would be wider than the screen.
       </para>
      </listitem>
      <listitem>
       <para>
        Allow inclusion of <application>psql</> files relative to the
        directory of the input file from which it was invoked (Gurjeet
       <para>
        The <application>psql</> command is <command>\ir</>.
       </para>
      </listitem>
      <listitem>
       <para>
        Add support for non-<acronym>ASCII</acronym> characters in
        <application>psql</> variable names (Tom Lane)
       </para>
      </listitem>
      <listitem>
       <para>
        Add support for major-version-specific <filename>.psqlrc</> files
        (Bruce Momjian)
       </para>
        <application>psql</> already supported minor-version-specific
        <filename>.psqlrc</>
      <listitem>
       <para>
        Provide environment variable overrides for <application>psql</>
        history and startup file locations (Andrew Dunstan)
       </para>
       <para>
        Specifically, <envar>PSQL_HISTORY</envar> and
        <envar>PSQLRC</envar>.
       </para>
      </listitem>
      <listitem>
       <para>
        Add a <application>psql</> <command>\setenv</> command to modify
        the environment variables used by child processes (Andrew Dunstan)
       <para>
        This is useful in <filename>.psqlrc</> files.
       </para>
      </listitem>
      <listitem>
       <para>
        Have <application>psql</> temporary editor files use a
        <filename>.sql</> extension (Peter Eisentraut)
       </para>
      </listitem>
      <listitem>
       <para>
        Allows <application>psql</> to use zero-byte field and record
        separators (Peter Eisentraut)
       <para>
        Various shell tools use zero/null-byte separators, e.g. find.
       </para>
      </listitem>
      <listitem>
       <para>
        Have <application>psql</> <command>\timing</> report times for
        failed queries (Magnus Hagander)
       </para>
       <para>
        Previously only successful query times were reported.
       </para>
      </listitem>
Robert Haas's avatar
Robert Haas committed
        Unify and tighten <application>psql</> treatment of <command>\copy</>
        and plain <command>COPY</> (Noah Misch)
Robert Haas's avatar
Robert Haas committed
        This makes failure behavior more predictable and honors <command>\set
        ON_ERROR_ROLLBACK</>.
     </itemizedlist>

    </sect4>

    <sect4>
     <title>Informational Commands</title>

     <itemizedlist>
      <listitem>
       <para>
        Make <application>psql</> <command>\d</> on a sequence show the
        table/column name owning it (Magnus Hagander)
       </para>
      </listitem>
      <listitem>
       <para>
        Show statistics target for columns in <application>psql</>
        <command>\d+</> (Magnus Hagander)
       </para>
      </listitem>
      <listitem>
       <para>
        Show role password expiration dates in <application>psql</>
        <command>\du</> (Fabr&iacute;zio de Royes Mello)
       </para>
      </listitem>

     </itemizedlist>


    <sect5>
     <title>Comments</title>

     <itemizedlist>
      <listitem>
       <para>
        Allow <application>psql</> to display comments for languages and
        casts (Josh Kupershmidt)
       </para>
       <para>
        These are output via <command>\dL</> and <command>\dC</>.
       </para>
      </listitem>
      <listitem>
       <para>
        Allow <application>psql</> to display comments for conversions
        and domains (Josh Kupershmidt)
       </para>
       <para>
        This is accomplished with the addition of <literal>+</> to
        <command>\dc</> and <command>\dD</> commands.
       </para>
      </listitem>
      <listitem>
       <para>
        Allow <application>psql</> to display the comments on
        <acronym>SQL</acronym>/<acronym>MED</acronym> objects in verbose
        mode (Josh Kupershmidt)
       </para>
      </listitem>
      <listitem>
       <para>
        Change <application>psql</>'s <command>\dd</> command to display
        only objects without their own backslash command (Josh Kupershmidt)
       </para>
      </listitem>
     </itemizedlist>

    </sect5>

    </sect4>

    <sect4>
     <title>Tab Completion</title>

     <itemizedlist>

      <listitem>
       <para>
        In <application>psql</> tab completion,
        complete <acronym>SQL</acronym> keywords based on
        <varname>COMP_KEYWORD_CASE</> setting and the perhaps case of
        the partially-supplied word (Peter Eisentraut)
      <listitem>
       <para>
        Add <application>psql</> tab completion support for
        <command>EXECUTE</command> (Andreas Karlsson)
      <listitem>
       <para>
        Allow tab completion of role references in
        <command>GRANT</command>/<command>REVOKE</command> (Peter
      <listitem>
       <para>
        Allow tab completion of file names to supply quotes, when necessary
        (Noah Misch)
       </para>
      </listitem>
      <listitem>
       <para>
        Change <application>psql</> tab completion support for
        <command>TABLE</command> to also display views (Magnus Hagander)
       </para>
      </listitem>
     </itemizedlist>

    </sect4>

    <sect4>
     <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>

     <itemizedlist>

      <listitem>
       <para>
        Add an <option>--exclude-table-data</> option to
        <application>pg_dump</> (Andrew Dunstan)
       </para>
       <para>
        This allows dumping of a table's definition but not its data,
        on a per-table basis.
       </para>
      </listitem>
      <listitem>
       <para>
        Add a <option>--section</> option to <application>pg_dump</>
        and <application>pg_restore</> (Andrew Dunstan)
       <para>
        Valid values are <literal>pre-data</>, <literal>data</>,
        and <literal>post-data</>. The option can be
        given more than once. <option>--schema-only</>
        is equivalent to <literal>--section=pre-data
        --section=post-data</>. <option>--data-only</> is equivalent to
        <literal>--section=data</>.
       </para>
      </listitem>
      <listitem>
       <para>
        Have <link
        linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link> dump all
        roles first, then all configuration settings on roles (Phil Sorber)
       </para>
       <para>
        This allows a role's configuration settings to rely on other
        roles without generating an error.
       </para>
      </listitem>
      <listitem>
       <para>
        Allow <application>pg_dumpall</> to avoid errors if the
        <literal>postgres</> database is missing in the new cluster
        (Robert Haas)
       </para>
      </listitem>
      <listitem>
       <para>
        Dump foreign server user mappings in user name order (Peter
        Eisentraut)
       </para>
       <para>
        This helps produce deterministic dump files.
       </para>
      </listitem>
      <listitem>
       <para>
        Dump operators in a predictable order (Peter Eisentraut)
       </para>
      </listitem>
      <listitem>
       <para>
        Tighten rules for when extension configuration tables are dumped
        by <application>pg_dump</> (Tom Lane)
       </para>
      </listitem>

     </itemizedlist>

    </sect4>

   </sect3>

    <sect3>
     <title><link linkend="libpq"><application>libpq</></link></title>

     <itemizedlist>

      <listitem>
       <para>
        Add <acronym>URI</acronym>s support to libpq connection functions
        (Alexander Shulgin)
       </para>
       <para>
        The syntax begins with <literal>postgres://</>.
       </para>
      </listitem>
        Add a libpq <link linkend="libpq-connect-sslcompression">connection
        option</link> to disable <acronym>SSL</acronym> compression
        (Laurenz Albe)
       <para>
        This can be used to remove the overhead of <acronym>SSL</acronym>
        compression on fast networks.
       </para>
      </listitem>
      <listitem>
       <para>
        Add a row processor <acronym>API</acronym> to libpq for better
        handling of large result sets (Kyotaro Horiguchi)
        Previously, libpq collected the entire query result into memory
        before passing it back to the application.
       </para>
      </listitem>
      <listitem>
       <para>
        Enhance <literal>const</> qualifiers in the libpq functions
        PQconnectdbParams, PQconnectStartParams, and PQpingParams (Lionel
        Allow libpq's <filename>.pgpass</> file to process escaped characters
        in the password field (Robert Haas)
      <listitem>
       <para>
        Have library functions use <function>abort()</> instead of
        <function>exit()</> to terminate the executable (Peter Eisentraut)
       </para>
       <para>
        This does not interfere with the normal exit codes used by the
        program, and generates a signal that can be caught by the caller.
       </para>
      </listitem>
      <listitem>
       <para>
        Fix a libpq memory leak by freeing client encoding connection
        parameters (Peter Eisentraut)
       </para>
      </listitem>
     </itemizedlist>

   </sect3>

   <sect3>
    <title>Source Code</title>

     <itemizedlist>

      <listitem>
       <para>
        Add support for building with <link linkend="install-windows">MS
        Visual Studio 2010</link> (Brar Piening)
        Enable compiling with the MinGW-w64 32-bit compiler (Lars Kanis)
        Install <filename>plpgsql.h</> into <filename>include/server</> during installation
        (Heikki Linnakangas)
       </para>
      </listitem>
      <listitem>
       <para>
        Use C flexible array members, where supported (Peter Eisentraut)
       </para>
      </listitem>
      <listitem>
       <para>
        Improve the concurrent transaction regression tests
        (isolationtester) (Noah Misch)
      <listitem>
       <para>
        Modify <application>thread_test</> to create its test files in
        the current directory, rather than /tmp (Bruce Momjian)
       </para>
      </listitem>
        Improve flex and bison warning and error reporting (Tom Lane)
      <listitem>
       <para>
        Add memory barrier support (Robert Haas)
       </para>
        This is currently unused.
      <listitem>
       <para>
        Modify pgindent to use a typedef file (Bruce Momjian)
       </para>
      </listitem>
      <listitem>
       <para>
        Add a hook for processing messages due to be sent to the server
      <listitem>
       <para>
        Add object access hooks for <command>DROP</command> commands
        (KaiGai Kohei)
       </para>
      </listitem>
      <listitem>
       <para>
        Centralize <command>DROP</command> handling for some object types
        (KaiGai Kohei)
       </para>
      </listitem>
      <listitem>
       <para>
        Add a <application>pg_upgrade</> test suite (Peter Eisentraut)
       </para>
      </listitem>
      <listitem>
       <para>
        Sync regular expression code with <acronym>TCL</acronym> 8.5.11
        and improve internal processing (Tom Lane)
       </para>
      </listitem>
      <listitem>
       <para>
        Move <acronym>CRC</acronym> tables to libpgport, and provide them
        in a separate include file (Daniel Farina)
      <listitem>
       <para>
        Add options to <application>git_changelog</> for use in major
        release note creation (Bruce Momjian)
       </para>
      </listitem>
      <listitem>
       <para>
        Remove dead ports (Peter Eisentraut)
       </para>
       <para>
        The removed ports are: dgux, nextstep, sunos4, svr4, ultrix4,
        univel, bsdi.
       </para>
      </listitem>
     </itemizedlist>

   </sect3>

   <sect3>
    <title>Modules</title>

    <itemizedlist>

      <listitem>
       <para>
        Improve efficiency of <link linkend="dblink">dblink</link> by
        using libpq's new row processor <acronym>API</acronym> (Kyotaro
       <para>
        This cannot be used by
        <function>dblink_send_query()</>/<function>dblink_get_result()</>.
       </para>
      </listitem>
      <listitem>
       <para>
        Add <link linkend="tcn">tcn</link> (triggered change notification)
        to generate <command>NOTIFY</command> events on table changes
        (Kevin Grittner)
       </para>
      </listitem>
      <listitem>
       <para>
        Implement dry-run mode for <link
        linkend="pgarchivecleanup"><application>pg_archivecleanup</></link>
       <para>
        This only outputs the names of files to be deleted.
       </para>
      </listitem>
        Add new <link linkend="pgbench">pgbench</link> switches
        <option>--unlogged-tables</>, <option>--tablespace</>, and
        <option>--index-tablespace</> (Robert Haas)
       </para>
      </listitem>
      <listitem>
       <para>
        Have <link linkend="vacuumlo">vacuumlo</link> remove large objects
        in batches, to reduce locking (Tim Lewis, Tom Lane)
       </para>

       <para>
        The new <option>-l</> option allows changing the number of large
        objects removed per transaction.
       </para>
      </listitem>
      <listitem>
       <para>
        Change <link
        linkend="pgtestfsync"><application>pg_test_fsync</></link> to test
        for a fixed amount of time, rather than a fixed number of cycles
        (Bruce Momjian)
       </para>
       <para>
        The <option>-o</>/cycles option was removed, and
        <option>-s</>/seconds added.
       </para>
      </listitem>
      <listitem>
       <para>
        Add a <link
        linkend="pgtesttiming"><application>pg_test_timing</></link>
        utility to measure clock monotonicity and timing overhead (Ants
        Aasma, Greg Smith)
       </para>
      </listitem>
    </itemizedlist>

    <sect4>
     <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>

     <itemizedlist>

      <listitem>
       <para>
        Allow <application>pg_upgrade</> to upgrade an old cluster that
        does not have a <literal>postgres</> database (Bruce Momjian)
       </para>
      </listitem>
      <listitem>
       <para>
        Allow <application>pg_upgrade</> to handle cases where some
        old or new databases are missing, as long as they are empty
        (Bruce Momjian)
       </para>
      </listitem>
      <listitem>
       <para>
        Allow <application>pg_upgrade</> to handle configuration-only
        directory installations (Bruce Momjian)
       </para>
      </listitem>
      <listitem>
       <para>
        In <application>pg_upgrade</>, add <option>-o</>/<option>-O</>
        options to pass parameters to the servers (Bruce Momjian)
       </para>
       <para>
        This is useful for configuration-only directory installs.
       </para>
      </listitem>
      <listitem>
       <para>
        Change <application>pg_upgrade</> to use port 50432 by default
        (Bruce Momjian)
       </para>
       <para>
        This helps avoid unintended client connections during the upgrade.
       </para>
      </listitem>

      <listitem>
       <para>
        Overhaul <application>pg_upgrade</> logging and failure reporting
        (Bruce Momjian)
       </para>
       <para>
        Create four append-only log files, and delete them on success.
        Add <option>-r</>/<option>--retain</> option to unconditionally
        retain these files.  Also remove <application>pg_upgrade</> options
        <option>-g</>/<option>-G</>/<option>-l</> options as unnecessary,
        and tighten log file permissions.
       </para>
      </listitem>
      <listitem>
       <para>
        Adjust <application>pg_upgrade</> environment variables (Bruce
        Momjian)
       </para>
       <para>
        Rename data, bin, and port environment
        variables to begin with <literal>PG</>, and support
        <envar>PGPORTOLD</envar>/<envar>PGPORTNEW</envar>, to replace
        <envar>PGPORT</envar>.  INCOMPATIBILITY?
       </para>
      </listitem>
      <listitem>
       <para>
        Have <application>pg_upgrade</> create a script to incrementally
        generate more accurate optimizer statistics (Bruce Momjian)
       </para>
       <para>
        This reduces the time needed to generate minimal cluster statistics
        after an upgrade.
       </para>
      </listitem>
      <listitem>
       <para>
        Reduce cluster locking in <application>pg_upgrade</> (Bruce
        Momjian)
       </para>
       <para>
        Specifically, only lock the old cluster if link mode is used,
        and do it right after the schema is restored.
    </itemizedlist>

    </sect4>

    <sect4>
     <title><link linkend="pgstatstatements"><application>pg_stat_statements</></link></title>

     <itemizedlist>

      <listitem>
       <para>
        Improve <application>pg_stat_statements</> to aggregate similar
        queries (Peter Geoghegan, Tom Lane)
        Add dirtied and written block counts to
        <application>pg_stat_statements</> (Robert Haas)
        Improve <application>pg_stat_statements</>' handling of
        <command>PREPARE</command>/<command>EXECUTE</command> statements
        (Tom Lane)
    </itemizedlist>

    </sect4>

    <sect4>
     <title><link linkend="sepgsql">sepgsql</link></title>

     <itemizedlist>
      <listitem>
       <para>
        Support <literal>SECURITY LABEL</> on global objects (KaiGai
        Kohei, Robert Haas)
       <para>
        Specifically, add <literal>SECURITY LABEL</>s to databases,
        tablespaces, and roles.
       </para>
      </listitem>
      <listitem>
       <para>
        Allow sepgsql to honor database labels (KaiGai Kohei)
       </para>
      </listitem>
      <listitem>
       <para>
        Perform sepgsql permission checks during the creation of various
      <listitem>
       <para>
        Add <function>sepgsql_setcon()</> and related functions to control
        the sepgsql security domain (KaiGai Kohei)
      <listitem>
       <para>
        Add a userspace access cache to sepgsql to improve performance
        (KaiGai Kohei)
       </para>
      </listitem>
     </itemizedlist>
    </sect4>

   </sect3>

   <sect3>
    <title>Documentation</title>

    <itemizedlist>

      <listitem>
       <para>
        Add a rule to optionally build docs with the stylesheet from the
        website (Magnus Hagander)
       </para>
       <para>
        Use <command>make STYLE=website draft</>.
       </para>
      </listitem>
      <listitem>
       <para>
        Improve <command>EXPLAIN</command> documentation (Tom Lane)
       </para>
      </listitem>
      <listitem>
       <para>
        Document that user/database names are preserved with double-quoting
        by command-line tools like <application>vacuumdb</>  (Bruce
        Momjian)
       </para>
      </listitem>
      <listitem>
       <para>
        Improve the foreign data wrapper <acronym>API</acronym> and
        documentation (Hanada Shigeru)
      <listitem>
       <para>
        Document the actual string returned by the client for MD5
        authentication (Cyan Ogilvie)
       </para>
      </listitem>