From b31aa64f4aa065de5fe7be1a2a204675775245ec Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 4 Jul 1999 01:03:01 +0000
Subject: [PATCH] Make exec_simple_check_plan() check for a null plan, so that
 it doesn't crash when processing a utility statement.

---
 src/pl/plpgsql/src/pl_exec.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index 48ff11a040..02bdf6caa1 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -3,7 +3,7 @@
  *			  procedural language
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.11 1999/05/25 16:15:17 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.12 1999/07/04 01:03:01 tgl Exp $
  *
  *	  This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -2477,7 +2477,7 @@ exec_simple_check_plan(PLpgSQL_expr * expr)
 	 *	  execution plan
 	 * ----------
 	 */
-	if (spi_plan->ptlist == NULL || length(spi_plan->ptlist) != 1)
+	if (length(spi_plan->ptlist) != 1)
 		return;
 
 	plan = (Plan *) lfirst(spi_plan->ptlist);
@@ -2486,6 +2486,9 @@ exec_simple_check_plan(PLpgSQL_expr * expr)
 	 * 2. It must be a RESULT plan --> no scan's required
 	 * ----------
 	 */
+	if (plan == NULL)			/* utility statement produces this */
+		return;
+
 	if (nodeTag(plan) != T_Result)
 		return;
 
-- 
2.24.1