Add optional drop behavior clause to REVOKE command, for SQL conformance.
authorPeter Eisentraut
Fri, 10 Jan 2003 11:02:51 +0000 (11:02 +0000)
committerPeter Eisentraut
Fri, 10 Jan 2003 11:02:51 +0000 (11:02 +0000)
Currently, only RESTRICT is allowed.

doc/src/sgml/features.sgml
doc/src/sgml/ref/revoke.sgml
src/backend/parser/gram.y

index 30f20bf51e42a5e8d488e249f985d1902e3ae71d..fd01cd3cce62515d9fa2be8253eca695827afbae 100644 (file)
@@ -1,5 +1,5 @@
 
 
 
@@ -740,6 +740,12 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 pe
         DROP VIEW statement: RESTRICT clause
         
        
+       
+        F031-19
+        Core
+        REVOKE statement: RESTRICT clause
+        
+       
        
         F032
         
@@ -1629,12 +1635,6 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 pe
         Module language
         
        
-       
-        F031-19
-        Core
-        REVOKE statement: RESTRICT clause
-        
-       
        
         F034
         
index 2b8334d3ee908b9d4610c135ee0e75186a486767..345024bb7cc42f5d61dbbbcd04818f3f9c7e4864 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -20,22 +20,27 @@ REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
     [,...] | ALL [ PRIVILEGES ] }
     ON [ TABLE ] tablename [, ...]
     FROM { username | GROUP groupname | PUBLIC } [, ...]
+    [ RESTRICT ]
 
 REVOKE { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
     ON DATABASE dbname [, ...]
     FROM { username | GROUP groupname | PUBLIC } [, ...]
+    [ RESTRICT ]
 
 REVOKE { EXECUTE | ALL [ PRIVILEGES ] }
     ON FUNCTION funcname ([type, ...]) [, ...]
     FROM { username | GROUP groupname | PUBLIC } [, ...]
+    [ RESTRICT ]
 
 REVOKE { USAGE | ALL [ PRIVILEGES ] }
     ON LANGUAGE langname [, ...]
     FROM { username | GROUP groupname | PUBLIC } [, ...]
+    [ RESTRICT ]
 
 REVOKE { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
     ON SCHEMA schemaname [, ...]
     FROM { username | GROUP groupname | PUBLIC } [, ...]
+    [ RESTRICT ]
 
  
 
@@ -63,6 +68,11 @@ REVOKE { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    See the description of the  command for
    the meaning of the privilege types.
   
+
+  
+   The RESTRICT key word is currently only noise.
+   See also the compatibility notes below.
+  
  
 
  
index 7626fe0e449888a4c39dc5b9ecba179cdd58851a..bfb1e427fb43d0957479fa1815c255bce089bcd0 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.392 2003/01/09 20:50:51 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.393 2003/01/10 11:02:51 petere Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -2751,7 +2751,7 @@ GrantStmt:    GRANT privileges ON privilege_target TO grantee_list
        ;
 
 RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target
-           FROM grantee_list
+           FROM grantee_list opt_drop_behavior
                {
                    GrantStmt *n = makeNode(GrantStmt);
                    n->is_grant = false;
@@ -2759,6 +2759,10 @@ RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target
                    n->objtype = ($5)->objtype;
                    n->objects = ($5)->objs;
                    n->grantees = $7;
+
+                   if ($8 == DROP_CASCADE)
+                       elog(ERROR, "REVOKE ... CASCADE is not implemented");
+
                    $$ = (Node *)n;
                }
        ;