---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/revoke.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          SELECT_KW "select"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              INSERT_KW "insert"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              UPDATE_KW "update"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              DELETE_KW "delete"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              TRUNCATE_KW "truncate"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          REFERENCES_KW "references"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              TRIGGER_KW "trigger"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "maintain"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- on_table"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " \n  "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    TABLE_KW "table"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "b"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
      COMMA ","
      WHITESPACE " "
      ROLE_REF
        CURRENT_ROLE_KW "current_role"
    WHITESPACE "\n  "
    GRANTED_KW "granted"
    WHITESPACE " "
    BY_KW "by"
    WHITESPACE " "
    ROLE_REF
      NAME_REF
        IDENT "public"
    WHITESPACE "\n  "
    CASCADE_KW "cascade"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " \n  "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    TABLE_KW "table"
    WHITESPACE " "
    PATH
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "s"
      DOT "."
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
      COMMA ","
      WHITESPACE " "
      ROLE_REF
        CURRENT_ROLE_KW "current_role"
    WHITESPACE "\n  "
    GRANTED_KW "granted"
    WHITESPACE " "
    BY_KW "by"
    WHITESPACE " "
    ROLE_REF
      NAME_REF
        IDENT "public"
    WHITESPACE "\n  "
    CASCADE_KW "cascade"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "s"
      DOT "."
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "b"
      DOT "."
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- on_all_tables"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " \n  "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    ALL_KW "all"
    WHITESPACE " "
    TABLES_KW "tables"
    WHITESPACE " "
    IN_KW "in"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "foo"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "bar"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_ROLE_KW "current_role"
    WHITESPACE "\n  "
    RESTRICT_KW "restrict"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- columns"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          SELECT_KW "select"
          COLUMN_LIST
            L_PAREN "("
            COLUMN
              NAME_REF
                IDENT "a"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "b"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "c"
            R_PAREN ")"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE " \n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              INSERT_KW "insert"
          COLUMN_LIST
            L_PAREN "("
            COLUMN
              NAME_REF
                IDENT "a"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "b"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "c"
            R_PAREN ")"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE " \n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              UPDATE_KW "update"
          COLUMN_LIST
            L_PAREN "("
            COLUMN
              NAME_REF
                IDENT "a"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "b"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "c"
            R_PAREN ")"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE " \n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          REFERENCES_KW "references"
          COLUMN_LIST
            L_PAREN "("
            COLUMN
              NAME_REF
                IDENT "a"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "b"
            COMMA ","
            WHITESPACE " "
            COLUMN
              NAME_REF
                IDENT "c"
            R_PAREN ")"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE " \n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
      COLUMN_LIST
        L_PAREN "("
        COLUMN
          NAME_REF
            IDENT "a"
        R_PAREN ")"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE " \n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      COLUMN_LIST
        L_PAREN "("
        COLUMN
          NAME_REF
            IDENT "a"
        R_PAREN ")"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "t"
    WHITESPACE " \n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- sequence"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          SELECT_KW "select"
    WHITESPACE " "
    ON_KW "on"
    WHITESPACE " "
    SEQUENCE_KW "sequence"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "s"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE " "
    ON_KW "on"
    WHITESPACE " "
    SEQUENCE_KW "sequence"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "a"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "b"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              UPDATE_KW "update"
    WHITESPACE " "
    ON_KW "on"
    WHITESPACE " "
    SEQUENCE_KW "sequence"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "x"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE " "
    ON_KW "on"
    WHITESPACE " "
    ALL_KW "all"
    WHITESPACE " "
    SEQUENCES_KW "sequences"
    WHITESPACE " "
    IN_KW "in"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "s"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE " "
    ON_KW "on"
    WHITESPACE " "
    ALL_KW "all"
    WHITESPACE " "
    SEQUENCES_KW "sequences"
    WHITESPACE " "
    IN_KW "in"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- database"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          CREATE_KW "create"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    DATABASE_KW "database"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          CREATE_KW "create"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "connect"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              TEMPORARY_KW "temporary"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              TEMP_KW "temp"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    DATABASE_KW "database"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    DATABASE_KW "database"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- domain"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    DOMAIN_KW "domain"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "a"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "b"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    DOMAIN_KW "domain"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "d"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- foreign_data"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    DATA_KW "data"
    WHITESPACE " "
    WRAPPER_KW "wrapper"
    WHITESPACE " "
    NAME_REF
      IDENT "d"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- foreign_server"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    SERVER_KW "server"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    FOREIGN_KW "foreign"
    WHITESPACE " "
    SERVER_KW "server"
    WHITESPACE " "
    NAME_REF
      IDENT "d"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- function"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    GRANT_KW "grant"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              EXECUTE_KW "execute"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    FUNCTION_KW "function"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "foo"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "bar"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              EXECUTE_KW "execute"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PROCEDURE_KW "procedure"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "foo"
        PARAM_LIST
          L_PAREN "("
          PARAM
            PARAM_IN
              IN_KW "in"
            WHITESPACE " "
            NAME
              IDENT "a"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    TEXT_KW "text"
          COMMA ","
          WHITESPACE " "
          PARAM
            PARAM_OUT
              OUT_KW "out"
            WHITESPACE " "
            NAME
              IDENT "b"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    NUMERIC_KW "numeric"
          COMMA ","
          WHITESPACE " "
          PARAM
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    BIGINT_KW "bigint"
          R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "bar"
        PARAM_LIST
          L_PAREN "("
          R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "z"
        PARAM_LIST
          L_PAREN "("
          PARAM
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    INT_KW "int"
          R_PAREN ")"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    ROUTINE_KW "routine"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "r"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    ALL_KW "all"
    WHITESPACE " "
    FUNCTIONS_KW "functions"
    WHITESPACE " "
    IN_KW "in"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    ALL_KW "all"
    WHITESPACE " "
    PROCEDURES_KW "procedures"
    WHITESPACE " "
    IN_KW "in"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "s"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    ALL_KW "all"
    WHITESPACE " "
    ROUTINES_KW "routines"
    WHITESPACE " "
    IN_KW "in"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "s"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PROCEDURE_KW "procedure"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "foo"
        PARAM_LIST
          L_PAREN "("
          PARAM
            PARAM_IN
              IN_KW "in"
            WHITESPACE " "
            NAME
              IDENT "a"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    TEXT_KW "text"
          COMMA ","
          WHITESPACE " "
          PARAM
            PARAM_OUT
              OUT_KW "out"
            WHITESPACE " "
            NAME
              IDENT "b"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    NUMERIC_KW "numeric"
          COMMA ","
          WHITESPACE " "
          PARAM
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    BIGINT_KW "bigint"
          R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "bar"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- language"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    LANGUAGE_KW "language"
    WHITESPACE " "
    NAME_REF
      IDENT "foo"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "bar"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "buzz"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    LANGUAGE_KW "language"
    WHITESPACE " "
    NAME_REF
      IDENT "foo"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "bar"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "buzz"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    LANGUAGE_KW "language"
    WHITESPACE " "
    NAME_REF
      IDENT "foo"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "bar"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "buzz"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- large_object"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          SELECT_KW "select"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              UPDATE_KW "update"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    LARGE_KW "large"
    WHITESPACE " "
    OBJECT_KW "object"
    WHITESPACE " "
    LITERAL
      INT_NUMBER "1012"
    COMMA ","
    WHITESPACE " "
    LITERAL
      INT_NUMBER "1231"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
      WHITESPACE " "
      PRIVILEGES_KW "privileges"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    LARGE_KW "large"
    WHITESPACE " "
    OBJECT_KW "object"
    WHITESPACE " "
    LITERAL
      INT_NUMBER "1012"
    COMMA ","
    WHITESPACE " "
    LITERAL
      INT_NUMBER "1231"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- param"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ALTER_KW "alter"
          WHITESPACE " "
          SYSTEM_KW "system"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PARAMETER_KW "parameter"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "foo"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "bar"
    COMMA ","
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          IDENT "buzz"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ALTER_KW "alter"
          WHITESPACE " "
          SYSTEM_KW "system"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PARAMETER_KW "parameter"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          BEGIN_KW "begin"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    PARAMETER_KW "parameter"
    WHITESPACE " "
    PATH
      PATH_SEGMENT
        NAME_REF
          BEGIN_KW "begin"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- edge_case"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    SET_KW "set"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE " \n  "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
    WHITESPACE " "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE " \n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              SET_KW "set"
    WHITESPACE " "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE " \n\n"
  COMMENT "-- schema"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          CREATE_KW "create"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "s"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          CREATE_KW "create"
        COMMA ","
        WHITESPACE " "
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    SCHEMA_KW "schema"
    WHITESPACE " "
    NAME_REF
      IDENT "a"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "b"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- tablespace"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          CREATE_KW "create"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    TABLESPACE_KW "tablespace"
    WHITESPACE " "
    NAME_REF
      IDENT "foo"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "bar"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "buzz"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    TABLESPACE_KW "tablespace"
    WHITESPACE " "
    NAME_REF
      IDENT "foo"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "bar"
    COMMA ","
    WHITESPACE " "
    NAME_REF
      IDENT "buzz"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- type_"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "usage"
    WHITESPACE "\n  "
    ON_KW "on"
    WHITESPACE " "
    TYPE_KW "type"
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "a"
    COMMA ","
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "b"
    COMMA ","
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "c"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    TYPE_KW "type"
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "t"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      ALL_KW "all"
    WHITESPACE " \n  "
    ON_KW "on"
    WHITESPACE " "
    TYPE_KW "type"
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "s"
        DOT "."
        PATH_SEGMENT
          NAME_REF
            IDENT "t"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- option"
  WHITESPACE "\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    ADMIN_KW "admin"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE "\n  "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "public"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    INHERIT_KW "inherit"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE "\n  "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "public"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    SET_KW "set"
    WHITESPACE " "
    OPTION_KW "option"
    WHITESPACE " "
    FOR_KW "for"
    WHITESPACE "\n  "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "public"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  REVOKE
    REVOKE_KW "revoke"
    WHITESPACE " "
    PRIVILEGES
      REVOKE_COMMAND_LIST
        REVOKE_COMMAND
          ROLE_REF
            NAME_REF
              IDENT "public"
    WHITESPACE "\n  "
    FROM_KW "from"
    WHITESPACE " "
    ROLE_REF_LIST
      ROLE_REF
        CURRENT_USER_KW "current_user"
  SEMICOLON ";"
  WHITESPACE "\n\n"
