]> granicus.if.org Git - postgresql/commitdiff
Prevent EXPLAIN (without ANALYZE) SELECT ... INTO from creating an INTO
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Apr 2003 22:35:48 +0000 (22:35 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Apr 2003 22:35:48 +0000 (22:35 +0000)
table.  Needed due to recent change that makes us call ExecutorStart
even when not planning to carry out the query.

src/backend/commands/explain.c

index 11425620e6b22974dc135fa23a3e8774a69e9b62..09d422f85c055259782c3f1eca4be836491ed4f3 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.104 2003/03/10 03:53:49 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.105 2003/04/03 22:35:48 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -193,6 +193,14 @@ ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
        ExplainState *es;
        StringInfo      str;
 
+       /*
+        * If we are not going to execute, suppress any SELECT INTO marker.
+        * Without this, ExecutorStart will create the INTO target table,
+        * which we don't want.
+        */
+       if (!stmt->analyze)
+               queryDesc->parsetree->into = NULL;
+
        gettimeofday(&starttime, NULL);
 
        /* call ExecutorStart to prepare the plan for execution */