aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/index/genam.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/index/genam.c')
-rw-r--r--src/backend/access/index/genam.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c
index a79c3920713..5662bb01088 100644
--- a/src/backend/access/index/genam.c
+++ b/src/backend/access/index/genam.c
@@ -217,7 +217,16 @@ systable_beginscan(Relation heapRelation,
}
else
{
- sysscan->scan = heap_beginscan(heapRelation, snapshot, nkeys, key);
+ /*
+ * We disallow synchronized scans when forced to use a heapscan on a
+ * catalog. In most cases the desired rows are near the front, so
+ * that the unpredictable start point of a syncscan is a serious
+ * disadvantage; and there are no compensating advantages, because
+ * it's unlikely that such scans will occur in parallel.
+ */
+ sysscan->scan = heap_beginscan_strat(heapRelation, snapshot,
+ nkeys, key,
+ true, false);
sysscan->iscan = NULL;
}