postgresql/src/backend
Andres Freund 4c9e1bd0a3 Reset memory context once per tuple in validateForeignKeyConstraint.
When using tableam ExecFetchSlotHeapTuple() might return a separately
allocated tuple. We could use the shouldFree argument to explicitly
free it, but it seems more robust to to protect

Also add a CHECK_FOR_INTERRUPTS() after each tuple. It's likely that
each AM has (heap does) a CFI somewhere in the relevant path, but it
seems more robust to have one in validateForeignKeyConstraint()
itself.

Note that this only affects the cases that couldn't be optimized to be
verified with a query.

Author: Andres Freund
Reviewed-By: Tom Lane (in an earlier version)
Discussion:
    https://postgr.es/m/19030.1554574075@sss.pgh.pa.us
    https://postgr.es/m/CAKJS1f_SHKcPYMsi39An5aUjhAcEMZb6Cx1Sj1QWEWSiKJkBVQ@mail.gmail.com
    https://postgr.es/m/20180711185628.mrvl46bjgk2uxoki@alap3.anarazel.de
2019-04-07 22:42:42 -07:00
..
access Fix a number of issues around modifying a previously updated row. 2019-04-07 22:14:47 -07:00
bootstrap tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE. 2019-03-28 20:01:43 -07:00
catalog Report progress of REINDEX operations 2019-04-07 12:35:29 +02:00
commands Reset memory context once per tuple in validateForeignKeyConstraint. 2019-04-07 22:42:42 -07:00
executor Fix a number of issues around modifying a previously updated row. 2019-04-07 22:14:47 -07:00
foreign Update copyright for 2019 2019-01-02 12:44:25 -05:00
jit Renaming for new subscripting mechanism 2019-02-01 12:50:32 -03:00
lib Further code review for new integerset code. 2019-03-25 12:23:48 -04:00
libpq Add support TCP user timeout in libpq and the backend server 2019-04-06 15:23:37 +09:00
main Replace @postgresql.org with @lists.postgresql.org for mailinglists 2019-01-19 19:06:35 +01:00
nodes Use Append rather than MergeAppend for scanning ordered partitions. 2019-04-05 19:20:43 -04:00
optimizer Clean up side-effects of commits ab5fcf2b0 et al. 2019-04-07 12:54:22 -04:00
parser Catch syntax error in generated column definition 2019-04-01 10:46:37 +02:00
partitioning Use Append rather than MergeAppend for scanning ordered partitions. 2019-04-05 19:20:43 -04:00
po Translation updates 2018-06-25 12:37:18 +02:00
port Revert "Consistently test for in-use shared memory." 2019-04-05 00:00:52 -07:00
postmaster Wake up interested backends when a checkpoint fails. 2019-04-06 09:31:48 +13:00
regex Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
replication Add facility to copy replication slots 2019-04-05 18:05:18 -03:00
rewrite Perform RLS subquery checks as the right user when going via a view. 2019-04-02 08:13:59 +01:00
snowball Update copyright for 2019 2019-01-02 12:44:25 -05:00
statistics Reduce overhead of pg_mcv_list (de)serialization 2019-04-03 21:23:40 +02:00
storage Revert "Consistently test for in-use shared memory." 2019-04-05 00:00:52 -07:00
tcop Log all statements from a sample of transactions 2019-04-03 18:43:59 -03:00
tsearch Move hash_any prototype from access/hash.h to utils/hashutils.h 2019-03-11 13:17:50 -03:00
utils Avoid fetching past the end of the indoption array. 2019-04-07 18:19:16 -04:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
Makefile Get rid of jsonpath_gram.h and jsonpath_scanner.h 2019-03-20 11:13:34 +03:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
nls.mk Translation updates 2018-06-25 12:37:18 +02:00