![]() ![]() The main incompatibility introduced by this change is that selecting from a sequence relation now returns only the three fields named above. The nextval() and setval() functions remain nontransactional. ALTER SEQUENCE updates are now fully transactional, implying that the sequence is locked until commit. Other sequence properties, such as the starting value and increment, are kept in a corresponding row of the pg_sequence catalog. Move sequences' metadata fields into a new pg_sequence system catalog (Peter Eisentraut)Ī sequence relation now stores only the fields that can be modified by nextval(), that is last_value, log_cnt, and is_called. This is contrary to the SQL standard, so change it. Also, if there were statement-level triggers on a table affected by a foreign key enforcement action (such as ON DELETE CASCADE), they could fire more than once per outer SQL statement. Prevent statement-level triggers from firing more than once per statement (Tom Lane)Ĭases involving writable CTEs updating the same table updated by the containing statement, or by another writable CTE, fired BEFORE STATEMENT or AFTER STATEMENT triggers more than once. ![]() ADD PRIMARY KEY marks columns NOT NULL, that change now propagates to inheritance child tables as well (Michael Paquier) Also, an occurrence of table_name.* within the row_constructor is now expanded into multiple columns, as occurs in other uses of row_constructors. If just one column name appears in the column_list, then the row_constructor now must use the ROW keyword, since otherwise it is not a valid row constructor but just a parenthesized expression. The row_constructor can now begin with the keyword ROW previously that had to be omitted. SET ( column_list) = row_constructor (Tom Lane) Use standard row constructor syntax in UPDATE. In addition, set-returning functions are now disallowed within CASE and COALESCE constructs. Previously the results were cycled until they all terminated at the same time, producing a number of rows equal to the least common multiple of the functions' periods. If they return different numbers of rows, the shorter results are extended to match the longest result by adding nulls. This allows saner semantics for cases where multiple set-returning functions are present. Set-returning functions are now evaluated before evaluation of scalar expressions in the SELECT list, much as though they had been placed in a LATERAL FROM-clause item. There was previously an inconsistent mixture of the two terminologies.Ĭhange the implementation of set-returning functions appearing in a query's SELECT list (Andres Freund) Rename WAL-related functions and views to use lsn instead of location (David Rowley) This is for consistency with the change of the pg_xlog directory name in general, the “ xlog” terminology is no longer used in any user-facing places. Rename SQL functions, tools, and options that reference “ xlog” to “ wal” (Robert Haas)įor example, pg_switch_xlog() becomes pg_switch_wal(), pg_receivexlog becomes pg_receivewal, and -xlogdir becomes -waldir. These name changes are intended to discourage such errors in future. Users have occasionally thought that these directories contained only inessential log files, and proceeded to remove write-ahead log files or transaction status files manually, causing irrecoverable data loss. Rename write-ahead log directory pg_xlog to pg_wal, and rename transaction status directory pg_clog to pg_xact (Michael Paquier) pg_upgrade will create a script to assist with this. Major hash index improvements necessitated this requirement. Hash indexes must be rebuilt after pg_upgrade-ing from any previous major PostgreSQL version (Mithun Cy, Robert Haas, Amit Kapila) ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |