]> granicus.if.org Git - postgresql/commitdiff
Remove enum-related special cases for catalog scans.
authorRobert Haas <rhaas@postgresql.org>
Wed, 29 Apr 2015 19:48:44 +0000 (15:48 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 29 Apr 2015 19:48:44 +0000 (15:48 -0400)
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.

src/backend/utils/adt/enum.c

index 3446da31048c3ded1adbb827b715b321d308831d..d5818a9751eea95eb591925eb1da6fb6572e0e27 100644 (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));