]> granicus.if.org Git - postgresql/commitdiff
Don't use SnapshotNow in get_actual_variable_range.
authorRobert Haas <rhaas@postgresql.org>
Thu, 25 Jul 2013 18:30:00 +0000 (14:30 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 25 Jul 2013 18:30:00 +0000 (14:30 -0400)
Instead, use the active snapshot.  Per Tom Lane, this function is
most interested in knowing the range of tuples our scan will actually
see.

This is another step towards full removal of SnapshotNow.

src/backend/utils/adt/selfuncs.c

index d8c1a889edcb865a860b2fe2272d6fdcfed1d71a..edfd8435aaa5d1aef2331c7a01aba5dc9d5b4c79 100644 (file)
 #include "utils/pg_locale.h"
 #include "utils/rel.h"
 #include "utils/selfuncs.h"
+#include "utils/snapmgr.h"
 #include "utils/spccache.h"
 #include "utils/syscache.h"
 #include "utils/timestamp.h"
@@ -4989,8 +4990,8 @@ get_actual_variable_range(PlannerInfo *root, VariableStatData *vardata,
                        /* If min is requested ... */
                        if (min)
                        {
-                               index_scan = index_beginscan(heapRel, indexRel, SnapshotNow,
-                                                                                        1, 0);
+                               index_scan = index_beginscan(heapRel, indexRel,
+                                                                                        GetActiveSnapshot(), 1, 0);
                                index_rescan(index_scan, scankeys, 1, NULL, 0);
 
                                /* Fetch first tuple in sortop's direction */
@@ -5021,8 +5022,8 @@ get_actual_variable_range(PlannerInfo *root, VariableStatData *vardata,
                        /* If max is requested, and we didn't find the index is empty */
                        if (max && have_data)
                        {
-                               index_scan = index_beginscan(heapRel, indexRel, SnapshotNow,
-                                                                                        1, 0);
+                               index_scan = index_beginscan(heapRel, indexRel,
+                                                                                        GetActiveSnapshot(), 1, 0);
                                index_rescan(index_scan, scankeys, 1, NULL, 0);
 
                                /* Fetch first tuple in reverse direction */