Thread: result sets from functions...

result sets from functions...

From
"Robert J. Sanford, Jr."
Date:
i'm reading the postgres documentation and i'm specifically
interested in creating stored procedures so that i can keep
as much of the business logic in the database as possible.
while reading 13.1.3 (SQL Functions on Composite Types) in
the Programmer's Guide i come across the phrase...  "When calling a function that returns a row, we cannot  retrieve
theentire row. We must either project an  attribute out of the row or pass the entire row into  another function.
SELECTname(new_emp()) AS nobody;"
 

how does this affect calling functions as stored procedures
from the jdbc driver and getting a result set returned bac?
am i allowed to use Connection.PrepareCall() to create a
CallableStatement against a postgres function and receive a
ResultSet that can be iterated over?

thanks!

rjsjr



Re: result sets from functions...

From
"Josh Berkus"
Date:
Robert,

> i'm reading the postgres documentation and i'm specifically
> interested in creating stored procedures so that i can keep
> as much of the business logic in the database as possible.
> while reading 13.1.3 (SQL Functions on Composite Types) in
> the Programmer's Guide i come across the phrase...
>    "When calling a function that returns a row, we cannot
>    retrieve the entire row. We must either project an
>    attribute out of the row or pass the entire row into
>    another function.
>       SELECT name(new_emp()) AS nobody;"

Unfortunately, PostgreSQL functions do not yet return result sets.  This
is on the "todo" list but unfortunately requires an overhaul of how
postgresql functions work.

-Josh Berkus

______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco
 


Re: result sets from functions...

From
Jan Wieck
Date:
Josh Berkus wrote:
> Robert,
>
> > i'm reading the postgres documentation and i'm specifically
> > interested in creating stored procedures so that i can keep
> > as much of the business logic in the database as possible.
> > while reading 13.1.3 (SQL Functions on Composite Types) in
> > the Programmer's Guide i come across the phrase...
> >    "When calling a function that returns a row, we cannot
> >    retrieve the entire row. We must either project an
> >    attribute out of the row or pass the entire row into
> >    another function.
> >       SELECT name(new_emp()) AS nobody;"
>
> Unfortunately, PostgreSQL functions do not yet return result sets.  This
> is on the "todo" list but unfortunately requires an overhaul of how
> postgresql functions work.
   As  said,  in  v7.2  we'll have the ability to return cursors   from functions (and I'm looking actually into the
ability of   doing  RETURN AND RESUME).  So there is at least some sort of   workaround on the horizon.
 


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com