Change logs for postgresql-8.3 source package in Intrepid

  • postgresql-8.3 (8.3.9-0ubuntu8.10) intrepid-security; urgency=low
    
      * New upstream security/bug fix release: (LP: #496923)
        - Protect against indirect security threats caused by index functions
          changing session-local state. This change prevents allegedly-immutable
          index functions from possibly subverting a superuser's session
          (CVE-2009-4136).
        - Reject SSL certificates containing an embedded null byte in the
          common name (CN) field. This prevents unintended matching of a
          certificate to a server or client name during SSL validation
          (CVE-2009-4034).
        - Fix possible crash during backend-startup-time cache initialization.
        - Avoid crash on empty thesaurus dictionary.
        - Prevent signals from interrupting VACUUM at unsafe times.
        - Fix possible crash due to integer overflow in hash table size
          calculation.
        - Fix very rare crash in inet/cidr comparisons.
        - Ensure that shared tuple-level locks held by prepared transactions
          are not ignored.
        - Fix premature drop of temporary files used for a cursor that is
          accessed within a subtransaction.
        - Fix memory leak in syslogger process when rotating to a new CSV
          logfile.
        - Fix incorrect logic for GiST index page splits, when the split
          depends on a non-first column of the index.
        - Don't error out if recycling or removing an old WAL file fails at
          the end of checkpoint. It's better to treat the problem as non-fatal and
          allow the checkpoint to complete. Future checkpoints will retry the
          removal.  Such problems are not expected in normal operation, but have
          been seen to be caused by misdesigned Windows anti-virus and backup
          software.
        - Fix PAM password processing to be more robust.
        - Raise the maximum authentication token (Kerberos ticket) size in
          GSSAPI and SSPI authentication methods. While the old 2000-byte limit
          was more than enough for Unix Kerberos implementations, tickets issued
          by Windows Domain Controllers can be much larger.
        - Re-enable collection of access statistics for sequences. This used to
          work but was broken in 8.3.
        - Fix processing of ownership dependencies during CREATE OR REPLACE
          FUNCTION.
        - Fix incorrect handling of WHERE "x"="x" conditions.
          In some cases these could get ignored as redundant, but they aren't
          -- they're equivalent to "x" IS NOT NULL.
        - Make text search parser accept underscores in XML attributes.
        - Fix encoding handling in xml binary input. If the XML header doesn't
          specify an encoding, we now assume UTF-8 by default; the previous
          handling was inconsistent.
        - Fix bug with calling plperl from plperlu or vice versa.
        - Fix session-lifespan memory leak when a PL/Perl function is
          redefined.
        - Ensure that Perl arrays are properly converted to PostgreSQL arrays
          when returned by a set-returning PL/Perl function.
        - Fix rare crash in exception processing in PL/Python.
        - Make the postmaster ignore any application_name parameter in
          connection request packets, to improve compatibility with future
          libpq versions.
     -- Martin Pitt <email address hidden>   Tue, 15 Dec 2009 15:02:52 +0100
  • postgresql-8.3 (8.3.8-0ubuntu8.10) intrepid-security; urgency=low
    
      * New upstream security/bug fix release: (LP: #430544)
        - Disallow "RESET ROLE" and "RESET SESSION AUTHORIZATION" inside
          security-definer functions. This covers a case that was missed in the
          previous patch that disallowed "SET ROLE" and "SET SESSION
          AUTHORIZATION" inside security-definer functions. [CVE-2007-6600]
        - Force WAL segment switch during pg_start_backup(). This avoids corner
          cases that could render a base backup unusable.
        - Make "LOAD" of an already-loaded loadable module into a no-op.
          Formerly, "LOAD" would attempt to unload and re-load the module,
          but this is unsafe and not all that useful.
        - Disallow empty passwords during LDAP authentication.
        - Fix handling of sub-SELECTs appearing in the arguments of an
          outer-level aggregate function.
        - Fix bugs associated with fetching a whole-row value from the output
          of a Sort or Materialize plan node.
        - Prevent synchronize_seqscans from changing the results of
          scrollable and WITH HOLD cursors.
        - Revert planner change that disabled partial-index and constraint
          exclusion optimizations when there were more than 100 clauses in an
          AND or OR list.
        - Fix hash calculation for data type interval. This corrects wrong results
          for hash joins on interval values. It also changes the contents of hash
          indexes on interval columns. If you have any such indexes, you must
          "REINDEX" them after updating.
        - Treat to_char(..., 'TH') as an uppercase ordinal suffix with
          'HH'/'HH12'. It was previously handled as 'th' (lowercase).
        - Fix overflow for INTERVAL 'x ms' when "x" is more than 2 million
          and integer datetimes are in use.
        - Fix calculation of distance between a point and a line segment.
          This led to incorrect results from a number of geometric operators.
        - Fix money data type to work in locales where currency amounts have
          no fractional digits, e.g. Japan.
        - Fix LIKE for case where pattern contains %_.
        - Properly round datetime input like 00:12:57.9999999999999999999999999999.
        - Fix memory leaks in XML operations.
        - Fix poor choice of page split point in GiST R-tree operator classes.
        - Ensure that a "fast shutdown" request will forcibly terminate open
          sessions, even if a "smart shutdown" was already in progress.
        - Avoid performance degradation in bulk inserts into GIN indexes when
          the input values are (nearly) in sorted order.
        - Correctly enforce NOT NULL domain constraints in some contexts in
          PL/pgSQL.
        - Fix portability issues in plperl initialization.
        - Fix pg_ctl to not go into an infinite loop if "postgresql.conf" is
          empty.
        - Improve pg_dump's efficiency when there are many large objects.
        - Use SIGUSR1, not SIGQUIT, as the failover signal for pg_standby.
        - Make pg_standby's maxretries option behave as documented.
        - Make "contrib/hstore" throw an error when a key or value is too
          long to fit in its data structure, rather than silently truncating
          it.
        - Fix "contrib/xml2"'s xslt_process() to properly handle the maximum
          number of parameters (twenty).
        - Improve robustness of libpq's code to recover from errors during
          "COPY FROM STDIN".
    
     -- Martin Pitt <email address hidden>   Wed, 16 Sep 2009 10:45:23 +0200
  • postgresql-8.3 (8.3.7-0ubuntu8.10.1) intrepid-security; urgency=low
    
      * No change rebuild as a security update as this fixes CVE-2009-0922
    
     -- Marc Deslauriers <email address hidden>   Mon, 06 Apr 2009 11:24:43 -0400
  • postgresql-8.3 (8.3.7-0ubuntu8.10) intrepid-proposed; urgency=low
    
      * New upstream bug fix release: (LP: #344688)
        - Prevent error recursion crashes when encoding conversion fails.
          This change extends fixes made in the last two minor releases for
          related failure scenarios. The previous fixes were narrowly
          tailored for the original problem reports, but we have now
          recognized that *any* error thrown by an encoding conversion
          function could potentially lead to infinite recursion while trying
          to report the error. The solution therefore is to disable
          translation and encoding conversion and report the plain-ASCII form
          of any error message, if we find we have gotten into a recursive
          error reporting situation. (Closes: #517405)
        - Disallow "CREATE CONVERSION" with the wrong encodings for the
          specified conversion function. This prevents one possible scenario for
          encoding conversion failure. The previous change is a backstop to guard
          against other kinds of failures in the same area.
        - Fix xpath() to not modify the path expression unless necessary, and
          to make a saner attempt at it when necessary.
          The SQL standard suggests that xpath should work on data that is a
          document fragment, but libxml doesn't support that, and indeed it's
          not clear that this is sensible according to the XPath standard.
          xpath attempted to work around this mismatch by modifying both the
          data and the path expression, but the modification was buggy and
          could cause valid searches to fail. Now, xpath checks whether the
          data is in fact a well-formed document, and if so invokes libxml
          with no change to the data or path expression. Otherwise, a
          different modification method that is somewhat less likely to fail
          is used.
          Note: The new modification method is still not 100% satisfactory,
          and it seems likely that no real solution is possible. This patch
          should therefore be viewed as a band-aid to keep from breaking
          existing applications unnecessarily. It is likely that PostgreSQL
          8.4 will simply reject use of xpath on data that is not a
          well-formed document.
        - Fix core dump when to_char() is given format codes that are
          inappropriate for the type of the data argument.
        - Fix extreme inefficiency in text search parser's handling of an
          email-like string containing multiple @ characters.
        - Fix planner problem with sub-"SELECT" in the output list of a
          larger subquery.
        - Fix decompilation of CASE WHEN with an implicit coercion.
        - Fix possible misassignment of the owner of a TOAST table's rowtype.
          If "CLUSTER" or a rewriting variant of "ALTER TABLE" were executed
          by someone other than the table owner, the pg_type entry for the
          table's TOAST table would end up marked as owned by that someone.
          This caused no immediate problems, since the permissions on the
          TOAST rowtype aren't examined by any ordinary database operation.
          However, it could lead to unexpected failures if one later tried to
          drop the role that issued the command (in 8.1 or 8.2), or "owner of
          data type appears to be invalid" warnings from pg_dump after having
          done so (in 8.3).
        - Change "UNLISTEN" to exit quickly if the current session has never
          executed any "LISTEN" command.
          Most of the time this is not a particularly useful optimization,
          but since "DISCARD ALL" invokes "UNLISTEN", the previous coding
          caused a substantial performance problem for applications that made
          heavy use of "DISCARD ALL".
        - Fix PL/pgSQL to not treat INTO after "INSERT" as an INTO-variables
          clause anywhere in the string, not only at the start; in
          particular, don't fail for "INSERT INTO" within "CREATE RULE".
        - Clean up PL/pgSQL error status variables fully at block exit.
          This is not a problem for PL/pgSQL itself, but the omission could
          cause the PL/pgSQL Debugger to crash while examining the state of a
          function.
        - Add MUST (Mauritius Island Summer Time) to the default list of
          known timezone abbreviations.
    
     -- Martin Pitt <email address hidden>   Wed, 25 Mar 2009 09:02:46 +0100
  • postgresql-8.3 (8.3.6-0ubuntu8.10) intrepid-proposed; urgency=low
    
      * New upstream bug fix release: (LP: #326372)
        - Make "DISCARD ALL" release advisory locks, in addition to
          everything it already did. This was decided to be the most
          appropriate behavior. This could affect existing applications,
          however.
        - Fix whole-index GiST scans to work correctly.  This error could
          cause rows to be lost if a table is clustered on a GiST index.
        - Fix crash of xmlconcat(NULL).
        - Fix possible crash in ispell dictionary if high-bit-set characters
          are used as flags.  This is known to be done by one widely
          available Norwegian dictionary, and the same condition may exist
          in others. (Closes: #513580)
        - Fix misordering of pg_dump output for composite types.  The most
          likely problem was for user-defined operator classes to be
          dumped after indexes or views that needed them.
        - Improve handling of URLs in headline() function.
        - Improve handling of overlength headlines in headline() function.
        - Prevent possible Assert failure or misconversion if an encoding
          conversion is created with the wrong conversion function for the
          specified pair of encodings.
        - Fix possible Assert failure if a statement executed in PL/pgSQL is
          rewritten into another kind of statement, for example if an
          "INSERT" is rewritten into an "UPDATE".
        - Ensure that a snapshot is available to datatype input functions.
          This primarily affects domains that are declared with CHECK
          constraints involving user-defined stable or immutable functions.
          Such functions typically fail if no snapshot has been set.
        - Make it safer for SPI-using functions to be used within datatype
          I/O; in particular, to be used in domain check constraints.
        - Avoid unnecessary locking of small tables in "VACUUM".
        - Fix a problem that sometimes kept "ALTER TABLE ENABLE/DISABLE RULE"
          from being recognized by active sessions.
        - Fix a problem that made UPDATE RETURNING tableoid return zero
          instead of the correct OID.
        - Allow functions declared as taking ANYARRAY to work on the
          pg_statistic columns of that type.
          This used to work, but was unintentionally broken in 8.3.
        - Fix planner misestimation of selectivity when transitive equality
          is applied to an outer-join clause.
          This could result in bad plans for queries like ... from a left
          join b on a.a1 = b.b1 where a.a1 = 42 ...
        - Improve optimizer's handling of long IN lists.  This change
          avoids wasting large amounts of time on such lists when
          constraint exclusion is enabled.
        - Prevent synchronous scan during GIN index build.  Because GIN is
          optimized for inserting tuples in increasing TID order, choosing
          to use a synchronous scan could slow the build by a factor of
          three or more.
        - Ensure that the contents of a holdable cursor don't depend on the
          contents of TOAST tables.  Previously, large field values in a
          cursor result might be represented as TOAST pointers, which
          would fail if the referenced table got dropped before the cursor
          is read, or if the large value is deleted and then vacuumed
          away. This cannot happen with an ordinary cursor, but it could
          with a cursor that is held past its creating transaction.
        - Fix memory leak when a set-returning function is terminated without
          reading its whole result.
        - Fix encoding conversion problems in XML functions when the database
          encoding isn't UTF-8.
        - Fix "contrib/dblink"'s dblink_get_result(text,bool) function.
        - Fix possible garbage output from "contrib/sslinfo" functions.
        - Fix incorrect behavior of "contrib/tsearch2" compatibility trigger
          when it's fired more than once in a command.
        - Fix possible mis-signaling in autovacuum.
        - Fix ecpg's handling of varchar structs.
        - Make all documentation reference pgsql-bugs and/or pgsql-hackers as
          appropriate, instead of the now-decommissioned pgsql-ports and
          pgsql-patches mailing lists.
    
     -- Martin Pitt <email address hidden>   Fri, 06 Feb 2009 23:44:54 +0100
  • postgresql-8.3 (8.3.5-0ubuntu8.10) intrepid-proposed; urgency=low
    
      * New upstream bug fix release: (LP: #293758)
        - Fix GiST index corruption due to marking the wrong index entry
          "dead" after a deletion. This would result in index searches failing to
          find rows they should have found.
        - Fix backend crash when the client encoding cannot represent a
          localized error message.
        - Fix possible crash in bytea-to-XML mapping.
        - Fix possible crash when deeply nested functions are invoked from a
          trigger.
        - Improve optimization of "expression" IN ("expression-list") queries.
        - Fix mis-expansion of rule queries when a sub-SELECT appears in a
          function call in FROM, a multi-row VALUES list, or a RETURNING list.
        - Fix Assert failure during rescan of an IS NULL search of a GiST
          index.
        - Fix memory leak during rescan of a hashed aggregation plan.
        - Ensure an error is reported when a newly-defined PL/pgSQL trigger
          function is invoked as a normal function.
        - Force a checkpoint before "CREATE DATABASE" starts to copy files.
          This prevents a possible failure if files had recently been deleted
          in the source database.
        - Prevent possible collision of relfilenode numbers when moving a
          table to another tablespace with "ALTER SET TABLESPACE". The command
          tried to re-use the existing filename, instead of picking one that is
          known unused in the destination directory.
        - Fix incorrect text search headline generation when single query
          item matches first word of text.
        - Fix improper display of fractional seconds in interval values when
          using a non-ISO datestyle.
        - Make ILIKE compare characters case-insensitively even when they're
          escaped.
        - Ensure "DISCARD" is handled properly by statement logging.
        - Fix incorrect logging of last-completed-transaction time during
          PITR recovery.
        - Ensure SPI_getvalue and SPI_getbinval behave correctly when the
          passed tuple and tuple descriptor have different numbers of columns.
          This situation is normal when a table has had columns added or
          removed, but these two functions didn't handle it properly. The
          only likely consequence is an incorrect error indication.
        - Mark SessionReplicationRole as PGDLLIMPORT so it can be used by
          Slony on Windows.
        - Fix small memory leak when using libpq's gsslib parameter.
          The space used by the parameter string was not freed at connection
          close.
        - Ensure libgssapi is linked into libpq if needed.
        - Fix ecpg's parsing of "CREATE ROLE".
        - Fix recent breakage of pg_ctl restart.
      * 03-gettext-domains.patch: Unfuzz for new upstream version.
    
     -- Martin Pitt <email address hidden>   Tue, 04 Nov 2008 20:32:37 +0100
  • postgresql-8.3 (8.3.4-2.2) intrepid; urgency=low
    
      * debian/control: Add explicit dependency to locales, to ensure that the
        locales package is configured before postgresql-8.3. Otherwise, the server
        fails to start up when locales is unpacked while postgresql-8.3 is
        configured. (LP: #280135)
    
     -- Martin Pitt <email address hidden>   Sun, 19 Oct 2008 15:31:07 +0200
  • postgresql-8.3 (8.3.4-2.1) intrepid; urgency=low
    
      * Drop -contrib's libdbd-pg-perl to Suggests:, since it is only really
        needed for bench.pl of the _int module. Changed description to point that
        out.
    
     -- Martin Pitt <email address hidden>   Fri, 17 Oct 2008 18:39:14 +0200
  • postgresql-8.3 (8.3.4-2) unstable; urgency=medium
    
      * Urgency medium due to RC bug fix (breaks upgrades).
      * Add dependency to ssl-cert. This has always been implicitly there through
        postgresql-common, but when upgrading -8.3 and ssl-cert at the same time,
        apt does not ensure to configure ssl-cert before postgresql-8.3 if there
        is no direct dependency. (Closes: #501690)
      * debian/rules: Enable hardening when we build on Ubuntu. Lenny is too close
        to release, so we do not enable that yet for Debian. Add hardening-wrapper
        and lsb-release build dependencies for this.
    
     -- Martin Pitt <email address hidden>   Sat, 11 Oct 2008 14:28:34 +0200
  • postgresql-8.3 (8.3.4-1ubuntu1) intrepid; urgency=low
    
      * Upload current Debian bzr head to intrepid to get back in sync with
        Debian.
      * debian/rules: Enable hardening when we build on Ubuntu. Lenny is too close
        to release, so we do not enable that yet for Debian. Add hardening-wrapper
        and lsb-release build dependencies for this.
    
    postgresql-8.3 (8.3.4-1) unstable; urgency=low
    
      * New upstream bugfix release:
        - Fix bug in btree WAL recovery code. Recovery failed if the WAL ended
          partway through a page split operation.
        - Fix potential use of wrong cutoff XID for HOT page pruning.
          This error created a risk of corruption in system catalogs that are
          consulted by "VACUUM": dead tuple versions might be removed too
          soon. The impact of this on actual database operations would be
          minimal, since the system doesn't follow MVCC rules while examining
          catalogs, but it might result in transiently wrong output from
          pg_dump or other client programs.
        - Fix potential miscalculation of datfrozenxid.
        - Fix incorrect HOT updates after pg_class is reindexed.
          Corruption of pg_class could occur if REINDEX TABLE pg_class was
          followed in the same session by an ALTER TABLE RENAME or ALTER
          TABLE SET SCHEMA command.
        - Fix missed "combo cid" case. This error made rows incorrectly invisible
          to a transaction in which they had been deleted by multiple
          subtransactions that all aborted.
        - Prevent autovacuum from crashing if the table it's currently
          checking is deleted at just the wrong time.
        - Widen local lock counters from 32 to 64 bits. This responds to reports
          that the counters could overflow in sufficiently long transactions,
          leading to unexpected "lock is already held" errors.
        - Fix possible duplicate output of tuples during a GiST index scan.
        - Regenerate foreign key checking queries from scratch when either
          table is modified. Previously, 8.3 would attempt to replan the query,
          but would work from previously generated query text. This led to
          failures if a table or column was renamed.
        - Fix missed permissions checks when a view contains a simple UNION
          ALL construct. Permissions for the referenced tables were checked
          properly, but not permissions for the view itself.
        - Add checks in executor startup to ensure that the tuples produced
          by an "INSERT" or "UPDATE" will match the target table's current
          rowtype. This situation is believed to be impossible in 8.3, but it can
          happen in prior releases, so a check seems prudent.
        - Fix possible repeated drops during "DROP OWNED". This would typically
          result in strange errors such as "cache lookup failed for relation NNN".
        - Fix several memory leaks in XML operations.
        - Fix xmlserialize() to raise error properly for unacceptable target
          data type.
        - Fix a couple of places that mis-handled multibyte characters in
          text search configuration file parsing. Certain characters occurring in
          configuration files would always cause "invalid byte sequence for
          encoding" failures.
        - Provide file name and line number location for all errors reported
          in text search configuration files.
        - Fix AT TIME ZONE to first try to interpret its timezone argument as
          a timezone abbreviation, and only try it as a full timezone name if
          that fails, rather than the other way around as formerly.
        - Fix datetime input functions to correctly detect integer overflow
          when running on a 64-bit platform.
        - Prevent integer overflows during units conversion when displaying a
          configuration parameter that has units.
        - Improve performance of writing very long log messages to syslog.
        - Allow spaces in the suffix part of an LDAP URL in "pg_hba.conf".
        - Fix bug in backwards scanning of a cursor on a SELECT DISTINCT ON
          query.
        - Fix planner bug that could improperly push down IS NULL tests below
          an outer join.
        - Fix planner bug with nested sub-select expressions.
        - Fix planner to estimate that GROUP BY expressions yielding boolean
          results always result in two groups, regardless of the expressions'
          contents.
        - Fix PL/PgSQL to not fail when a FOR loop's target variable is a
          record containing composite-type fields.
        - Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
          about the encoding of data sent to or from Tcl.
        - Improve performance of PQescapeBytea().
        - Fix ecpg to handle variables properly in "SET" commands.
        - Improve pg_dump and pg_restore's error reporting after failure to
          send a SQL command.
        - Fix pg_ctl to properly preserve postmaster command-line arguments
          across a restart.
        - Fix erroneous WAL file cutoff point calculation in pg_standby.
      * debian/control: Bump Standards-Version (no changes necessary).
      * debian/control: intarray contrib module was renamed to _int. (LP: #250483)
    
     -- Martin Pitt <email address hidden>   Tue, 07 Oct 2008 14:57:53 +0200
  • postgresql-8.3 (8.3.3-1ubuntu1) intrepid; urgency=low
    
      * debian/{control,rules}: enable PIE hardening
    
     -- Kees Cook <email address hidden>   Wed, 20 Aug 2008 15:55:29 -0700
  • postgresql-8.3 (8.3.3-1) unstable; urgency=low
    
      * New upstream bugfix release (note that 8.3.2 was never officially released
        due to the discovery of another major bug):
        - Make pg_get_ruledef() parenthesize negative constants.
          Before this fix, a negative constant in a view or rule might be
          dumped as, say, -42::integer, which is subtly incorrect: it should
          be (-42)::integer due to operator precedence rules. Usually this
          would make little difference, but it could interact with another
          recent patch to cause PostgreSQL to reject what had been a valid
          "SELECT DISTINCT" view query. Since this could result in pg_dump
          output failing to reload, it is being treated as a high-priority
          fix. The only released versions in which dump output is actually
          incorrect are 8.3.1 and 8.2.7.
        - Make "ALTER AGGREGATE ... OWNER TO" update pg_shdepend.
          This oversight could lead to problems if the aggregate was later
          involved in a "DROP OWNED" or "REASSIGN OWNED" operation.
        - Fix incorrect archive truncation point calculation for the %r macro
          in recovery_command parameters. This could lead to data loss if a
          warm-standby script relied on %r to decide when to throw away WAL
          segment files.
        - Fix "ALTER TABLE ADD COLUMN ... PRIMARY KEY" so that the new column
          is correctly checked to see if it's been initialized to all
          non-nulls.
        - Fix "REASSIGN OWNED" so that it works on procedural languages too.
        - Fix problems with "SELECT FOR UPDATE/SHARE" occurring as a subquery
          in a query with a non-"SELECT" top-level operation.
        - Fix possible "CREATE TABLE" failure when inheriting the "same"
          constraint from multiple parent relations that inherited that
          constraint from a common ancestor.
        - Fix pg_get_ruledef() to show the alias, if any, attached to the
          target table of an "UPDATE" or "DELETE".
        - Restore the pre-8.3 behavior that an out-of-range block number in a
          TID being used in a TidScan plan results in silently not matching
          any rows. 8.3.0 and 8.3.1 threw an error instead.
        - Fix GIN bug that could result in a too many LWLocks taken failure.
        - Fix broken GiST comparison function for tsquery.
        - Fix tsvector_update_trigger() and ts_stat() to accept domains over
          the types they expect to work with.
        - Fix failure to support enum data types as foreign keys.
        - Avoid possible crash when decompressing corrupted data.
        - Fix race conditions between delayed unlinks and "DROP DATABASE".
          In the worst case this could result in deleting a newly created
          table in a new database that happened to get the same OID as the
          recently-dropped one; but of course that is an extremely
          low-probability scenario.
        - Repair two places where SIGTERM exit of a backend could leave
          corrupted state in shared memory.
        - Fix possible crash due to incorrect plan generated for an x IN
          (SELECT y FROM ...) clause when "x" and "y" have different data
          types; and make sure the behavior is semantically correct when the
          conversion from "y"'s type to "x"'s type is lossy.
        - Fix oversight that prevented the planner from substituting known
          Param values as if they were constants.
        - Fix planner failure when an indexable MIN or MAX aggregate is used
          with DISTINCT or ORDER BY.
        - Fix planner to ensure it never uses a "physical tlist" for a plan
          node that is feeding a Sort node.
        - Avoid unnecessary copying of query strings.
        - Make TransactionIdIsCurrentTransactionId() use binary search
          instead of linear search when checking child-transaction XIDs.
          This fixes some cases in which 8.3.0 was significantly slower than
          earlier releases.
        - Fix conversions between ISO-8859-5 and other encodings to handle
          Cyrillic "Yo" characters (e and E with two dots).
        - Fix several datatype input functions, notably array_in(), that were
          allowing unused bytes in their results to contain uninitialized,
          unpredictable values. This could lead to failures in which two
          apparently identical literal values were not seen as equal, resulting in
          the parser complaining about unmatched ORDER BY and DISTINCT
          expressions.
        - Fix a corner case in regular-expression substring matching
          (substring(string from pattern)).
          The problem occurs when there is a match to the pattern overall but
          the user has specified a parenthesized subexpression and that
          subexpression hasn't got a match. An example is substring('foo'
          from 'foo(bar)?'). This should return NULL, since (bar) isn't
          matched, but it was mistakenly returning the whole-pattern match
          instead (ie, foo).
        - Prevent cancellation of an auto-vacuum that was launched to prevent
          XID wraparound.
        - Improve "ANALYZE"'s handling of in-doubt tuples (those inserted or
          deleted by a not-yet-committed transaction) so that the counts it
          reports to the stats collector are more likely to be correct.
        - Fix initdb to reject a relative path for its --xlogdir (-X) option.
        - Make psql print tab characters as an appropriate number of spaces,
          rather than \x09 as was done in 8.3.0 and 8.3.1.
        - Add ECPGget_PGconn() function to ecpglib. Dropped
          00upstream-ecpg-get-connection.patch, which backported this fix.
        - Fix incorrect result from ecpg's PGTYPEStimestamp_sub() function.
        - Fix handling of continuation line markers in ecpg.
        - Fix possible crashes in "contrib/cube" functions.
        - Fix core dump in "contrib/xml2"'s xpath_table() function when the
          input query returns a NULL value.
      * Build against tcl 8.5.
      * debian/control: Fix bad wrapping in build dependencies.
    
     -- Martin Pitt <email address hidden>   Wed, 11 Jun 2008 20:43:07 +0200
  • postgresql-8.3 (8.3.1-2) unstable; urgency=low
    
      * debian/control: Change description of the metapackages from "latest
        available" to "currently supported", since after a distro release, the
        latest available upstream version changes, and thus this becomes slightly
        confusing.
      * debian/control: Add missing description of 'hstore' to p-contrib.
      * debian/control: Wrap build dependencies.
      * Add debian/patches/00upstream-ecpg-get-connection.patch: Backport change
        from upcoming 8.3.2 to add definition for ECPGget_PGconn().
        (Closes: #475184)
      * debian/postgresql-doc-8.3.doc-base: Update section, use "Data management"
        now.
    
     -- Ubuntu Archive Auto-Sync <email address hidden>   Fri,  02 May 2008 02:23:00 +0100
  • postgresql-8.3 (8.3.1-1) unstable; urgency=low
    
      * New upstream bugfix release:
        - Repair corner-case bugs in "VACUUM FULL".
        - Fix misbehavior of foreign key checks involving character or bit
          columns.
        - Avoid needless deadlock failures in no-op foreign-key checks.
        - Fix possible core dump when re-planning a prepared query.
        - Fix possible failure when re-planning a query that calls an
          SPI-using function.
        - Fix failure in row-wise comparisons involving columns of different
          datatypes.
        - Fix longstanding "LISTEN"/"NOTIFY" race condition.
        - Disallow "LISTEN" and "UNLISTEN" within a prepared transaction
          This was formerly allowed but trying to do it had various
          unpleasant consequences, notably that the originating backend could
          not exit as long as an "UNLISTEN" remained uncommitted.
        - Disallow dropping a temporary table within a prepared transaction
          This was correctly disallowed by 8.1, but the check was
          inadvertently broken in 8.2 and 8.3.
        - Fix rare crash when an error occurs during a query using a hash
          index.
        - Fix incorrect comparison of tsquery values.
        - Fix incorrect behavior of LIKE with non-ASCII characters in
          single-byte encodings. (Closes: #469180)
        - Disable xmlvalidate. This function should have been removed before 8.3
          release, but was inadvertently left in the source code. It poses a small
          security risk since unprivileged users could use it to read the first
          few characters of any file accessible to the server.
        - Fix memory leaks in certain usages of set-returning functions.
        - Make encode(bytea, 'escape') convert all high-bit-set byte values
          into \"nnn" octal escape sequences.
          This is necessary to avoid encoding problems when the database
          encoding is multi-byte. This change could pose compatibility issues
          for applications that are expecting specific results from encode.
        - Fix input of datetime values for February 29 in years BC.
          The former coding was mistaken about which years were leap years.
        . Fix "unrecognized node type" error in some variants of "ALTER
          OWNER".
        - Avoid tablespace permissions errors in "CREATE TABLE LIKE INCLUDING
          INDEXES".
        - Ensure pg_stat_activity.waiting flag is cleared when a lock wait is
          aborted.
        - Fix ecpg problems with arrays.
        - Fix pg_ctl to correctly extract the postmaster's port number from
          command-line options. Previously, pg_ctl start -w could try to contact
          the postmaster on the wrong port, leading to bogus reports of startup
          failure. (Closes: #358546)
        - Use "-fwrapv" to defend against possible misoptimization in recent
          gcc versions (4.3 and later).
      * debian/postgresql-8.3.init:
        - Remove erroneous 'S' from Should-Stop.
        - Require $remote_fs for startup, since postgresql needs /usr.
        - Thanks to Petter Reinholdtsen!
        - (Closes: #470935)
    
     -- Martin Pitt <email address hidden>   Fri,  21 Mar 2008 10:54:00 +0000