Remove enum-related special cases for catalog scans.

When this code was written, catalog scans were normally performed using
SnapshotNow, making special handling necessary here.  Now, however, all
catalog scans use MVCC snapshots, so we can change these cases to look
more like what we do for catalog scans elsewhere in the code.

Per discussion with Tom Lane and a reminder from Bruce Momjian.
This commit is contained in:
Robert Haas 2015-04-29 15:48:44 -04:00
parent ef3f9e642d
commit 9b6a0ce5f0

View File

@ -312,8 +312,8 @@ enum_endpoint(Oid enumtypoid, ScanDirection direction)
/*
* Find the first/last enum member using pg_enum_typid_sortorder_index.
* Note we must not use the syscache, and must use an MVCC snapshot here.
* See comments for RenumberEnumType in catalog/pg_enum.c for more info.
* Note we must not use the syscache. See comments for RenumberEnumType
* in catalog/pg_enum.c for more info.
*/
ScanKeyInit(&skey,
Anum_pg_enum_enumtypid,
@ -322,8 +322,7 @@ enum_endpoint(Oid enumtypoid, ScanDirection direction)
enum_rel = heap_open(EnumRelationId, AccessShareLock);
enum_idx = index_open(EnumTypIdSortOrderIndexId, AccessShareLock);
enum_scan = systable_beginscan_ordered(enum_rel, enum_idx,
GetTransactionSnapshot(),
enum_scan = systable_beginscan_ordered(enum_rel, enum_idx, NULL,
1, &skey);
enum_tuple = systable_getnext_ordered(enum_scan, direction);
@ -465,8 +464,8 @@ enum_range_internal(Oid enumtypoid, Oid lower, Oid upper)
/*
* Scan the enum members in order using pg_enum_typid_sortorder_index.
* Note we must not use the syscache, and must use an MVCC snapshot here.
* See comments for RenumberEnumType in catalog/pg_enum.c for more info.
* Note we must not use the syscache. See comments for RenumberEnumType
* in catalog/pg_enum.c for more info.
*/
ScanKeyInit(&skey,
Anum_pg_enum_enumtypid,
@ -475,9 +474,7 @@ enum_range_internal(Oid enumtypoid, Oid lower, Oid upper)
enum_rel = heap_open(EnumRelationId, AccessShareLock);
enum_idx = index_open(EnumTypIdSortOrderIndexId, AccessShareLock);
enum_scan = systable_beginscan_ordered(enum_rel, enum_idx,
GetTransactionSnapshot(),
1, &skey);
enum_scan = systable_beginscan_ordered(enum_rel, enum_idx, NULL, 1, &skey);
max = 64;
elems = (Datum *) palloc(max * sizeof(Datum));