E.221. Release 8.2.8
Release date: never released
This release contains a variety of fixes from 8.2.7. For information about new features in the 8.2 major release, see Section E.229 .
E.221.1. Migration to Version 8.2.8
A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.7, see Section E.222 .
E.221.2. Changes
-
Fix
ERRORDATA_STACK_SIZE exceeded
crash that occurred on Windows when using UTF-8 database encoding and a different client encoding (Tom) -
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 (Brendan Jurd)Previous versions neglected to check this requirement at all.
-
Fix possible
CREATE TABLE
failure when inheriting the " same " constraint from multiple parent relations that inherited that constraint from a common ancestor (Tom) -
Fix
pg_get_ruledef()
to show the alias, if any, attached to the target table of anUPDATE
orDELETE
(Tom) -
Fix GIN bug that could result in a
too many LWLocks taken
failure (Teodor) -
Avoid possible crash when decompressing corrupted data (Zdenek Kotala)
-
Repair two places where SIGTERM exit of a backend could leave corrupted state in shared memory (Tom)
Neither case is very important if SIGTERM is used to shut down the whole database cluster together, but there was a problem if someone tried to SIGTERM individual backends.
-
Fix conversions between ISO-8859-5 and other encodings to handle Cyrillic " Yo " characters (
e
andE
with two dots) (Sergey Burladyan) -
Fix several datatype input functions, notably
array_in()
, that were allowing unused bytes in their results to contain uninitialized, unpredictable values (Tom)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
andDISTINCT
expressions. -
Fix a corner case in regular-expression substring matching (
substring(
) (Tom)string
frompattern
)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
). -
Update time zone data files to tzdata release 2008c (for DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and Argentina/San_Luis)
-
Fix incorrect result from ecpg 's
PGTYPEStimestamp_sub()
function (Michael) -
Fix broken GiST comparison function for
contrib/tsearch2
'stsquery
type (Teodor) -
Fix possible crashes in
contrib/cube
functions (Tom) -
Fix core dump in
contrib/xml2
'sxpath_table()
function when the input query returns a NULL value (Tom) -
Fix
contrib/xml2
's makefile to not overrideCFLAGS
(Tom) -
Fix
DatumGetBool
macro to not fail with gcc 4.3 (Tom)This problem affects " old style " (V0) C functions that return boolean. The fix is already in 8.3, but the need to back-patch it was not realized at the time.