Commit 176c3c8d authored by Andrew Dunstan's avatar Andrew Dunstan

Convert a perl array to a postgres array when returned by Set Returning...

Convert a perl array to a postgres array when returned by Set Returning Functions as well as non SRFs. Backpatch to 8.1 where these facilities were introduced. with a little help from Abhijit Menon-Sen.
parent 2ad57ee2
/********************************************************************** /**********************************************************************
* plperl.c - perl as a procedural language for PostgreSQL * plperl.c - perl as a procedural language for PostgreSQL
* *
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.151 2009/09/16 06:06:12 petere Exp $ * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.152 2009/09/28 17:31:12 adunstan Exp $
* *
**********************************************************************/ **********************************************************************/
...@@ -2021,7 +2021,15 @@ plperl_return_next(SV *sv) ...@@ -2021,7 +2021,15 @@ plperl_return_next(SV *sv)
if (SvOK(sv)) if (SvOK(sv))
{ {
char *val = SvPV(sv, PL_na); char *val;
if (prodesc->fn_retisarray && SvROK(sv) &&
SvTYPE(SvRV(sv)) == SVt_PVAV)
{
sv = plperl_convert_to_pg_array(sv);
}
val = SvPV(sv, PL_na);
ret = InputFunctionCall(&prodesc->result_in_func, val, ret = InputFunctionCall(&prodesc->result_in_func, val,
prodesc->result_typioparam, -1); prodesc->result_typioparam, -1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment