postgresql/src/include
Tom Lane eaa5808e8e Redefine MemoryContextReset() as deleting, not resetting, child contexts.
That is, MemoryContextReset() now means what was formerly meant by
MemoryContextResetAndDeleteChildren(), and the latter is now just a macro
alias for the former.  If you really want the functionality that was
formerly provided by MemoryContextReset(), what you have to do is
MemoryContextResetChildren() plus MemoryContextResetOnly() (which is a
new API to reset *only* the named context and not touch its children).

The reason for this change is that near fifteen years of experience has
proven that there is noplace where old-style MemoryContextReset() is
actually what you want.  Making that the default behavior has led to lots
of context-leakage bugs, while we've not found anyplace where it's actually
necessary to keep the child contexts; at least the standard regression
tests do not reveal anyplace where this change breaks anything.  And there
are upcoming patches that will introduce additional reasons why child
contexts need to be removed.

We could change existing calls of MemoryContextResetAndDeleteChildren to be
just MemoryContextReset, but for the moment I'll leave them alone; they're
not costing anything.
2015-02-27 18:10:04 -05:00
..
access Replace checkpoint_segments with min_wal_size and max_wal_size. 2015-02-23 18:53:02 +02:00
bootstrap Allow forcing nullness of columns during bootstrap. 2015-02-21 22:31:54 +01:00
catalog Add parse location fields to NullTest and BooleanTest structs. 2015-02-22 14:40:27 -05:00
commands Support more commands in event triggers 2015-02-23 14:22:42 -03:00
common Speed up CRC calculation using slicing-by-8 algorithm. 2015-02-10 10:54:40 +02:00
datatype Update copyright for 2015 2015-01-06 11:43:47 -05:00
executor Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
foreign Update copyright for 2015 2015-01-06 11:43:47 -05:00
lib Fix a bug in pairing heap removal code. 2015-02-17 22:55:53 +02:00
libpq Remove code to match IPv4 pg_hba.conf entries to IPv4-in-IPv6 addresses. 2015-02-17 12:49:18 -05:00
mb Update copyright for 2015 2015-01-06 11:43:47 -05:00
nodes Invent a memory context reset/delete callback mechanism. 2015-02-27 17:16:43 -05:00
optimizer Fix EXPLAIN output for cases where parent table is excluded by constraints. 2015-02-17 18:04:11 -05:00
parser Improve parser's one-extra-token lookahead mechanism. 2015-02-24 17:53:45 -05:00
port Add strxfrm_l to list of functions where Windows adds an underscore. 2015-01-20 10:52:01 -05:00
portability Update copyright for 2015 2015-01-06 11:43:47 -05:00
postmaster Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
regex Update copyright for 2015 2015-01-06 11:43:47 -05:00
replication Use FLEXIBLE_ARRAY_MEMBER for HeapTupleHeaderData.t_bits[]. 2015-02-21 15:13:06 -05:00
rewrite Fix column-privilege leak in error-message paths 2015-01-28 12:31:30 -05:00
snowball Update copyright for 2015 2015-01-06 11:43:47 -05:00
storage Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
tcop Process 'die' interrupts while reading/writing from the client socket. 2015-02-03 22:45:45 +01:00
tsearch Fix statically allocated struct with FLEXIBLE_ARRAY_MEMBER member. 2015-02-20 17:50:18 -05:00
utils Redefine MemoryContextReset() as deleting, not resetting, child contexts. 2015-02-27 18:10:04 -05:00
.gitignore Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
c.h Use FLEXIBLE_ARRAY_MEMBER in struct varlena. 2015-02-20 16:51:53 -05:00
fmgr.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
funcapi.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
getaddrinfo.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
getopt_long.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
Makefile Install all headers for the new atomics API. 2014-10-02 16:52:21 +02:00
miscadmin.h Remove remnants of ImmediateInterruptOK handling. 2015-02-03 23:25:47 +01:00
pg_config.h.in Speed up CRC calculation using slicing-by-8 algorithm. 2015-02-10 10:54:40 +02:00
pg_config.h.win32 Speed up CRC calculation using slicing-by-8 algorithm. 2015-02-10 10:54:40 +02:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_ext.h.win32 Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Use abbreviated keys for faster sorting of text datums. 2015-01-19 15:28:27 -05:00
pg_getopt.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pg_trace.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pgstat.h Update PGSTAT_FILE_FORMAT_ID 2015-02-20 12:59:27 -03:00
pgtar.h Error when creating names too long for tar format 2015-02-24 13:41:07 -05:00
pgtime.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
port.h Don't require users of src/port/gettimeofday.c to initialize it. 2015-02-21 12:17:04 -05:00
postgres.h Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
postgres_ext.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
postgres_fe.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
rusagestub.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
windowapi.h Update copyright for 2015 2015-01-06 11:43:47 -05:00