postgresql/src/backend
Tom Lane cf707aa70d Improve ilist.h's support for deletion of slist elements during iteration.
Previously one had to use slist_delete(), implying an additional scan of
the list, making this infrastructure considerably less efficient than
traditional Lists when deletion of element(s) in a long list is needed.
Modify the slist_foreach_modify() macro to support deleting the current
element in O(1) time, by keeping a "prev" pointer in addition to "cur"
and "next".  Although this makes iteration with this macro a bit slower,
no real harm is done, since in any scenario where you're not going to
delete the current list element you might as well just use slist_foreach
instead.  Improve the comments about when to use each macro.

Back-patch to 9.3 so that we'll have consistent semantics in all branches
that provide ilist.h.  Note this is an ABI break for callers of
slist_foreach_modify().

Andres Freund and Tom Lane
2013-07-24 17:42:48 -04:00
..
access Update messages, comments and documentation for materialized views. 2013-07-05 15:26:46 -04:00
bootstrap Put back allow_system_table_mods check in heap_create(). 2013-06-03 17:22:31 +03:00
catalog Update messages, comments and documentation for materialized views. 2013-07-05 15:26:46 -04:00
commands Switch user ID to the object owner when populating a materialized view. 2013-07-12 18:25:41 -04:00
executor Improve updatability checking for views and foreign tables. 2013-06-12 17:53:33 -04:00
foreign Arrange to cache FdwRoutine structs in foreign tables' relcache entries. 2013-03-06 23:48:09 -05:00
lib Improve ilist.h's support for deletion of slist elements during iteration. 2013-07-24 17:42:48 -04:00
libpq Avoid reading below the start of a stack variable in tokenize_file(). 2013-06-12 19:50:52 -04:00
main pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
nodes Postpone creation of pathkeys lists to fix bug #8049. 2013-04-29 14:50:03 -04:00
optimizer Change post-rewriter representation of dropped columns in joinaliasvars. 2013-07-23 16:23:52 -04:00
parser Change post-rewriter representation of dropped columns in joinaliasvars. 2013-07-23 16:23:52 -04:00
po Translation updates 2013-06-24 14:16:15 -04:00
port Use SA_RESTART for all signals, including SIGALRM. 2013-06-15 15:40:05 -04:00
postmaster Improve ilist.h's support for deletion of slist elements during iteration. 2013-07-24 17:42:48 -04:00
regex Fix regex match failures for backrefs combined with non-greedy quantifiers. 2013-07-18 21:22:43 -04:00
replication Support clean switchover. 2013-06-26 02:18:26 +09:00
rewrite Change post-rewriter representation of dropped columns in joinaliasvars. 2013-07-23 16:23:52 -04:00
snowball Update copyrights for 2013 2013-01-01 17:15:01 -05:00
storage Ensure no xid gaps during Hot Standby startup 2013-06-23 11:09:24 +01:00
tcop Change errcode for lock_timeout to match NOWAIT 2013-06-29 00:59:20 +01:00
tsearch pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
utils Fix booltestsel() for case where we have NULL stats but not MCV stats. 2013-07-24 00:44:22 -04:00
.gitignore Add gitignore for mingw/cygwin build outputs 2011-06-09 18:11:47 +02:00
common.mk Call check_keywords.pl in maintainer-check 2012-02-27 13:53:12 +02:00
Makefile Move relpath() to libpgcommon 2013-02-21 22:46:17 -03:00
nls.mk Translation updates 2013-05-05 22:34:23 -04:00