Skip to content

Commit 36ea267

Browse files
committed
Add optional drop behavior clause to REVOKE command, for SQL conformance.
Currently, only RESTRICT is allowed.
1 parent 611278c commit 36ea267

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

doc/src/sgml/features.sgml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 petere Exp $
2+
$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.13 2003/01/10 11:02:41 petere Exp $
33
-->
44

55
<appendix id="features">
@@ -740,6 +740,12 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 pe
740740
<entry>DROP VIEW statement: RESTRICT clause</entry>
741741
<entry></entry>
742742
</row>
743+
<row>
744+
<entry>F031-19</entry>
745+
<entry>Core</entry>
746+
<entry>REVOKE statement: RESTRICT clause</entry>
747+
<entry></entry>
748+
</row>
743749
<row>
744750
<entry>F032</entry>
745751
<entry></entry>
@@ -1629,12 +1635,6 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.12 2002/12/14 00:24:23 pe
16291635
<entry>Module language</entry>
16301636
<entry></entry>
16311637
</row>
1632-
<row>
1633-
<entry>F031-19</entry>
1634-
<entry>Core</entry>
1635-
<entry>REVOKE statement: RESTRICT clause</entry>
1636-
<entry></entry>
1637-
</row>
16381638
<row>
16391639
<entry>F034</entry>
16401640
<entry></entry>

doc/src/sgml/ref/revoke.sgml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
$Header: /cvsroot/pgsql/doc/src/sgml/ref/revoke.sgml,v 1.23 2002/11/21 23:34:43 petere Exp $
2+
$Header: /cvsroot/pgsql/doc/src/sgml/ref/revoke.sgml,v 1.24 2003/01/10 11:02:51 petere Exp $
33
PostgreSQL documentation
44
-->
55

@@ -20,22 +20,27 @@ REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
2020
[,...] | ALL [ PRIVILEGES ] }
2121
ON [ TABLE ] <replaceable class="PARAMETER">tablename</replaceable> [, ...]
2222
FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
23+
[ RESTRICT ]
2324

2425
REVOKE { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
2526
ON DATABASE <replaceable>dbname</replaceable> [, ...]
2627
FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
28+
[ RESTRICT ]
2729

2830
REVOKE { EXECUTE | ALL [ PRIVILEGES ] }
2931
ON FUNCTION <replaceable>funcname</replaceable> ([<replaceable>type</replaceable>, ...]) [, ...]
3032
FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
33+
[ RESTRICT ]
3134

3235
REVOKE { USAGE | ALL [ PRIVILEGES ] }
3336
ON LANGUAGE <replaceable>langname</replaceable> [, ...]
3437
FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
38+
[ RESTRICT ]
3539

3640
REVOKE { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
3741
ON SCHEMA <replaceable>schemaname</replaceable> [, ...]
3842
FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
43+
[ RESTRICT ]
3944
</synopsis>
4045
</refsynopsisdiv>
4146

@@ -63,6 +68,11 @@ REVOKE { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
6368
See the description of the <xref linkend="sql-grant" endterm="sql-grant-title"> command for
6469
the meaning of the privilege types.
6570
</para>
71+
72+
<para>
73+
The <literal>RESTRICT</literal> key word is currently only noise.
74+
See also the compatibility notes below.
75+
</para>
6676
</refsect1>
6777

6878
<refsect1 id="SQL-REVOKE-notes">

src/backend/parser/gram.y

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*
1212
*
1313
* IDENTIFICATION
14-
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.392 2003/01/09 20:50:51 tgl Exp $
14+
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.393 2003/01/10 11:02:51 petere Exp $
1515
*
1616
* HISTORY
1717
* AUTHOR DATE MAJOR EVENT
@@ -2751,14 +2751,18 @@ GrantStmt: GRANT privileges ON privilege_target TO grantee_list
27512751
;
27522752

27532753
RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target
2754-
FROM grantee_list
2754+
FROM grantee_list opt_drop_behavior
27552755
{
27562756
GrantStmt *n = makeNode(GrantStmt);
27572757
n->is_grant = false;
27582758
n->privileges = $3;
27592759
n->objtype = ($5)->objtype;
27602760
n->objects = ($5)->objs;
27612761
n->grantees = $7;
2762+
2763+
if ($8 == DROP_CASCADE)
2764+
elog(ERROR, "REVOKE ... CASCADE is not implemented");
2765+
27622766
$$ = (Node *)n;
27632767
}
27642768
;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy