From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Brightwell, Adam" <adam(dot)brightwell(at)crunchydatasolutions(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, Craig Ringer <craig(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Yeb Havinga <yeb(dot)havinga(at)portavita(dot)nl> |
Subject: | Re: RLS Design |
Date: | 2014-07-17 00:04:49 |
Message-ID: | 7874.1405555489@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Brightwell, Adam" <adam(dot)brightwell(at)crunchydatasolutions(dot)com> writes:
>> You could do:
>>
>> ALTER TABLE table_name ADD POLICY policy_name (quals);
>> ALTER TABLE table_name POLICY FOR role_name IS policy_name;
>> ALTER TABLE table_name DROP POLICY policy_name;
> I am attempting to modify the grammar to support the above syntax.
> Unfortunately, I am encountering quite a number (280) shift/reduce
> errors/conflicts in bison. I have reviewed the bison documentation as well
> as the wiki page on resolving such conflicts. However, I am not entirely
> certain on the direction I should take in order to resolve these conflicts.
> I attempted to create a more redundant production like the wiki described,
> but unfortunately that was not successful. I have attached both the patch
> and bison report. Any help, recommendations or suggestions would be
> greatly appreciated.
20MB messages to the list aren't that friendly. Please don't do that
again, unless asked to.
FWIW, the above syntax is a nonstarter, at least unless we're willing to
make POLICY a reserved word (hint: we're not). The reason is that the
ADD/DROP COLUMN forms consider COLUMN to be optional, meaning that the
column name could directly follow ADD; and the column type name, which
could also be just a plain identifier, would directly follow that. So
there's no way to resolve the ambiguity with one token of lookahead.
This actually isn't just bison being stupid: in fact, you simply
cannot tell whether
ALTER TABLE tab ADD POLICY varchar(42);
is an attempt to add a column named "policy" of type varchar(42), or an
attempt to add a policy named "varchar" with quals "42".
Pick a different syntax.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2014-07-17 00:49:58 | Re: RLS Design |
Previous Message | Tom Lane | 2014-07-16 23:45:56 | Re: Allow GRANT TRIGGER privilege to DROP TRIGGER (Re: Bug ##7716) |