From f1fb9e009797aaef7619d9191eaa3ff6685f1164 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 3 Apr 2003 22:35:48 +0000 Subject: [PATCH] Prevent EXPLAIN (without ANALYZE) SELECT ... INTO from creating an INTO 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 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 11425620e6..09d422f85c 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -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 */