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

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: ERROR: argument to pg_get_expr() must come from system catalogs
Дата
Msg-id 4378.1279046192@sss.pgh.pa.us
обсуждение исходный текст
Ответ на ERROR: argument to pg_get_expr() must come from system catalogs  (Dave Page <dpage@pgadmin.org>)
Ответы Re: ERROR: argument to pg_get_expr() must come from system catalogs  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Список pgsql-hackers
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.  (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 ...)

I wasn't terribly happy with that approach to begin with.  I think we
need to rethink.
        regards, tom lane


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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Per-column collation, proof of concept
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: bg worker: overview