From acf242da971bdb2b47c5e23196b63ed079420b29 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sat, 12 Jun 1999 19:27:41 +0000
Subject: [PATCH] Plug hole in dike: planner would coredump if query_planner
 returned NULL, which it will do in some cases where an elog(ERROR) would
 probably be more appropriate.  For the moment, generate a not-very-
 informative error message rather than proceeding to certain coredump.
 Probably ought to think about making query_planner elog instead of returning
 NULL, but this is at least a safe change for now.

---
 src/backend/optimizer/plan/planner.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 6dc76f0fa2d..ef2e8ca00b0 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.55 1999/06/06 17:38:10 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.56 1999/06/12 19:27:41 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -223,6 +223,10 @@ union_planner(Query *parse)
 			pfree(vpm);
 	}
 
+	/* query_planner returns NULL if it thinks plan is bogus */
+	if (! result_plan)
+		elog(ERROR, "union_planner: failed to create plan");
+
 	/*
 	 * If we have a GROUP BY clause, insert a group node (with the
 	 * appropriate sort node.)
-- 
GitLab