Re: Using current_database() in a grant

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Using current_database() in a grant
Дата
Msg-id 13193.1035135421@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Using current_database() in a grant  (Bruno Wolff III <bruno@wolff.to>)
Список pgsql-general
Bruno Wolff III <bruno@wolff.to> writes:
> area=# grant create on database current_database() to bruno;
> ERROR:  parser: parse error at or near "(" at character 42

GRANT, like essentially all other utility statements, only allows
simple names and literal constants in its parameters.  I'm not
excited about trying to generalize that to arbitrary expressions
(or even just function calls), for a couple of reasons:

* probable syntax problems (shift/reduce conflicts), which could only be
resolved by turning lots more keywords into fully-reserved words.  The
syntax of the utility commands is pretty irregular and involves lots of
keywords that don't presently have to be reserved because they're not
keywords when used in or near expressions.  We'd lose that separation
if we allowed expressions in the utility commands.

* implementation problems and definitional problems in allowing
arbitrary user-defined code to run while a utility command is executed.


You can do what you want to do easily enough with a plpgsql function
containing an EXECUTE command, so I don't see the need to try to
implement it at a lower level ...

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Problem granting usage on language c
Следующее
От: Hunter Hillegas
Дата:
Сообщение: Buffers and MacOS X