diff options
Diffstat (limited to 'src/backend/access/heap/tuptoaster.c')
-rw-r--r-- | src/backend/access/heap/tuptoaster.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c index 546f80f05ca..cd42c50b09c 100644 --- a/src/backend/access/heap/tuptoaster.c +++ b/src/backend/access/heap/tuptoaster.c @@ -1794,7 +1794,9 @@ toast_delete_datum(Relation rel, Datum value, bool is_speculative) /* ---------- * toastrel_valueid_exists - * - * Test whether a toast value with the given ID exists in the toast relation + * Test whether a toast value with the given ID exists in the toast relation. + * For safety, we consider a value to exist if there are either live or dead + * toast rows with that ID; see notes for GetNewOid(). * ---------- */ static bool @@ -1806,7 +1808,6 @@ toastrel_valueid_exists(Relation toastrel, Oid valueid) int num_indexes; int validIndex; Relation *toastidxs; - SnapshotData SnapshotToast; /* Fetch a valid index relation */ validIndex = toast_open_indexes(toastrel, @@ -1825,10 +1826,9 @@ toastrel_valueid_exists(Relation toastrel, Oid valueid) /* * Is there any such chunk? */ - init_toast_snapshot(&SnapshotToast); toastscan = systable_beginscan(toastrel, RelationGetRelid(toastidxs[validIndex]), - true, &SnapshotToast, 1, &toastkey); + true, SnapshotAny, 1, &toastkey); if (systable_getnext(toastscan) != NULL) result = true; |