Help with a plperl function

From: Alex <alex(at)meerkatsoft(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Help with a plperl function
Date: 2005-04-18 17:00:07
Message-ID: 4263E797.8000500@meerkatsoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,
i am having a problem with a plperl function. bellow function always
returns me an error saying "elements of Perl result array must be
reference to hash"

Can anyone point me out what i am doing wrong here?
Basically i try to return data from a select in a specific record format.
(i know that bellow example does not require a function, just want to
get a feel for it.)

Thanks in advance for any tips.

Alex

DROP FUNCTION get_item ();
DROP TYPE my_items;

CREATE TYPE my_items AS (
item_id INTEGER,
description TEXT,
order_date DATE);

CREATE FUNCTION get_item () RETURNS SETOF my_items AS $$

my $res = [];
my $rv = spi_exec_query('SELECT * FROM items LIMIT 10');

my $nrows = $rv->{processed};
foreach my $rn (0 .. $nrows - 1) {

my $row = $rv->{rows}[$rn];
my @record;

$record[0] = $row->{item_id};
$record[1] = $row->{item_descr};
$record[2] = $row->{start_date};

push @$res, @record;
}
return $res;

$$ LANGUAGE plperl;

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Matt Van Mater 2005-04-18 17:01:44 *bsd port that installs the contribs?
Previous Message Scott Marlowe 2005-04-18 16:58:19 Re: Building a "complex" select?