pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bart Degryse <Bart.Degryse@indicator.be>
To: pgsql-sql@postgresql.org
Subject: plperlu hash problem
Date: Thu, 26 Apr 2007 09:07:13 +0200
Message-ID: <46306BC0.A3DD.0030.0@indicator.be> (raw)

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;

view thread (3+ messages)  latest in thread

Message-ID: <46306BC0.A3DD.0030.0@indicator.be>
Permalink:  ../46306BC0.A3DD.0030.0@indicator.be/
Also on:    postgresql.org/message-id/46306BC0.A3DD.0030.0@indicator.be

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: Bart.Degryse@indicator.be
  Subject: Re: plperlu hash problem
  In-Reply-To: <46306BC0.A3DD.0030.0@indicator.be>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox