BUG #5909: Function pg_get_expr throwing error for non superuser - Mailing list pgsql-bugs

From tushar
Subject BUG #5909: Function pg_get_expr throwing error for non superuser
Date
Msg-id 201103030755.p237tR08010571@wwwmaster.postgresql.org
Whole thread Raw
List pgsql-bugs
The following bug has been logged online:

Bug reference:      5909
Logged by:          tushar
Email address:      tushar.qa@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

pgsql-bugs by date:

Previous
From: Robert Haas
Date:
Subject: Re: BUG #5843: documentation error
Next
From: "Joshua McDougall"
Date:
Subject: BUG #5911: pg_notify() function only works when channel name is lower case