plperlu hash problem

From: "Bart Degryse" <Bart(dot)Degryse(at)indicator(dot)be>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: plperlu hash problem
Date: 2007-04-26 07:07:13
Message-ID: 46306BC0.A3DD.0030.0@indicator.be
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I have a little Perl problem. When I call function dbi_select_test like
SELECT * from dbi_select_test() I get the expected result.
However when I call SELECT * from dbi_select I get an error message
saying "ERROR: error from Perl function: setof-composite-returning Perl
function must call return_next with reference to hash at line 9." My
perl knowledge seems to be too limited to find the solution myself. Can
anyone help me out or refer me to a better suited forum? Thanks

CREATE OR REPLACE FUNCTION "public"."dbi_select_test" () RETURNS SETOF
text AS
$body$
use DBI;

my $dbh =
DBI->connect('dbi:Oracle:bmssa;host=firev120-1.indicator.be;sid=mars',
'bmssa', '********')
or die "Couldn't connect to database: " . DBI->errstr;
my $sth = $dbh->prepare('SELECT * FROM address')
or die "Couldn't prepare statement: " . $dbh->errstr;
$sth->execute() or die "Couldn't execute statement: " . $sth->errstr;
while (my $row = $sth->fetchrow_hashref) {
return_next($$row{'ADDRTABLEID'});
}
$sth->finish;
return;
$body$
LANGUAGE 'plperlu' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

CREATE OR REPLACE FUNCTION "public"."dbi_select" () RETURNS SETOF
"bmssa"."ADDRESS" AS
$body$
use DBI;
my $dbh =
DBI->connect('dbi:Oracle:bmssa;host=firev120-1.indicator.be;sid=mars',
'bmssa', '********')
or die "Couldn't connect to database: " . DBI->errstr;
my $sth = $dbh->prepare('SELECT * FROM address')
or die "Couldn't prepare statement: " . $dbh->errstr;
$sth->execute() or die "Couldn't execute statement: " .
$sth->errstr;
while (my %row = $sth->fetchrow_hashref) {
return_next($row);
}
$sth->finish;
return;
$body$
LANGUAGE 'plperlu' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

CREATE TABLE "bmssa"."ADDRESS" (
"ADDRTABLEID" TEXT,
"ADDRRECID" TEXT,
"LINENUM" TEXT,
"TYPE" TEXT,
"NAME" TEXT,
"ADDRESS" TEXT,
"PHONE" TEXT,
"TELEFAX" TEXT,
"COUNTRY" TEXT,
"DEL_SWIFTNUMBER" TEXT,
"ZIPCODE" TEXT,
"STATE" TEXT,
"COUNTY" TEXT,
"TELEX" TEXT,
"URL" TEXT,
"PHONELOCAL" TEXT,
"CELLULARPHONE" TEXT,
"EMAIL" TEXT,
"TAXGROUP" TEXT,
"CITY" TEXT,
"STREET" TEXT,
"PAGER" TEXT,
"SMS" TEXT,
"REFZIPCODE" TEXT,
"DATAAREAID" TEXT,
"RECID" TEXT
) WITHOUT OIDS;

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Dmitry Turin 2007-04-26 08:28:30 Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
Previous Message Tom Lane 2007-04-26 05:25:10 Re: Add constraint for number of chars