From 36ea26793a14d016059de2f1c83a05cf87a8bb92 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 10 Jan 2003 11:02:51 +0000 Subject: [PATCH] Add optional drop behavior clause to REVOKE command, for SQL conformance. Currently, only RESTRICT is allowed. --- doc/src/sgml/features.sgml | 14 +++++++------- doc/src/sgml/ref/revoke.sgml | 12 +++++++++++- src/backend/parser/gram.y | 8 ++++++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml index 30f20bf51e..fd01cd3cce 100644 --- a/doc/src/sgml/features.sgml +++ b/doc/src/sgml/features.sgml @@ -1,5 +1,5 @@ @@ -741,6 +741,12 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 pe + F031-19 + Core + REVOKE statement: RESTRICT clause + + + F032 CASCADE drop behavior @@ -1630,12 +1636,6 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 pe - F031-19 - Core - REVOKE statement: RESTRICT clause - - - F034 Extended REVOKE statement diff --git a/doc/src/sgml/ref/revoke.sgml b/doc/src/sgml/ref/revoke.sgml index 2b8334d3ee..345024bb7c 100644 --- a/doc/src/sgml/ref/revoke.sgml +++ b/doc/src/sgml/ref/revoke.sgml @@ -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. + diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 7626fe0e44..bfb1e427fb 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -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; } ; -- 2.11.0