Re: ERROR: argument to pg_get_expr() must come from system catalogs

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: ERROR: argument to pg_get_expr() must come from system catalogs
Дата
Msg-id 4C4009F8.5030101@enterprisedb.com
обсуждение исходный текст
Ответ на Re: ERROR: argument to pg_get_expr() must come from system catalogs  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: ERROR: argument to pg_get_expr() must come from system catalogs  (Robert Haas <robertmhaas@gmail.com>)
Re: ERROR: argument to pg_get_expr() must come from system catalogs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 13/07/10 21:36, Tom Lane wrote:
> Dave Page<dpage@pgadmin.org>  writes:
>> We had a report of the above error from a pgAdmin user testing
>> 1.12.0b3 with PG 9.0b3. The (highly simplified) query below works fine
>> as a superuser:
>
>> 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
>
>> Run as a regular user though, we get the error. If I remove the join,
>> it works fine as the normal user. This is in a database owned by the
>> regular user.
>
>> Am I missing something obvious, or is there a bug here?
>
> Yeah, it's a bug.  The code Heikki added in parse_expr.c isn't allowing
> for the possibility of join alias Vars.

Hmm, shouldn't be too hard to fix..

>  (There's another problem with
> it too, which is you can trivially circumvent the check, just by
> creating an operator based on pg_get_expr ...)

Yeah, good catch. That should be fixable too..

> I wasn't terribly happy with that approach to begin with.  I think we
> need to rethink.

Do you want to go ahead with your plan of changing what's passed in 
FuncInfo? I won't object if you want to do it, but I wouldn't feel 
comfortable with backporting such big changes myself.

If we continue with the approach I took, we should implement the 
suggestion to create a new data type for this in 9.1. That would be more 
waterproof than the changes I made, if we introduce new ways to call 
functions in the future.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: SHOW TABLES
Следующее
От: Fujii Masao
Дата:
Сообщение: Re: Synchronous replication