Re: Generic Join on Arrays - Mailing list pgsql-sql

From Michael Fuhr
Subject Re: Generic Join on Arrays
Date
Msg-id 20050530140857.GA78280@winnie.fuhr.org
Whole thread Raw
In response to Generic Join on Arrays  (KÖPFERL Robert <robert.koepferl@sonorys.at>)
List pgsql-sql
On Mon, May 30, 2005 at 03:42:49PM +0200, KÖPFERL Robert wrote:
> 
> As I found out, pg_proc relation provides me with data about defined stored
> procedures. Togehter with other relations as pg_type I can retrieve readable
> information, like:
> select proname, pd.description FROM  pg_proc pp left outer join
> pg_description   pd on  pp.oid=pd.objoid
> 
> BUT, how about arrays of type "oidvector" (int4-array) containing foreign
> keys (to be joined) as pg_proc's column  "proargtypes" 

Have you used ECHO_HIDDEN (or psql -E) to look at the queries that \df
generates?  Would oidvectortypes() be useful?

SELECT proname, oidvectortypes(proargtypes)
FROM pg_proc
WHERE proname = 'substr';proname |     oidvectortypes      
---------+-------------------------substr  | bytea, integersubstr  | text, integersubstr  | bytea, integer,
integersubstr | text, integer, integer
 
(4 rows)

Another possibility might be to cast the function's oid to regprocedure:

SELECT oid::regprocedure
FROM pg_proc
WHERE proname = 'substr';             oid              

-------------------------------substr(bytea,integer)substr(text,integer)substr(bytea,integer,integer)substr(text,integer,integer)
(4 rows)

Is either of those what you're looking for?  They don't address the
problem in the general case, but they might serve in this particular
case.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


pgsql-sql by date:

Previous
From: KÖPFERL Robert
Date:
Subject: Generic Join on Arrays
Next
From: KÖPFERL Robert
Date:
Subject: Re: Generic Join on Arrays