diff --git a/contrib/tablefunc/tablefunc.c b/contrib/tablefunc/tablefunc.c index d5db3ceed73..4fd3846820b 100644 --- a/contrib/tablefunc/tablefunc.c +++ b/contrib/tablefunc/tablefunc.c @@ -646,6 +646,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));