mirror of
https://github.com/postgres/postgres.git
synced 2025-06-01 00:01:20 -04:00
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.
This commit is contained in:
parent
5136541a6a
commit
38da75e1e9
@ -1,7 +1,7 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* 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.150 2009/06/11 14:49:14 momjian Exp $
|
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.150.2.1 2009/09/28 17:30:56 adunstan Exp $
|
||||||
*
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
@ -1995,7 +1995,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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user