]> granicus.if.org Git - postgresql/commitdiff
Just noticed that you can't Query-Cancel a long planner run, because
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 3 Jun 2005 19:00:12 +0000 (19:00 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 3 Jun 2005 19:00:12 +0000 (19:00 +0000)
no part of the planner did CHECK_FOR_INTERRUPTS().  Add one in a
suitably strategic spot.

src/backend/optimizer/util/pathnode.c

index 19bb36136c8e180f0e2407f470a31004d290dae9..cf5438f06c5992225d42679f0b8a1d98465af065 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.120 2005/04/25 01:30:13 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.121 2005/06/03 19:00:12 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -277,6 +277,12 @@ add_path(RelOptInfo *parent_rel, Path *new_path)
        ListCell   *p1_prev = NULL;
        ListCell   *p1;
 
+       /*
+        * This is a convenient place to check for query cancel --- no part
+        * of the planner goes very long without calling add_path().
+        */
+       CHECK_FOR_INTERRUPTS();
+
        /*
         * Loop to check proposed new path against old paths.  Note it is
         * possible for more than one old path to be tossed out because