## E.246. Release 8.1.5

Release date: 2006-10-16

This release contains a variety of fixes from 8.1.4. For information about new features in the 8.1 major release, see Section E.251.

### E.246.1. Migration to Version 8.1.5

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Section E.249.

### E.246.2. Changes

- Disallow aggregate functions in `UPDATE` commands, except within sub-SELECTs (Tom)

  The behavior of such an aggregate was unpredictable, and in 8.1.X could cause a crash, so it has been disabled. The SQL standard does not allow this either.

- Fix core dump when an untyped literal is taken as ANYARRAY

- Fix core dump in duration logging for extended query protocol when a `COMMIT` or `ROLLBACK` is executed

- Fix mishandling of AFTER triggers when query contains a SQL function returning multiple rows (Tom)

- Fix `ALTER TABLE ... TYPE` to recheck `NOT NULL` for `USING` clause (Tom)

- Fix `string_to_array()` to handle overlapping matches for the separator string

  For example, `string_to_array('123xx456xxx789', 'xx')`.

- Fix `to_timestamp()` for `AM`/`PM` formats (Bruce)

- Fix autovacuum's calculation that decides whether `ANALYZE` is needed (Alvaro)

- Fix corner cases in pattern matching for psql's `\d` commands

- Fix index-corrupting bugs in /contrib/ltree (Teodor)

- Numerous robustness fixes in ecpg (Joachim Wieland)

- Fix backslash escaping in /contrib/dbmirror

- Minor fixes in /contrib/dblink and /contrib/tsearch2

- Efficiency improvements in hash tables and bitmap index scans (Tom)

- Fix instability of statistics collection on Windows (Tom, Andrew)

- Fix `statement_timeout` to use the proper units on Win32 (Bruce)

  In previous Win32 8.1.X versions, the delay was off by a factor of 100.

- Fixes for MSVC and Borland C++ compilers (Hiroshi Saito)

- Fixes for AIX and Intel compilers (Tom)

- Fix rare bug in continuous archiving (Tom)