postgres.git / summary / log / commit / refs

commit    772a074d4a89153231467cccd2e49400bbde9f6c
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Thu Jun 11 16:14:18 2009 +0000
First released in: 8.4.0

    Somebody seems to have thought they could get away without checking for
    rsinfo->expectedDesc == NULL in deflist_to_tuplestore(), but that doesn't
    look very safe to me.  Noted in passing while studying problem report
    from Greg Davidson.


src/backend/foreign/foreign.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index 4fb00328ca1..04f0d348fb4 100644 --- a/src/backend/foreign/foreign.c +++ b/src/backend/foreign/foreign.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/foreign/foreign.c,v 1.4 2009/06/11 14:48:57 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/foreign/foreign.c,v 1.5 2009/06/11 16:14:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -279,7 +279,8 @@ deflist_to_tuplestore(ReturnSetInfo *rsinfo, List *options) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("set-valued function called in context that cannot accept a set"))); - if (!(rsinfo->allowedModes & SFRM_Materialize)) + if (!(rsinfo->allowedModes & SFRM_Materialize) || + rsinfo->expectedDesc == NULL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("materialize mode required, but it is not allowed in this context"))); [parent: d74714027942]