---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/grant.sql
---
SOURCE_FILE
COMMENT "-- simple"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- on_table"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
COMMA ","
WHITESPACE " "
ROLE_REF
CURRENT_ROLE_KW "current_role"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
WHITESPACE "\n "
GRANTED_KW "granted"
WHITESPACE " "
BY_KW "by"
WHITESPACE " "
ROLE_REF
NAME_REF
IDENT "public"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
ALL_KW "all"
WHITESPACE " "
PRIVILEGES_KW "privileges"
WHITESPACE "\n "
ON_KW "on"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- on_all_tables"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_ROLE_KW "current_role"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- columns"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- sequence"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
SELECT_KW "select"
WHITESPACE " "
ON_KW "on"
WHITESPACE " "
SEQUENCE_KW "sequence"
WHITESPACE " "
PATH
PATH
PATH_SEGMENT
NAME_REF
IDENT "public"
DOT "."
PATH_SEGMENT
NAME_REF
IDENT "s"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- database"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
ALL_KW "all"
WHITESPACE "\n "
ON_KW "on"
WHITESPACE " "
DATABASE_KW "database"
WHITESPACE " "
NAME_REF
IDENT "a"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- domain"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
ALL_KW "all"
WHITESPACE " "
PRIVILEGES_KW "privileges"
WHITESPACE "\n "
ON_KW "on"
WHITESPACE " "
DOMAIN_KW "domain"
WHITESPACE " "
PATH
PATH
PATH_SEGMENT
NAME_REF
IDENT "s"
DOT "."
PATH_SEGMENT
NAME_REF
IDENT "d"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- foreign_data"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- foreign_server"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- function"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
GRANT_KW "grant"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- language"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- large_object"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- param"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
ALL_KW "all"
WHITESPACE "\n "
ON_KW "on"
WHITESPACE " "
PARAMETER_KW "parameter"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME_REF
BEGIN_KW "begin"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- edge_case"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 " \n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
NAME
SET_KW "set"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE " \n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 " \n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE " \n\n"
COMMENT "-- schema"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
CREATE_KW "create"
WHITESPACE "\n "
ON_KW "on"
WHITESPACE " "
SCHEMA_KW "schema"
WHITESPACE " "
NAME_REF
IDENT "s"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
COMMA ","
WHITESPACE " "
ROLE_REF
NAME_REF
IDENT "public"
COMMA ","
WHITESPACE " "
ROLE_REF
GROUP_KW "group"
WHITESPACE " "
NAME_REF
IDENT "foo"
COMMA ","
WHITESPACE " "
ROLE_REF
CURRENT_ROLE_KW "current_role"
COMMA ","
WHITESPACE " "
ROLE_REF
SESSION_USER_KW "session_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- tablespace"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- type_"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
ALL_KW "all"
WHITESPACE " \n "
ON_KW "on"
WHITESPACE " "
TYPE_KW "type"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
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 "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- option"
WHITESPACE "\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "public"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
NAME
ADMIN_KW "admin"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "public"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
NAME
INHERIT_KW "inherit"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "public"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
NAME
INHERIT_KW "inherit"
WHITESPACE " "
TRUE_KW "true"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "public"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
NAME
SET_KW "set"
WHITESPACE " "
FALSE_KW "false"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "public"
COMMA ","
WHITESPACE " "
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "t"
COLUMN_LIST
L_PAREN "("
COLUMN
NAME_REF
IDENT "a"
COMMA ","
WHITESPACE " "
COLUMN
NAME_REF
IDENT "b"
R_PAREN ")"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
WHITESPACE "\n "
WITH_KW "with"
WHITESPACE " "
NAME
SET_KW "set"
WHITESPACE " "
OPTION_KW "option"
SEMICOLON ";"
WHITESPACE "\n\n"
GRANT
GRANT_KW "grant"
WHITESPACE " "
REVOKE_COMMAND_LIST
REVOKE_COMMAND
ROLE_REF
NAME_REF
IDENT "public"
WHITESPACE "\n "
TO_KW "to"
WHITESPACE " "
ROLE_REF_LIST
ROLE_REF
CURRENT_USER_KW "current_user"
SEMICOLON ";"
WHITESPACE "\n"