Patch applied. Thanks. ---------------------------------------------------------------------------
Andrew Dunstan wrote: > > Following up a previous thought I had, yesterday I realised how to > return arays nicely without having to make the plperl programmer aware > of anything. The attached patch allows plperl to return an arrayref > where the function returns an array type. It silently calls a perl > function to stringify the array before passing it to the pg array > parser. Non-array returns are handled as before (i.e. passed through > this process) so it is backwards compatible. I will presently submit > regression tests and docs. > > example: > > andrew=# create or replace function blah() returns text[][] language > plperl as $$ return [['a"b','c,d'],['e\\f','g']]; $$; > CREATE FUNCTION > andrew=# select blah(); > blah > ----------------------------- > {{"a\"b","c,d"},{"e\\f",g}} > > > This would complete half of the TODO item: > > . Pass arrays natively instead of as text between plperl and postgres > > (The other half is translating pg array arguments to perl arrays - that > will have to wait for 8.1). > > Some of this patch is adapted from a previously submitted patch from > Sergej Sergeev. Both he and Abhijit Menon-Sen have looked it over > briefly and tentatively said it looks ok. > > cheers > > andrew > > ---------------------------(end of broadcast)--------------------------- > TIP 9: In versions below 8.0, the planner will ignore your desire to > choose an index scan if your joining column's datatypes do not > match -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match