--- pl/plperl/plperl.c.3~ 2005-05-22 11:14:03.155277241 +0530 +++ pl/plperl/plperl.c 2005-05-22 11:16:35.835608507 +0530 @@ -855,10 +855,15 @@ TupleDesc tupdesc; AttInMetadata *attinmeta; - if (!SvOK(perlret) || SvTYPE(perlret) != SVt_RV || SvTYPE(SvRV(perlret)) != SVt_PVAV) + if (!SvOK(perlret) || SvTYPE(perlret) != SVt_RV || + SvTYPE(SvRV(perlret)) != SVt_PVAV) + { ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("set-returning Perl function must return reference to array"))); + errmsg("set-returning Perl function must return " + "reference to array"))); + } + ret_av = (AV *) SvRV(perlret); if (SRF_IS_FIRSTCALL()) @@ -892,10 +897,15 @@ svp = av_fetch(ret_av, funcctx->call_cntr, FALSE); Assert(svp != NULL); - if (!SvOK(*svp) || SvTYPE(*svp) != SVt_RV || SvTYPE(SvRV(*svp)) != SVt_PVHV) + if (!SvOK(*svp) || SvTYPE(*svp) != SVt_RV || + SvTYPE(SvRV(*svp)) != SVt_PVHV) + { ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("elements of Perl result array must be reference to hash"))); + errmsg("elements of Perl result array must be " + "reference to hash"))); + } + row_hv = (HV *) SvRV(*svp); tuple = plperl_build_tuple_result(row_hv, attinmeta); @@ -914,10 +924,15 @@ AV *ret_av; FuncCallContext *funcctx; - if (!SvOK(perlret) || SvTYPE(perlret) != SVt_RV || SvTYPE(SvRV(perlret)) != SVt_PVAV) + if (!SvOK(perlret) || SvTYPE(perlret) != SVt_RV || + SvTYPE(SvRV(perlret)) != SVt_PVAV) + { ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("set-returning Perl function must return reference to array"))); + errmsg("set-returning Perl function must return " + "reference to array"))); + } + ret_av = (AV *) SvRV(perlret); if (SRF_IS_FIRSTCALL()) @@ -969,10 +984,15 @@ AttInMetadata *attinmeta; HeapTuple tup; - if (!SvOK(perlret) || SvTYPE(perlret) != SVt_RV || SvTYPE(SvRV(perlret)) != SVt_PVHV) + if (!SvOK(perlret) || SvTYPE(perlret) != SVt_RV || + SvTYPE(SvRV(perlret)) != SVt_PVHV) + { ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("composite-returning Perl function must return reference to hash"))); + errmsg("composite-returning Perl function " + "must return reference to hash"))); + } + perlhash = (HV *) SvRV(perlret); /* @@ -1077,7 +1097,8 @@ { ereport(ERROR, (errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED), - errmsg("result of Perl trigger function must be undef, \"SKIP\" or \"MODIFY\""))); + errmsg("result of Perl trigger function must be undef, " + "\"SKIP\" or \"MODIFY\""))); trv = NULL; } retval = PointerGetDatum(trv); @@ -1227,7 +1248,8 @@ free(prodesc); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("trigger functions may only be called as triggers"))); + errmsg("trigger functions may only be called " + "as triggers"))); } else {