aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2015-03-29 15:04:09 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2015-03-29 15:04:18 -0400
commitf444de5e34f673043b948e14ad3f76a30f698ecb (patch)
treeb171ae1738c3191ee278c8db2c316e981bae09b6
parent3740bb8347a946232ad281174398a825c1b40c73 (diff)
downloadpostgresql-f444de5e34f673043b948e14ad3f76a30f698ecb.tar.gz
postgresql-f444de5e34f673043b948e14ad3f76a30f698ecb.zip
Add vacuum_delay_point call in compute_index_stats's per-sample-row loop.
Slow functions in index expressions might cause this loop to take long enough to make it worth being cancellable. Probably it would be enough to call CHECK_FOR_INTERRUPTS here, but for consistency with other per-sample-row loops in this file, let's use vacuum_delay_point. Report and patch by Jeff Janes. Back-patch to all supported branches.
-rw-r--r--src/backend/commands/analyze.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index 954e5a68b6b..2282f8b052a 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -743,6 +743,8 @@ compute_index_stats(Relation onerel, double totalrows,
{
HeapTuple heapTuple = rows[rowno];
+ vacuum_delay_point();
+
/*
* Reset the per-tuple context each time, to reclaim any cruft
* left behind by evaluating the predicate or index expressions.