⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 release.sgml

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 SGML
📖 第 1 页 / 共 5 页
字号:
   <sect1 id="release-8-1-1">   <title>Release 8.1.1</title>   <note>   <title>Release date</title>   <simpara>2005-12-12</simpara>   </note>   <para>    This release contains a variety of fixes from 8.1.0.   </para>   <sect2>    <title>Migration to version 8.1.1</title>    <para>     A dump/restore is not required for those running 8.1.X.    </para>   </sect2>   <sect2>    <title>Changes</title><itemizedlist><listitem><para>Fix incorrect optimizations of outer-join conditions(Tom)</para></listitem><listitem><para>Fix problems with wrong reported column names in casesinvolving sub-selects flattened by the optimizer (Tom)</para></listitem><listitem><para>Fix update failures in scenarios involving CHECK constraints,toasted columns, <emphasis>and</> indexes (Tom)</para></listitem><listitem><para>Fix bgwriter problems after recovering from errors(Tom)</para><para>The background writer was found to leak buffer pins after write errors.While not fatal in itself, this might lead to mysterious blockages oflater VACUUM commands.</para></listitem><listitem><para>Prevent failure if client sends Bind protocol messagewhen current transaction is already aborted</para></listitem><listitem><para><filename>/contrib/tsearch2</> and <filename>/contrib/ltree</>fixes (Teodor)</para></listitem><listitem><para>Fix problems with translated error messages inlanguages that require word reordering, such as Turkish; also problems withunexpected truncation of output strings and wrong display of the smallestpossible bigint value (Andrew, Tom)</para><para>These problems only appeared on platforms that were using our<filename>port/snprintf.c</> code, which includes BSD variants if<literal>--enable-nls</> was given, and perhaps others.  In addition,a different form of the translated-error-message problem could appearon Windows depending on which version of <filename>libintl</> was used.</para></listitem><listitem><para>Re-allow <literal>AM</>/<literal>PM</>, <literal>HH</>,<literal>HH12</>, and <literal>D</> format specifiers for<function>to_char(time)</> and <function>to_char(interval)</>.(<function>to_char(interval)</> should probably use<literal>HH24</>.) (Bruce)</para></listitem><listitem><para>AIX, HPUX, and MSVC compile fixes (Tom, Hiroshi Saito)</para></listitem><listitem><para>Optimizer improvements (Tom)</para></listitem><listitem><para>Retry file reads and writes after WindowsNO_SYSTEM_RESOURCES error (Qingqing Zhou)</para></listitem><listitem><para>Prevent <application>autovacuum</> from crashing duringANALYZE of expression index (Alvaro)</para></listitem><listitem><para>Fix problems with ON COMMIT DELETE ROWS temptables</para></listitem><listitem><para>Fix problems when a trigger alters the output of a SELECTDISTINCT query</para></listitem><listitem><para>Add 8.1.0 release note item on how to migrate invalid<literal>UTF-8</> byte sequences (Paul Lindner)</para></listitem></itemizedlist>   </sect2>  </sect1>   <sect1 id="release-8-1">   <title>Release 8.1</title>   <note>    <title>Release date</title>    <simpara>2005-11-08</simpara>   </note>   <sect2>    <title>Overview</title>     <para>     Major changes in this release:    </para>    <variablelist>     <varlistentry>      <term>       Improve concurrent access to the shared buffer cache (Tom)      </term>      <listitem>       <para>        Access to the shared buffer cache was identified as a        significant scalability problem, particularly on multi-CPU        systems. In this release, the way that locking is done in the        buffer manager has been overhauled to reduce lock contention        and improve scalability. The buffer manager has also been        changed to use a <quote>clock sweep</quote> replacement        policy.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Allow index scans to use an intermediate in-memory bitmap (Tom)      </term>      <listitem>       <para>        In previous releases, only a single index could be used to do        lookups on a table. With this feature, if a query has        <command>WHERE tab.col1 = 4 and tab.col2 = 9</>, and there is        no multicolumn index on <literal>col1</> and <literal>col2</>,        but there is an index on <literal>col1</> and another on        <literal>col2</>, it is possible to search both indexes and        combine the results in memory, then do heap fetches for only        the rows matching both the <literal>col1</> and        <literal>col2</> restrictions. This is very useful in        environments that have a lot of unstructured queries where it        is impossible to create indexes that match all possible access        conditions.  Bitmap scans are useful even with a single index,        as they reduce the amount of random access needed; a bitmap        index scan is efficient for retrieving fairly large fractions        of the complete table, whereas plain index scans are not.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Add two-phase commit (Heikki Linnakangas, Alvaro, Tom)      </term>            <listitem>       <para>        Two-phase commit allows transactions to be "prepared" on several        computers, and once all computers have successfully prepared        their transactions (none failed), all transactions can be        committed. Even if a machine crashes after a prepare, the        prepared transaction can be committed after the machine is        restarted. New syntax includes <command>PREPARE TRANSACTION</> and        <command>COMMIT/ROLLBACK PREPARED</>. A new system view        <literal>pg_prepared_xacts</> has also been added.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Create a new role system that replaces users and groups        (Stephen Frost)      </term>      <listitem>       <para>        Roles are a combination of users and groups. Like users, they        can have login capability, and like groups, a role can have        other roles as members. Roles basically remove the distinction        between users and groups. For example, a role can:       </para>       <itemizedlist>          <listitem>         <para>           Have login capability (optionally)         </para>        </listitem>        <listitem>         <para>          Own objects         </para>        </listitem>        <listitem>         <para>          Hold access permissions for database objects         </para>        </listitem>        <listitem>         <para>          Inherit permissions from other roles it is a member of         </para>        </listitem>       </itemizedlist>       <para>        Once a user logs into a role, she obtains capabilities of        the login role plus any inherited roles, and can use        <command>SET ROLE</> to switch to other roles she is a member of.        This feature is a generalization of the SQL standard's concept of        roles.        This change also replaces <structname>pg_shadow</> and         <structname>pg_group</> by new role-capable catalogs         <structname>pg_authid</> and <structname>pg_auth_members</>. The old        tables are redefined as read-only views on the new role tables.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Automatically use indexes for <function>MIN()</> and       <function>MAX()</> (Tom)      </term>       <listitem>       <para>        In previous releases, the only way to use an index for        <function>MIN()</> or <function>MAX()</> was to rewrite the        query as <command>SELECT col FROM tab ORDER BY col LIMIT 1</>.        Index usage now happens automatically.       </para>       </listitem>     </varlistentry>     <varlistentry>      <term>       Move <filename>/contrib/pg_autovacuum</> into the main server       (Alvaro)      </term>      <listitem>       <para>        Integrating autovacuum into the server allows it to be        automatically started and stopped in sync with the database        server, and allows autovacuum to be configured from        <filename>postgresql.conf</>.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Add shared row level locks using <command>SELECT ... FOR SHARE</>       (Alvaro)      </term>      <listitem>       <para>        While <productname>PostgreSQL</productname>'s MVCC locking        allows <command>SELECT</> to never be blocked by writers and        therefore does not need shared row locks for typical operations,        shared locks are useful for applications that require shared row        locking.  In particular this reduces the locking requirements        imposed by referential integrity checks.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Add dependencies on shared objects, specifically roles       (Alvaro)      </term>      <listitem>       <para>        This extension of the dependency mechanism prevents roles from        being dropped while there are still database objects they own.        Formerly it was possible to accidentally <quote>orphan</> objects by        deleting their owner.  While this could be recovered from, it        was messy and unpleasant.       </para>      </listitem>     </varlistentry>     <varlistentry>      <term>       Improve performance for partitioned tables (Simon)      </term>      <listitem>       <para>        The new <varname>constraint_exclusion</varname> configuration        parameter avoids lookups on child tables where constraints indicate        that no matching rows exist in the child table.       </para>       <para>        This allows for a basic type of table partitioning. If child tables        store separate key ranges and this is enforced using appropriate        <command>CHECK</> constraints, the optimizer will skip child        table accesses when the constraint guarantees no matching rows        exist in the child table.       </para>      </listitem>     </varlistentry>    </variablelist>   </sect2>    <sect2>    <title>Migration to version 8.1</title>                                           <para>     A dump/restore using <application>pg_dump</application> is required     for those wishing to migrate data from any previous release.    </para>        <para>     The 8.0 release announced that the <function>to_char()</> function     for intervals would be removed in 8.1. However, since no better API     has been suggested, <function>to_char(interval)</> has been enhanced in     8.1 and will remain in the server.    </para>    <para>     Observe the following incompatibilities:    </para>    <itemizedlist>     <listitem>      <para>       <varname>add_missing_from</> is now false by default (Neil)      </para>      <para>       By default, we now generate an error if a table is used in a query       without a <literal>FROM</> reference.  The old behavior is still       available, but the parameter must be set to 'true' to obtain it.      </para>      <para>       It may be necessary to set <varname>add_missing_from</> to true       in order to load an existing dump file, if the dump contains any       views or rules created using the implicit-<literal>FROM</> syntax.       This should be a one-time annoyance, because       <productname>PostgreSQL</productname> 8.1 will convert       such views and rules to standard explicit-<literal>FROM</> syntax.       Subsequent dumps will therefore not have the problem.      </para>     </listitem>     <listitem>      <para>       Cause input of a zero-length string (<literal>''</literal>) for       <type>float4</type>/<type>float8</type>/<type>oid</type>       to throw an error, rather than treating it as a zero (Neil)      </para>      <para>       This change is consistent with the current handling of       zero-length strings for integers. The schedule for this change       was announced in 8.0.      </para>     </listitem>     <listitem>      <para>       <varname>default_with_oids</> is now false by default (Neil)      </para>      <para>       With this option set to false, user-created tables no longer       have an OID column unless <command>WITH OIDS</> is specified in       <command>CREATE TABLE</>. Though OIDs have existed in all       releases of <productname>PostgreSQL</>, their use is limited       because they are only four bytes long and the counter is shared       across all installed databases. The preferred way of uniquely       identifying rows is via sequences and the <type>SERIAL</> type,       which have been supported since <productname>PostgreSQL</> 6.4.      </para>     </listitem>     <listitem>      <para>       Add <literal>E''</> syntax so eventually ordinary strings can       treat backslashes literally (Bruce)      </para>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -