From bcfeca5856a9e631e283fba571469d2e5c5bee2c Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 16 May 2003 06:07:51 +0000
Subject: [PATCH] Check calling context for connectby_text(), per Joe Conway.

---
 contrib/tablefunc/tablefunc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/contrib/tablefunc/tablefunc.c b/contrib/tablefunc/tablefunc.c
index 70df31d557f..984f31dc283 100644
--- a/contrib/tablefunc/tablefunc.c
+++ b/contrib/tablefunc/tablefunc.c
@@ -1048,6 +1048,11 @@ connectby_text(PG_FUNCTION_ARGS)
 	MemoryContext per_query_ctx;
 	MemoryContext oldcontext;
 
+	/* check to see if caller supports us returning a tuplestore */
+	if (!rsinfo || !(rsinfo->allowedModes & SFRM_Materialize))
+		elog(ERROR, "connectby: materialize mode required, but it is not "
+			 "allowed in this context");
+
 	if (fcinfo->nargs == 6)
 	{
 		branch_delim = GET_STR(PG_GETARG_TEXT_P(5));
-- 
GitLab