postgresql/src/backend/commands
Tom Lane 80559fa9e9 I found a corner case in which it is possible for RI_FKey_check's call
of HeapTupleSatisfiesItself() to trigger a hint-bit update on the tuple:
if the row was updated or deleted by a subtransaction of my own transaction
that was later rolled back.  This cannot occur in pre-8.0 of course, so
the hint-bit patch applied a couple weeks ago is OK for existing releases.
But for 8.0 it seems we had better fix things so that RI_FKey_check can
pass the correct buffer number to HeapTupleSatisfiesItself.  Accordingly,
add fields to the TriggerData struct to carry the buffer ID(s) for the
old and new tuple(s).  There are other possible solutions but this one
seems cleanest; it will allow other AFTER-trigger functions to safely
do tqual.c calls if they want to.  Put new fields at end of struct so
that there is no API breakage.
2004-10-30 20:53:06 +00:00
..
aggregatecmds.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
alter.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
analyze.c Make heap_fetch API more consistent by having the buffer remain pinned 2004-10-26 16:05:03 +00:00
async.c Renumber SnapshotNow and the other special snapshot codes so that 2004-09-11 18:28:34 +00:00
cluster.c Redesign query-snapshot timing so that volatile functions in READ COMMITTED 2004-09-13 20:10:13 +00:00
comment.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
conversioncmds.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
copy.c Fix failure to think clearly about encoding conversion errors in COPY. 2004-10-29 19:18:22 +00:00
dbcommands.c On Windows, force a checkpoint just before dropping a database's physical 2004-10-28 00:39:59 +00:00
define.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
explain.c Remove unnecessary use of index_open just to get the index name. 2004-09-30 17:42:42 +00:00
functioncmds.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
indexcmds.c Redesign query-snapshot timing so that volatile functions in READ COMMITTED 2004-09-13 20:10:13 +00:00
lockcmds.c Update copyright to 2004. 2004-08-29 04:13:13 +00:00
Makefile Tablespaces. Alternate database locations are dead, long live tablespaces. 2004-06-18 06:14:31 +00:00
opclasscmds.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
operatorcmds.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
portalcmds.c Restructure subtransaction handling to reduce resource consumption, 2004-09-16 16:58:44 +00:00
prepare.c Modify hash_create() to elog(ERROR) if an error occurs, rather than 2004-10-25 00:46:43 +00:00
proclang.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
schemacmds.c Remove obsolete comment. 2004-09-02 00:22:16 +00:00
sequence.c Restructure subtransaction handling to reduce resource consumption, 2004-09-16 16:58:44 +00:00
tablecmds.c I found a corner case in which it is possible for RI_FKey_check's call 2004-10-30 20:53:06 +00:00
tablespace.c Give a more user-friendly error message in situation where CREATE DATABASE 2004-10-17 20:47:21 +00:00
trigger.c I found a corner case in which it is possible for RI_FKey_check's call 2004-10-30 20:53:06 +00:00
typecmds.c Adjust comments previously moved to column 1 by pgident. 2004-10-07 15:21:58 +00:00
user.c Code cleanup: don't bother casting the argument to pfree() to void * 2004-09-27 04:01:23 +00:00
vacuum.c Repair possible failure to update hint bits back to disk, per 2004-10-15 22:40:29 +00:00
vacuumlazy.c In the new dispensation where REINDEX doesn't take exclusive lock on 2004-10-25 15:42:02 +00:00
variable.c GUC assign hooks that look at external state in deciding whether a 2004-09-24 19:43:03 +00:00
view.c Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00