Re: Parser conflicts in extended GRANT statement
От | Tom Lane |
---|---|
Тема | Re: Parser conflicts in extended GRANT statement |
Дата | |
Msg-id | 16980.1013819344@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Parser conflicts in extended GRANT statement (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-hackers |
Peter Eisentraut <peter_e@gmx.net> writes: > Entertaining parser conflicts again. I agree with sorting out the privileges lists later. > Attempt 2: > We set up > privileges = SELECT | UPDATE | ... | EXECUTE | ALL PRIVILEGES > grant_table = GRANT privileges ON tablename TO ... > grant_func = GRANT privileges ON FUNCTION funcname(...) TO ... > This leads to a shift/reduce conflict at the state > GRANT privileges ON FUNCTION > where FUNCTION could be a table name or introducing an actual function > name. The trick with this sort of problem is to make sure that the parser doesn't have to reduce anything until it's seen enough tokens to make the result unambiguous. You are losing here because the parser has to decide whether or not to reduce FUNCTION to tablename before it can see any further than the TO. I think it might work to do grant := GRANT privileges ON grant_target TO ... grant_target := tablename | FUNCTION funcname(...) regards, tom lane
В списке pgsql-hackers по дате отправления: