Tom Lane wrote:
Peter Eisentraut <pete...@gmx.net> writes:
The SQL standard uses a recursive-by-default language. For example, the rules for the DELETE command state:

Actually, I'm not convinced.  Take a look at the SELECT WITH HIERARCHY
OPTION stuff in SQL99 and later, in particular this from SQL99
12.2 <grant privilege statement>:

         7) Let SWH be the set of privilege descriptors in CPD whose action
            is SELECT WITH HIERARCHY OPTION, and let ST be the set of
            subtables of O, then for every grantee G in SWH and for every
            table T in ST, the following <grant statement> is effectively
            executed without further Access Rule checking:

              GRANT SELECT ON T TO G GRANTED BY A

It's difficult to read that any other way than that privileges are *not*
auto-recursive, and they have chosen to spell "*" in GRANT as "WITH
HIERARCHY OPTION" (gackk).

On the other hand, it's hard to square that reading with the lack of any
UPDATE or DELETE WITH HIERARCHY OPTION syntax.  What am I missing here?

                        

It's just occurred to me that if TRUNCATE no longer means TRUNCATE ONLY, parallel restore will need to detect which server version is being used so that for version > 8.3 it issues TRUNCATE ONLY. Otherwise there would be a danger of a collision between a table and its children. The only alternative would be to create a dependency between the data of a table and the data of its children, which would be undesirable as well as more complicated - in general the data should only depend on the table creation (at most).

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to