diff --git a/HISTORY b/HISTORY index cae3fed04260689879905e008fbd8c6c698b6426..ec6f8b11ea6a9c7faeef22ef3cf5cbb09e0fba03 100644 --- a/HISTORY +++ b/HISTORY @@ -46,7 +46,7 @@ Function-inlining for simple SQL functions Simple SQL functions can now be inlined by including their SQL in the main query. This improves performance by eliminating - per-call overhead. That means, simple SQL functions now behave + per-call overhead. That means simple SQL functions now behave like macros. Full support for IPv6 connections and IPv6 address data types @@ -58,11 +58,11 @@ Several people very familiar with the SSL API have overhauled our SSL code to improve SSL key negotiation and error recovery. - Make free space map to efficiently reuse empty index pages, and other + Make free space map efficiently reuse empty index pages, and other free space management improvements In previous releases, B-tree index pages that were left empty because of deleted rows could only be reused by rows with index - values similar to the original rows indexed on that page. In + values similar to the rows originally indexed on that page. In 7.4, "VACUUM" records empty index pages and allows them to be reused for any future index rows. @@ -71,12 +71,12 @@ to access information about the schema objects defined in a database. - Cursors conform more closely with the SQL standard + Cursors conform more closely to the SQL standard The commands "FETCH" and "MOVE" have been overhauled to conform more closely to the SQL standard. Cursors can exist outside transactions - These cursors are also called holdable cursors + These cursors are also called holdable cursors. New client-to-server protocol The new protocol adds error codes, more status information, @@ -124,7 +124,7 @@ Significant effort was invested to make the messages more consistent and user-oriented. If your applications try to detect different error conditions by parsing the error message, you are - strongly encourage to use the new error code facility. + strongly encouraged to use the new error code facility instead. * Inner joins using the explicit JOIN syntax may behave differently because they are now better optimized. * A number of server configuration parameters have been renamed for @@ -238,8 +238,8 @@ Performance Improvements of function-allocated memory when the function call completes, reducing the total memory used by functions. * Improve GEQO optimizer performance (Tom) - There were several inefficiencies in the way the GEQO optimizer - managed potential query paths. This release fixes this. + This release fixes several inefficiencies in the way the GEQO + optimizer manages potential query paths. * Allow IN/NOT IN to be handled via hash tables (Tom) * Improve NOT IN (subquery) performance (Tom) * Allow most IN subqueries to be processed as joins (Tom) @@ -430,8 +430,9 @@ Utility Command Changes deleted on transaction commit. * Allow cursors outside transactions using WITH HOLD (Neil) In previous releases, cursors were removed at the end of the - transaction. Using WITH HOLD, the current release allows cursors - to remain readable after the creating transaction. + transaction that created them. Cursors can now be created with the + WITH HOLD option, which allows them to continue to be accessed + after the creating transaction has committed. * FETCH 0 and MOVE 0 now do nothing (Bruce) In previous releases, FETCH 0 fetched all remaining rows, and MOVE 0 moved to the end of the cursor. @@ -441,10 +442,12 @@ Utility Command Changes In prior releases, the row count returned by "FETCH" and "MOVE" did not accurately reflect the number of rows processed. * Properly handle SCROLL with cursors, or report an error (Neil) - Certain cursors can not be fetched backwards optimally. By - specifying SCROLL, extra work will be performed to guarantee that - the cursor can be fetched in reverse or random order. - * Implement SQL-compatible option FIRST, LAST, ABSOLUTE n, RELATIVE + Allowing random access (both forward and backward scrolling) to + some kinds of queries cannot be done without some additional work. + If SCROLL is specified when the cursor is created, this additional + work will be performed. Furthermore, if the cursor has been + created with NO SCROLL, no random access is allowed. + * Implement SQL-compatible options FIRST, LAST, ABSOLUTE n, RELATIVE n for "FETCH" and "MOVE" (Tom) * Allow "EXPLAIN" on "DECLARE CURSOR" (Tom) * Allow "CLUSTER" to use index marked as pre-clustered by default @@ -460,8 +463,9 @@ Utility Command Changes * Recover from "COPY" failure cleanly (Tom) * Prevent possible memory leaks in "COPY" (Tom) * Make "TRUNCATE" transaction-safe (Rod) - "TRUNCATE" can now be used inside a transaction, and rolled back - if the transaction aborts. + "TRUNCATE" can now be used inside a transaction. If the + transaction aborts, the changes made by the "TRUNCATE" are + automatically rolled back. * Allow prepare/bind of utility commands like "FETCH" and "EXPLAIN" (Tom) * Add "EXPLAIN EXECUTE" (Neil) @@ -758,8 +762,8 @@ Contrib Changes * Fix bug in metaphone() in fuzzystrmatch * Improve adddepend (Rod) * Update spi/timetravel (Böjthe Zoltán) - * Fix dbase "-s" option and improve non-ASCII handling (Thomas - Behr, Márcio Smiderle) + * Fix dbase "-s" option and improve non-ASCII handling (Thomas Behr, + Márcio Smiderle) * Remove array module because features now included by default (Joe) _________________________________________________________________