[PHP] Re: pgSQL Functions with results set to php?

2002-07-14 Thread Richard Lynch

List,
 I'm creating a PHP/pgSQL web site...I need to execute queries with a 
cursor and get their result set into my PHP script.  How can I make a 
pgSQL procedure with logic that also returns a result set?  I've 
searched and searched but cannot find the answer.  Does anyone got it?

Any old select will return a result set that works with a query...

But if you need your PostgreSQL FUNCTION to return a result set, I *think*
you need to use:

'set of XXX'

for the 'rettype' (return type)

and I *THINK* you can figure out what to use for XXX if you start digging to
find the name/oid of the complex type that represents a row in your table
here:

http://www.postgresql.org/idocs/index.php?catalog-pg-type.html

I've never done this, I just did a little digging right now, and this is
where I would keep digging if I was working on this...

But it sounds to me like PostgreSQL already *has* a complex type to
represent the tuples in your table, and you just need to find out what the
name of that complex type might be.  It may even turn out to be just the
table name or something...

-- 
Like Music?  http://l-i-e.com/artists.htm


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP] Re: pgSQL Functions with results set to php?

2002-07-14 Thread Joe Conway

Richard Lynch wrote:
List,
I'm creating a PHP/pgSQL web site...I need to execute queries with a 
cursor and get their result set into my PHP script.  How can I make a 
pgSQL procedure with logic that also returns a result set?  I've 
searched and searched but cannot find the answer.  Does anyone got it?
 
 
 Any old select will return a result set that works with a query...
 
 But if you need your PostgreSQL FUNCTION to return a result set, I *think*
 you need to use:
 
 'set of XXX'
 
 for the 'rettype' (return type)
 
 and I *THINK* you can figure out what to use for XXX if you start digging to
 find the name/oid of the complex type that represents a row in your table
 here:
 
 http://www.postgresql.org/idocs/index.php?catalog-pg-type.html
 
 I've never done this, I just did a little digging right now, and this is
 where I would keep digging if I was working on this...
 
 But it sounds to me like PostgreSQL already *has* a complex type to
 represent the tuples in your table, and you just need to find out what the
 name of that complex type might be.  It may even turn out to be just the
 table name or something...
 

A complex, or aka composite, type in PostgreSQL is represented by 
the name of a table or view. The capability to return setof 
a-composite-type exists in a limited way in PostgreSQL 7.2.x. See the 
thread at:

   http://archives.postgresql.org/pgsql-interfaces/2002-06/msg00042.php

for a recent discussion about this with some examples.

PostgreSQL 7.3, when it is released, will have much better capability. 
You will be able to do:

test=# select * from getfoo(1);
   fooid | f2
---+-
   1 |  11
   1 | 111
(2 rows)

In cvs HEAD you can do this already with SQL language functions and C 
language functions.

HTH,

Joe


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php