The following bug has been logged online:

Bug reference:      5909
Logged by:          tushar
Email address:      tushar...@gmail.com
PostgreSQL version: 9.0.2
Operating system:   RHEL-5 32 bit
Description:        Function pg_get_expr  throwing error for non superuser
Details: 

Pls refer this below scenario

PG 8.4.4:-
=========
connect to non superuser :- 

postgres=# \c - t
psql (8.4.4)
You are now connected to database "postgres" as user "t".
postgres=>  select pg_get_expr('a',null);
 pg_get_expr 
-------------
 
(1 row)

postgres=> 


 PG 9.0.2
=========

connect to non superuser :- 
postgres=# \c - t
You are now connected to database "postgres" as user "t".
postgres=>  select pg_get_expr('a',null);
ERROR:  argument to pg_get_expr() must come from system catalogs
postgres=> 

Workaround:- if user is superuser then it is working fine.. 

I found a thread somewhat related to this above issue :-

http://archives.postgresql.org/pgsql-hackers/2010-07/msg00503.php

which look fixed now in PG 9.0.2 

e.g:- 

postgres=> SELECT pg_get_expr(proargdefaults,
'pg_catalog.pg_class'::regclass)
  FROM pg_proc pr
  LEFT OUTER JOIN pg_description des ON des.objoid=pr.oid limit 0;
 pg_get_expr 
-------------
(0 rows)

postgres=> 

so i feel this query :-select pg_get_expr('a',null);
should also work in PG 9.0.2  but it is not working. is this an expected
behavior

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to