postgresql/src/include/utils
Tom Lane c2b4ed19f6 Explicitly support the case that a plancache's raw_parse_tree is NULL.
This only happens if a client issues a Parse message with an empty query
string, which is a bit odd; but since it is explicitly called out as legal
by our FE/BE protocol spec, we'd probably better continue to allow it.

Fix by adding tests everywhere that the raw_parse_tree field is passed to
functions that don't or shouldn't accept NULL.  Also make it clear in the
relevant comments that NULL is an expected case.

This reverts commits a73c9dbab0 and
2e9650cbcf, which fixed specific crash
symptoms by hacking things at what now seems to be the wrong end, ie the
callee functions.  Making the callees allow NULL is superficially more
robust, but it's not always true that there is a defensible thing for the
callee to do in such cases.  The caller has more context and is better
able to decide what the empty-query case ought to do.

Per followup discussion of bug #11335.  Back-patch to 9.2.  The code
before that is sufficiently different that it would require development
of a separate patch, which doesn't seem worthwhile for what is believed
to be an essentially cosmetic change.
2014-11-12 15:58:44 -05:00
..
.gitignore Avoid maintaining three separate copies of the error codes list. 2011-02-03 22:32:49 -05:00
acl.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
array.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
ascii.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
attoptcache.h Fix include-guard 2013-07-07 13:38:27 +02:00
builtins.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
bytea.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
cash.h Add casts from int4 and int8 to numeric. 2011-04-05 09:35:43 -04:00
catcache.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
combocid.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
date.h Clean up references to SQL92 2013-04-20 11:04:41 -04:00
datetime.h Support timezone abbreviations that sometimes change. 2014-10-16 15:22:17 -04:00
datum.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
dynahash.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
dynamic_loader.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
elog.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
evtcache.h pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
fmgrtab.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
formatting.h Fix to_char() to use ASCII-only case-folding rules where appropriate. 2013-03-05 13:02:30 -05:00
geo_decls.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
guc.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
guc_tables.h pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
help_config.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
hsearch.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
inet.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
int8.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
inval.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
json.h Add new JSON processing functions and parser API. 2013-03-29 14:12:13 -04:00
jsonapi.h Clean up new JSON API typedefs 2013-07-20 06:41:46 -04:00
logtape.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
lsyscache.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
memutils.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
nabstime.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
numeric.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
palloc.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
pg_crc.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
pg_crc_tables.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
pg_locale.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
pg_lzcompress.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
pg_rusage.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
plancache.h Explicitly support the case that a plancache's raw_parse_tree is NULL. 2014-11-12 15:58:44 -05:00
portal.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
ps_status.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
rangetypes.h SP-GiST support of the range adjacent operator -|- 2013-03-08 15:03:19 +02:00
rbtree.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
rel.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
relcache.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
relmapper.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
reltrigger.h pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
resowner.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
resowner_private.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
selfuncs.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
snapmgr.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
snapshot.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
sortsupport.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
spccache.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
syscache.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
timeout.h Fix assorted race conditions in the new timeout infrastructure. 2013-11-29 16:41:03 -05:00
timestamp.h Clean up references to SQL92 2013-04-20 11:04:41 -04:00
tqual.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
tuplesort.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
tuplestore.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
typcache.h Remove tabs after spaces in C comments 2014-05-06 11:26:28 -04:00
tzparser.h Support timezone abbreviations that sometimes change. 2014-10-16 15:22:17 -04:00
uuid.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00
varbit.h Predict integer overflow to avoid buffer overruns. 2014-02-17 09:33:32 -05:00
xml.h Update copyrights for 2013 2013-01-01 17:15:01 -05:00