deparse/core: event triggers support GRANT/REVOKE
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 9 May 2014 22:32:23 +0000 (18:32 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 18 Jun 2014 15:15:32 +0000 (11:15 -0400)
src/backend/commands/event_trigger.c
src/backend/tcop/utility.c

index 21d09537197946b4f1cfec8a8fa8c1833857e616..2c3455a6433b289377959ffdba062eea4e342c25 100644 (file)
@@ -251,6 +251,8 @@ check_ddl_tag(const char *tag)
        pg_strcasecmp(tag, "ALTER DEFAULT PRIVILEGES") == 0 ||
        pg_strcasecmp(tag, "ALTER LARGE OBJECT") == 0 ||
        pg_strcasecmp(tag, "ALTER TABLESPACE MOVE") == 0 ||
+       pg_strcasecmp(tag, "GRANT") == 0 ||
+       pg_strcasecmp(tag, "REVOKE") == 0 ||
        pg_strcasecmp(tag, "DROP OWNED") == 0)
        return EVENT_TRIGGER_COMMAND_TAG_OK;
 
index 555322195653e792c2b2d4e18d15df9a3520882e..15feeadd6ba225b2aaa9b271b180223599276bf4 100644 (file)
@@ -545,11 +545,6 @@ standard_ProcessUtility(Node *parsetree,
            DeallocateQuery((DeallocateStmt *) parsetree);
            break;
 
-       case T_GrantStmt:
-           /* no event triggers for global objects */
-           ExecuteGrantStmt((GrantStmt *) parsetree);
-           break;
-
        case T_GrantRoleStmt:
            /* no event triggers for global objects */
            GrantRole((GrantRoleStmt *) parsetree);
@@ -1307,6 +1302,11 @@ ProcessUtilitySlow(Node *parsetree,
                ExecAlterOwnerStmt((AlterOwnerStmt *) parsetree);
                break;
 
+           case T_GrantStmt:
+               /* command is stashed in ExecuteGrantStmt_oids */
+               ExecuteGrantStmt((GrantStmt *) parsetree);
+               break;
+
            case T_DropOwnedStmt:
                DropOwnedObjects((DropOwnedStmt *) parsetree);
                break;