Re: RE: pl/pgsql and returning rows - Mailing list pgsql-sql

From Bruce Momjian
Subject Re: RE: pl/pgsql and returning rows
Date
Msg-id 200103272151.QAA10259@candle.pha.pa.us
Whole thread Raw
In response to RE: pl/pgsql and returning rows  (Jeff Eckermann <jeckermann@verio.net>)
List pgsql-sql
MY book in chapter 18 has a Pl/PgSQL function called change_statename
that does insert/update automatically.
http://www.postgresql.org/docs/awbook.html

> As a workaround, you can insert your row into an existing table, then
> retrieve it from there later.  I think you need to enumerate all of the
> fields, as in 'INSERT INTO table VALUES (ret.field1,
> ret.field2,...ret.fieldn);'.  At least, I haven't succeeded any other way.
> Messy, but the best method available right now.
> 
> > -----Original Message-----
> > From:    Richard Huxton [SMTP:dev@archonet.com]
> > Sent:    Tuesday, March 27, 2001 2:27 AM
> > To:    pgsql-sql@postgresql.org; wade
> > Subject:    Re: pl/pgsql and returning rows
> > 
> > From: "wade" <wade@wavefire.com>
> > 
> > > create function get_details(int4) returns details as '
> > > declare
> > >   ret details%ROWTYPE;
> > >   site_rec    record;
> > >   cntct       contacts%ROWTYPE;
> > > begin
> > >   select into site_rec  * sites_table where id = $1 limit 1;
> > >   select into cntct * from contacts where id = site_rec.contact;
> > >
> > > -- and then i populate rows of ret.
> > >   ret.name := cntct.name;
> > >   ret.ip := site_rec.ip;
> > > .
> > > .
> > > .
> > >   return ret;
> > > end;
> > > ' language 'plpgsql';
> > >
> > > now the problem is when is when I do a:
> > >   SELECT get_details(55);
> > > all i get is a single oid-looking return value:
> > >  get_details
> > > -------------
> > >  136295592
> > > (1 row)
> > 
> > Sorry - you can't return a row from a function at the present time (except
> > for trigger functions which are special) although I believe this is on the
> > todo list for a later 7.x release.
> > 
> > Just from the top of my head, you might try a view with a select rule,
> > although I'm not completely clear what your objectives are.
> > 
> > - Richard Huxton
> > 
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 


--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-sql by date:

Previous
From: Jeff Eckermann
Date:
Subject: RE: pl/pgsql and returning rows
Next
From: Bruce Momjian
Date:
Subject: Re: RE: pl/pgsql and returning rows