33
33
* ENHANCEMENTS, OR MODIFICATIONS.
34
34
*
35
35
* IDENTIFICATION
36
- * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.86 2005/07 /12 20:35:42 tgl Exp $
36
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.87 2005/08 /12 20:48:03 momjian Exp $
37
37
*
38
38
**********************************************************************/
39
39
@@ -921,6 +921,16 @@ plperl_func_handler(PG_FUNCTION_ARGS)
921
921
plperl_current_tuple_store = 0 ;
922
922
plperl_current_tuple_desc = 0 ;
923
923
924
+ if (!rsi || !IsA (rsi , ReturnSetInfo ) ||
925
+ (rsi -> allowedModes & SFRM_Materialize ) == 0 ||
926
+ rsi -> expectedDesc == NULL )
927
+ {
928
+ ereport (ERROR ,
929
+ (errcode (ERRCODE_FEATURE_NOT_SUPPORTED ),
930
+ errmsg ("set-valued function called in context that "
931
+ "cannot accept a set" )));
932
+ }
933
+
924
934
perlret = plperl_call_perl_func (prodesc , fcinfo );
925
935
926
936
/************************************************************
@@ -936,16 +946,6 @@ plperl_func_handler(PG_FUNCTION_ARGS)
936
946
937
947
if (prodesc -> fn_retisset )
938
948
{
939
- if (!rsi || !IsA (rsi , ReturnSetInfo ) ||
940
- (rsi -> allowedModes & SFRM_Materialize ) == 0 ||
941
- rsi -> expectedDesc == NULL )
942
- {
943
- ereport (ERROR ,
944
- (errcode (ERRCODE_FEATURE_NOT_SUPPORTED ),
945
- errmsg ("set-valued function called in context that "
946
- "cannot accept a set" )));
947
- }
948
-
949
949
/* If the Perl function returned an arrayref, we pretend that it
950
950
* called return_next() for each element of the array, to handle
951
951
* old SRFs that didn't know about return_next(). Any other sort
0 commit comments