Skip to content
Snippets Groups Projects
release-9.2.sgml 299 KiB
Newer Older
        information (Tom Lane)
       </para>

       <para>
        The dependency links included in archive-format dumps were formerly
        of very limited use, because they frequently referenced objects that
        appeared nowhere in the dump.  Now they represent actual dependencies
        (possibly indirect) among the dumped objects.
       </para>
      </listitem>

      <listitem>
       <para>
        Improve <application>pg_dump</>'s performance when dumping many
        database objects (Tom Lane)
       </para>
      </listitem>

     </itemizedlist>

    </sect4>

   </sect3>

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

     <itemizedlist>

      <listitem>
       <para>
        Allow <application>libpq</> connection strings to have the format of a
        <link linkend="libpq-connstring"><acronym>URI</acronym></link>
        (Alexander Shulgin)
        The syntax begins with <literal>postgres://</>.  This can allow
        applications to avoid implementing their own parser for URIs
        representing database connections.
        Add a <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>
        Add a <link linkend="libpq-single-row-mode">single-row processing
        mode</link> for better handling of large result sets
        (Kyotaro Horiguchi, Marko Kreen)
        Previously, <application>libpq</> always collected the entire query
        result in memory before passing it back to the application.
        Add <literal>const</> qualifiers to the declarations of the functions
        <function>PQconnectdbParams</>, <function>PQconnectStartParams</>,
        and <function>PQpingParams</> (Lionel Elie Mamane)
        Allow the <filename>.pgpass</> file to include escaped characters
        in the password field (Robert Haas)
        Make library functions use <function>abort()</> instead of
        <function>exit()</> when it is necessary to terminate the process
        (Peter Eisentraut)
        This choice 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>
     </itemizedlist>

   </sect3>

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

     <itemizedlist>

      <listitem>
       <para>
        Remove dead ports (Peter Eisentraut)
       </para>

       <para>
        The following platforms are no longer supported: dgux,
        nextstep, sunos4, svr4, ultrix4, univel, bsdi.
       </para>
      </listitem>

      <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>
        Improve the latch facility to include detection of postmaster death
        (Peter Geoghegan, Heikki Linnakangas, Tom Lane)
       </para>

       <para>
        This eliminates one of the main reasons that background processes
        formerly had to wake up to poll for events.
       </para>
      </listitem>

      <listitem>
       <para>
        Use C flexible array members, where supported (Peter Eisentraut)
       </para>
      </listitem>
      <listitem>
       <para>
        Improve the concurrent transaction regression tests
        (<application>isolationtester</>) (Noah Misch)
      <listitem>
       <para>
        Modify <application>thread_test</> to create its test files in
        the current directory, rather than <filename>/tmp</> (Bruce Momjian)
        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>
        Support Linux's <filename>/proc/self/oom_score_adj</> API (Tom Lane)
    <title>Additional Modules</title>
        Improve efficiency of <link linkend="dblink">dblink</link> by using
        libpq's new single-row processing mode (Kyotaro Horiguchi, Marko
        Kreen)
        This improvement does not apply to
        <function>dblink_send_query()</>/<function>dblink_get_result()</>.
       </para>
      </listitem>
        Support <literal>force_not_null</> option in <link
        linkend="file-fdw">file_fdw</link> (Shigeru Hanada)
      <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>
        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>
      <listitem>
       <para>
        Add a <link linkend="tcn">tcn</link> (triggered change notification)
        module to generate <command>NOTIFY</command> events on table changes
        (Kevin Grittner)
       </para>
      </listitem>

    </itemizedlist>

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

     <itemizedlist>

      <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>.
        Overhaul <application>pg_upgrade</> logging and failure reporting
        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.
        Make <application>pg_upgrade</> create a script to incrementally
        generate more accurate optimizer statistics (Bruce Momjian)
        This reduces the time needed to generate minimal cluster statistics
        after an upgrade.
        Allow <application>pg_upgrade</> to upgrade an old cluster that
        does not have a <literal>postgres</> database (Bruce Momjian)
        Allow <application>pg_upgrade</> to handle cases where some
        old or new databases are missing, as long as they are empty
        Allow <application>pg_upgrade</> to handle configuration-only
        directory installations (Bruce Momjian)
        In <application>pg_upgrade</>, add <option>-o</>/<option>-O</>
        options to pass parameters to the servers (Bruce Momjian)
        This is useful for configuration-only directory installs.
        Change <application>pg_upgrade</> to use port 50432 by default
        (Bruce Momjian)
        This helps avoid unintended client connections during the upgrade.
      <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>
        Allow <application>pg_stat_statements</> to aggregate similar
        queries via SQL text normalization (Peter Geoghegan, Tom Lane)
       </para>

       <para>
        Users with applications that use non-parameterized SQL will now
        be able to monitor query performance without detailed log analysis.
        Add dirtied and written block counts and read/write times to
        <application>pg_stat_statements</> (Robert Haas, Ants Aasma)
        Prevent <application>pg_stat_statements</> from double-counting
        <command>PREPARE</command> and <command>EXECUTE</command> commands
    </itemizedlist>

    </sect4>

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

     <itemizedlist>
      <listitem>
       <para>
        Support <literal>SECURITY LABEL</> on global objects (KaiGai
        Kohei, Robert Haas)
        Specifically, add security labels 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)
        Add a user space 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 HTML documentation using the
        stylesheet from the website (Magnus Hagander)
        Use <command>gmake STYLE=website draft</>.
      <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>
        Document the actual string returned by the client for MD5
        authentication (Cyan Ogilvie)
       </para>
      </listitem>
      <listitem>
       <para>
        Deprecate use of <literal>GLOBAL</> and <literal>LOCAL</> in
        <command>CREATE TEMP TABLE</> (Noah Misch)
       </para>

       <para>
        <productname>PostgreSQL</> has long treated these keyword as no-ops,
        and continues to do so; but in future they might mean what the SQL
        standard says they mean, so applications should avoid using them.
       </para>
      </listitem>