From c11a2396b3e83a51b3e760643549ad7fa91eae5a Mon Sep 17 00:00:00 2001 From: Steve Dignam Date: Thu, 15 Jan 2026 23:07:09 -0500 Subject: [PATCH 1/3] parser: update role grammar to use refs like names --- crates/squawk_ide/src/expand_selection.rs | 2 +- .../src/generated/syntax_kind.rs | 4 +- crates/squawk_parser/src/grammar.rs | 76 +++-- .../snapshots/tests__alter_aggregate_ok.snap | 2 +- .../snapshots/tests__alter_collation_ok.snap | 4 +- .../snapshots/tests__alter_conversion_ok.snap | 4 +- .../snapshots/tests__alter_database_ok.snap | 4 +- .../tests__alter_default_privileges_ok.snap | 228 ++++++------- .../snapshots/tests__alter_domain_ok.snap | 4 +- .../tests__alter_event_trigger_ok.snap | 4 +- .../tests__alter_foreign_data_wrapper_ok.snap | 2 +- .../tests__alter_foreign_table_ok.snap | 6 +- .../snapshots/tests__alter_function_ok.snap | 2 +- .../snapshots/tests__alter_group_ok.snap | 16 +- .../snapshots/tests__alter_index_ok.snap | 6 +- .../snapshots/tests__alter_language_ok.snap | 4 +- .../tests__alter_large_object_ok.snap | 4 +- .../tests__alter_materialized_view_ok.snap | 6 +- .../tests__alter_operator_class_ok.snap | 4 +- .../tests__alter_operator_family_ok.snap | 4 +- .../snapshots/tests__alter_operator_ok.snap | 2 +- .../snapshots/tests__alter_policy_ok.snap | 18 +- .../snapshots/tests__alter_procedure_ok.snap | 4 +- .../tests__alter_publication_ok.snap | 4 +- .../tests/snapshots/tests__alter_role_ok.snap | 22 +- .../snapshots/tests__alter_routine_ok.snap | 2 +- .../snapshots/tests__alter_schema_ok.snap | 4 +- .../snapshots/tests__alter_sequence_ok.snap | 4 +- .../snapshots/tests__alter_server_ok.snap | 4 +- .../snapshots/tests__alter_statistics_ok.snap | 4 +- .../tests__alter_subscription_ok.snap | 4 +- .../snapshots/tests__alter_table_ok.snap | 14 +- .../snapshots/tests__alter_tablespace_ok.snap | 4 +- ...s__alter_text_search_configuration_ok.snap | 4 +- ...ests__alter_text_search_dictionary_ok.snap | 4 +- .../tests/snapshots/tests__alter_type_ok.snap | 4 +- .../tests__alter_user_mapping_ok.snap | 2 +- .../tests/snapshots/tests__alter_user_ok.snap | 22 +- .../tests/snapshots/tests__alter_view_ok.snap | 8 +- .../snapshots/tests__create_group_ok.snap | 26 +- .../snapshots/tests__create_policy_ok.snap | 10 +- .../snapshots/tests__create_role_ok.snap | 16 +- .../tests__create_tablespace_ok.snap | 2 +- .../snapshots/tests__create_user_ok.snap | 24 +- .../tests/snapshots/tests__drop_owned_ok.snap | 18 +- .../tests__drop_user_mapping_ok.snap | 2 +- .../tests/snapshots/tests__grant_ok.snap | 316 +++++++++--------- .../tests/snapshots/tests__reassign_ok.snap | 22 +- .../tests/snapshots/tests__revoke_ok.snap | 294 ++++++++-------- .../tests/snapshots/tests__schemas_ok.snap | 36 +- .../tests/snapshots/tests__select_err.snap | 4 +- .../tests/snapshots/tests__set_role_ok.snap | 2 +- .../snapshots/tests__set_session_auth_ok.snap | 2 +- .../squawk_syntax/src/ast/generated/nodes.rs | 160 +++++---- crates/squawk_syntax/src/postgresql.ungram | 66 ++-- 55 files changed, 775 insertions(+), 745 deletions(-) diff --git a/crates/squawk_ide/src/expand_selection.rs b/crates/squawk_ide/src/expand_selection.rs index 0b565ea7..110a5f98 100644 --- a/crates/squawk_ide/src/expand_selection.rs +++ b/crates/squawk_ide/src/expand_selection.rs @@ -57,7 +57,7 @@ const DELIMITED_LIST_KINDS: &[SyntaxKind] = &[ SyntaxKind::PARTITION_LIST, SyntaxKind::RETURNING_OPTION_LIST, SyntaxKind::REVOKE_COMMAND_LIST, - SyntaxKind::ROLE_LIST, + SyntaxKind::ROLE_REF_LIST, SyntaxKind::ROW_LIST, SyntaxKind::XML_ATTRIBUTE_LIST, SyntaxKind::XML_NAMESPACE_LIST, diff --git a/crates/squawk_parser/src/generated/syntax_kind.rs b/crates/squawk_parser/src/generated/syntax_kind.rs index 85b5369f..fe201f2c 100644 --- a/crates/squawk_parser/src/generated/syntax_kind.rs +++ b/crates/squawk_parser/src/generated/syntax_kind.rs @@ -1041,15 +1041,15 @@ pub enum SyntaxKind { REVOKE_COMMAND_LIST, REVOKE_DEFAULT_PRIVILEGES, ROLE, - ROLE_LIST, ROLE_OPTION, ROLE_OPTION_LIST, + ROLE_REF, + ROLE_REF_LIST, ROLLBACK, ROW, ROWS_FUNC_OPTION, ROW_LIST, SAVEPOINT, - SCHEMA_AUTHORIZATION, SECURITY_FUNC_OPTION, SECURITY_LABEL, SELECT, diff --git a/crates/squawk_parser/src/grammar.rs b/crates/squawk_parser/src/grammar.rs index da63d143..90491ecc 100644 --- a/crates/squawk_parser/src/grammar.rs +++ b/crates/squawk_parser/src/grammar.rs @@ -5296,7 +5296,7 @@ fn owner_to(p: &mut Parser<'_>) -> CompletedMarker { let m = p.start(); p.bump(OWNER_KW); p.expect(TO_KW); - role(p); + role_ref(p); m.complete(p, OWNER_TO) } @@ -6099,7 +6099,7 @@ fn alter_role(p: &mut Parser<'_>) -> CompletedMarker { p.bump(ALTER_KW); p.bump(ROLE_KW); if !p.eat(ALL_KW) { - role(p); + role_ref(p); } match p.current() { RENAME_KW => { @@ -6258,11 +6258,11 @@ fn alter_policy(p: &mut Parser<'_>) -> CompletedMarker { fn role_list(p: &mut Parser<'_>) { let m = p.start(); - role(p); + role_ref(p); while !p.at(EOF) && p.eat(COMMA) { - role(p); + role_ref(p); } - m.complete(p, ROLE_LIST); + m.complete(p, ROLE_REF_LIST); } // ALTER OPERATOR FAMILY name USING index_method ADD @@ -6525,7 +6525,7 @@ fn alter_large_object(p: &mut Parser<'_>) -> CompletedMarker { } p.expect(OWNER_KW); p.expect(TO_KW); - role(p); + role_ref(p); m.complete(p, ALTER_LARGE_OBJECT) } @@ -6658,7 +6658,7 @@ fn alter_group(p: &mut Parser<'_>) -> CompletedMarker { let m = p.start(); p.bump(ALTER_KW); p.bump(GROUP_KW); - role(p); + role_ref(p); match p.current() { ADD_KW | DROP_KW => { p.bump_any(); @@ -7983,7 +7983,7 @@ fn alter_user(p: &mut Parser<'_>) -> CompletedMarker { p.bump(ALTER_KW); p.bump(USER_KW); if !p.eat(ALL_KW) { - role(p); + role_ref(p); } // be careful of the case where we're at the IN of IN DATABASE if p.at(WITH_KW) || (p.at_ts(ROLE_OPTION_FIRST) && !p.nth_at(1, DATABASE_KW)) { @@ -8024,7 +8024,7 @@ fn alter_user_mapping(p: &mut Parser<'_>) -> CompletedMarker { p.bump(USER_KW); p.bump(MAPPING_KW); p.expect(FOR_KW); - role(p); + role_ref(p); server_name(p); if !opt_alter_option_list(p) { p.error("expected options"); @@ -9369,7 +9369,7 @@ fn create_tablespace(p: &mut Parser<'_>) -> CompletedMarker { p.bump(TABLESPACE_KW); name(p); if p.eat(OWNER_KW) { - role(p); + role_ref(p); } p.expect(LOCATION_KW); string_literal(p); @@ -9500,7 +9500,7 @@ fn create_user_mapping(p: &mut Parser<'_>) -> CompletedMarker { p.expect(FOR_KW); // role | USER if !p.eat(USER_KW) { - role(p); + role_ref(p); } server_name(p); opt_alter_option_list(p); @@ -10177,7 +10177,7 @@ fn drop_user_mapping(p: &mut Parser<'_>) -> CompletedMarker { p.expect(FOR_KW); // role | USER if !p.eat(USER_KW) { - role(p); + role_ref(p); } server_name(p); m.complete(p, DROP_USER_MAPPING) @@ -10751,7 +10751,7 @@ fn privilege_target(p: &mut Parser<'_>) { fn opt_granted_by(p: &mut Parser<'_>) { if p.eat(GRANTED_KW) { p.expect(BY_KW); - role(p); + role_ref(p); } } @@ -10843,7 +10843,7 @@ const REVOKE_COMMAND_FIRST: TokenSet = TokenSet::new(&[ fn revoke_command(p: &mut Parser<'_>) { let m = p.start(); - if !opt_role(p) { + if !opt_role_ref(p) { if p.eat(ALTER_KW) { p.expect(SYSTEM_KW); } else if p.at_ts(REVOKE_COMMAND_FIRST) { @@ -10863,13 +10863,22 @@ fn revoke_command(p: &mut Parser<'_>) { // | CURRENT_ROLE // | CURRENT_USER // | SESSION_USER -fn role(p: &mut Parser<'_>) { - if !opt_role(p) { +fn role_ref(p: &mut Parser<'_>) { + if !opt_role_ref(p) { p.error(format!("expected role, got {:?}", p.current())) } } -fn opt_role(p: &mut Parser<'_>) -> bool { +fn opt_role_ref(p: &mut Parser<'_>) -> bool { + opt_role_(p, ROLE_REF) +} + +fn role(p: &mut Parser<'_>) -> bool { + opt_role_(p, ROLE) +} + +fn opt_role_(p: &mut Parser<'_>, kind: SyntaxKind) -> bool { + assert!(matches!(kind, ROLE | ROLE_REF)); let m = p.start(); match p.current() { GROUP_KW => { @@ -10895,7 +10904,7 @@ fn opt_role(p: &mut Parser<'_>) -> bool { return false; } } - m.complete(p, ROLE); + m.complete(p, kind); true } @@ -11081,7 +11090,7 @@ fn set_role(p: &mut Parser<'_>) -> CompletedMarker { let _ = p.eat(SESSION_KW) || p.eat(LOCAL_KW); p.expect(ROLE_KW); if !p.eat(NONE_KW) && opt_string_literal(p).is_none() { - role(p); + role_ref(p); } } m.complete(p, SET_ROLE) @@ -11098,7 +11107,7 @@ fn set_session_auth(p: &mut Parser<'_>) -> CompletedMarker { p.eat(SESSION_KW); p.expect(AUTHORIZATION_KW); if !p.eat(DEFAULT_KW) && opt_string_literal(p).is_none() { - role(p); + role_ref(p); } m.complete(p, SET_SESSION_AUTH) } @@ -12159,17 +12168,6 @@ fn drop_schema(p: &mut Parser<'_>) -> CompletedMarker { m.complete(p, DROP_SCHEMA) } -fn opt_schema_auth(p: &mut Parser<'_>) -> bool { - let m = p.start(); - if p.eat(AUTHORIZATION_KW) { - role(p); - m.complete(p, SCHEMA_AUTHORIZATION); - return true; - } - m.abandon(p); - false -} - // An SQL statement defining an object to be created within the schema. // // Currently, only CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE SEQUENCE, @@ -12237,20 +12235,26 @@ fn create_schema(p: &mut Parser<'_>) -> CompletedMarker { p.bump(CREATE_KW); p.bump(SCHEMA_KW); let if_not_exists = opt_if_not_exists(p).is_some(); - match (if_not_exists, opt_schema_auth(p)) { + match (if_not_exists, p.eat(AUTHORIZATION_KW)) { // CREATE SCHEMA IF NOT EXISTS AUTHORIZATION role_specification // ^ - (true, true) => m.complete(p, CREATE_SCHEMA), + (true, true) => { + role(p); + m.complete(p, CREATE_SCHEMA) + } // CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION role_specification ] // ^ (true, false) => { name(p); - opt_schema_auth(p); + if p.eat(AUTHORIZATION_KW) { + role_ref(p); + } m.complete(p, CREATE_SCHEMA) } // CREATE SCHEMA AUTHORIZATION role_specification [ schema_element [ ... ] ] // ^ (false, true) => { + role(p); opt_schema_elements(p); m.complete(p, CREATE_SCHEMA) } @@ -12258,7 +12262,9 @@ fn create_schema(p: &mut Parser<'_>) -> CompletedMarker { // ^ (false, false) => { name(p); - opt_schema_auth(p); + if p.eat(AUTHORIZATION_KW) { + role_ref(p); + } opt_schema_elements(p); m.complete(p, CREATE_SCHEMA) } diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_aggregate_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_aggregate_ok.snap index 4adab716..35ed9a29 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_aggregate_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_aggregate_ok.snap @@ -107,7 +107,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_collation_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_collation_ok.snap index a1dfec95..d1d8c406 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_collation_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_collation_ok.snap @@ -59,7 +59,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -84,7 +84,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_conversion_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_conversion_ok.snap index 2a962afc..80d9f4dc 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_conversion_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_conversion_ok.snap @@ -41,7 +41,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -61,7 +61,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_database_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_database_ok.snap index cfea44cb..8b7de68a 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_database_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_database_ok.snap @@ -37,7 +37,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -55,7 +55,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_default_privileges_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_default_privileges_ok.snap index 628b427f..9c9b31a7 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_default_privileges_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_default_privileges_ok.snap @@ -27,8 +27,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -46,13 +46,13 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " IN_KW "in" @@ -85,8 +85,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -102,8 +102,8 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF SESSION_USER_KW "session_user" WHITESPACE "\n " IN_KW "in" @@ -128,8 +128,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -158,8 +158,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -179,7 +179,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" WHITESPACE "\n " @@ -190,8 +190,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -211,7 +211,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE "\n " @@ -222,17 +222,17 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "public" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -258,7 +258,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF DELETE_KW "delete" WHITESPACE "\n " @@ -269,8 +269,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -288,7 +288,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRUNCATE_KW "truncate" WHITESPACE "\n " @@ -299,8 +299,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -327,8 +327,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -346,7 +346,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRIGGER_KW "trigger" WHITESPACE "\n " @@ -357,8 +357,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -376,7 +376,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "maintain" WHITESPACE "\n " @@ -387,8 +387,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -410,25 +410,25 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF DELETE_KW "delete" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRUNCATE_KW "truncate" COMMA "," @@ -438,13 +438,13 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRIGGER_KW "trigger" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "maintain" WHITESPACE "\n " @@ -455,8 +455,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -481,8 +481,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -509,8 +509,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -530,7 +530,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" COMMA "," @@ -540,7 +540,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE "\n " @@ -551,27 +551,27 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "u" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF SESSION_USER_KW "session_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -597,7 +597,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -608,8 +608,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -629,7 +629,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF EXECUTE_KW "execute" WHITESPACE "\n " @@ -640,8 +640,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -666,8 +666,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -694,8 +694,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " @@ -721,7 +721,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -732,8 +732,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -760,20 +760,20 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF IDENT "u" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " @@ -799,7 +799,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" COMMA "," @@ -814,8 +814,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -842,20 +842,20 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF IDENT "u" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " @@ -891,25 +891,25 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF DELETE_KW "delete" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRUNCATE_KW "truncate" COMMA "," @@ -919,13 +919,13 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRIGGER_KW "trigger" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "maintain" WHITESPACE "\n " @@ -936,13 +936,13 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -973,8 +973,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " @@ -1002,7 +1002,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" COMMA "," @@ -1012,7 +1012,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE "\n " @@ -1023,13 +1023,13 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -1060,8 +1060,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " @@ -1089,7 +1089,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF EXECUTE_KW "execute" WHITESPACE "\n " @@ -1100,13 +1100,13 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -1137,8 +1137,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " @@ -1166,7 +1166,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -1177,13 +1177,13 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -1214,8 +1214,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " @@ -1243,7 +1243,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" COMMA "," @@ -1258,13 +1258,13 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF @@ -1295,8 +1295,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_domain_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_domain_ok.snap index 52d1d013..94b73d5e 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_domain_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_domain_ok.snap @@ -303,7 +303,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -323,7 +323,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_event_trigger_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_event_trigger_ok.snap index aba60edf..32eb14b6 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_event_trigger_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_event_trigger_ok.snap @@ -84,7 +84,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -106,7 +106,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_foreign_data_wrapper_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_foreign_data_wrapper_ok.snap index 8c5722bd..71c3bf04 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_foreign_data_wrapper_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_foreign_data_wrapper_ok.snap @@ -244,7 +244,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_foreign_table_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_foreign_table_ok.snap index 48c52b5a..c74bca1d 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_foreign_table_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_foreign_table_ok.snap @@ -1473,7 +1473,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -1496,7 +1496,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1582,7 +1582,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_function_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_function_ok.snap index 697cfe73..864e886f 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_function_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_function_ok.snap @@ -121,7 +121,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_group_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_group_ok.snap index 7f8dec17..d727e5c4 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_group_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_group_ok.snap @@ -10,7 +10,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "g" WHITESPACE " " @@ -29,7 +29,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "g" WHITESPACE " " @@ -56,7 +56,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "g" WHITESPACE " " @@ -75,7 +75,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "g" WHITESPACE " " @@ -102,7 +102,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "g" WHITESPACE " " @@ -122,7 +122,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE " " ADD_KW "add" @@ -140,7 +140,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE " " DROP_KW "drop" @@ -158,7 +158,7 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE + ROLE_REF SESSION_USER_KW "session_user" WHITESPACE " " ADD_KW "add" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_index_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_index_ok.snap index e01862d2..07975749 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_index_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_index_ok.snap @@ -450,13 +450,13 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "s" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_language_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_language_ok.snap index 86afc795..b141ee7a 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_language_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_language_ok.snap @@ -56,7 +56,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -76,7 +76,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_large_object_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_large_object_ok.snap index 0b70cc04..fb280705 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_large_object_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_large_object_ok.snap @@ -19,7 +19,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -40,7 +40,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_materialized_view_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_materialized_view_ok.snap index 85d85e6a..e9363e08 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_materialized_view_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_materialized_view_ok.snap @@ -265,12 +265,12 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_operator_class_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_operator_class_ok.snap index c6c5f1c5..38527772 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_operator_class_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_operator_class_ok.snap @@ -86,7 +86,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -113,7 +113,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_operator_family_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_operator_family_ok.snap index 94f02777..95f10cef 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_operator_family_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_operator_family_ok.snap @@ -706,7 +706,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -733,7 +733,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_operator_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_operator_ok.snap index 7f2c86ca..fdf53d20 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_operator_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_operator_ok.snap @@ -41,7 +41,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_policy_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_policy_ok.snap index ef31d396..cd4a0c46 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_policy_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_policy_ok.snap @@ -50,8 +50,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" SEMICOLON ";" @@ -76,18 +76,18 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -177,13 +177,13 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "s" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_procedure_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_procedure_ok.snap index e0c65765..b97dc971 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_procedure_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_procedure_ok.snap @@ -85,7 +85,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -106,7 +106,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_publication_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_publication_ok.snap index 1a70c6c5..788442f9 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_publication_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_publication_ok.snap @@ -381,7 +381,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -399,7 +399,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_role_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_role_ok.snap index e49f9e20..6062cf9c 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_role_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_role_ok.snap @@ -10,7 +10,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -28,7 +28,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE "\n " @@ -123,7 +123,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -143,7 +143,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -166,7 +166,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -189,7 +189,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -213,7 +213,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -237,7 +237,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -256,7 +256,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -272,7 +272,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "r" WHITESPACE " " @@ -304,7 +304,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE " " ROLE_OPTION_LIST diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_routine_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_routine_ok.snap index 6bb818d5..233aa548 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_routine_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_routine_ok.snap @@ -61,7 +61,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_schema_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_schema_ok.snap index ff32fa81..65905be2 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_schema_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_schema_ok.snap @@ -37,7 +37,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -55,7 +55,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_sequence_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_sequence_ok.snap index 289a1f03..c1e4e508 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_sequence_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_sequence_ok.snap @@ -184,7 +184,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -204,7 +204,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_server_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_server_ok.snap index 8d0fc93c..606b6544 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_server_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_server_ok.snap @@ -71,7 +71,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -89,7 +89,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_statistics_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_statistics_ok.snap index 6b345e9e..fd32f220 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_statistics_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_statistics_ok.snap @@ -20,7 +20,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -45,7 +45,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_subscription_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_subscription_ok.snap index 6868ffb3..786ae155 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_subscription_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_subscription_ok.snap @@ -340,7 +340,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -358,7 +358,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_table_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_table_ok.snap index 40c58746..1c0922df 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_table_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_table_ok.snap @@ -3522,18 +3522,18 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "a" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "b" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "c" WHITESPACE " \n" @@ -3572,8 +3572,8 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "bar" WHITESPACE "\n" @@ -3624,7 +3624,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "new_owner" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_tablespace_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_tablespace_ok.snap index c3ef3f53..9fff2365 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_tablespace_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_tablespace_ok.snap @@ -41,7 +41,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -61,7 +61,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_text_search_configuration_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_text_search_configuration_ok.snap index 06cdeffe..e899095e 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_text_search_configuration_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_text_search_configuration_ok.snap @@ -480,7 +480,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -509,7 +509,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_text_search_dictionary_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_text_search_dictionary_ok.snap index b23b752d..eb9bdaf1 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_text_search_dictionary_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_text_search_dictionary_ok.snap @@ -91,7 +91,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -115,7 +115,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_type_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_type_ok.snap index 417935e6..d684ae66 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_type_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_type_ok.snap @@ -20,7 +20,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -40,7 +40,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_user_mapping_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_user_mapping_ok.snap index eaea492b..66893bc3 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_user_mapping_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_user_mapping_ok.snap @@ -14,7 +14,7 @@ SOURCE_FILE WHITESPACE " " FOR_KW "for" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " SERVER_NAME diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_user_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_user_ok.snap index 8219ef10..8f3f587e 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_user_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_user_ok.snap @@ -10,7 +10,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -26,7 +26,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -118,7 +118,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -138,7 +138,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -161,7 +161,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -184,7 +184,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -206,7 +206,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -236,7 +236,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -260,7 +260,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -275,7 +275,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " @@ -289,7 +289,7 @@ SOURCE_FILE WHITESPACE " " USER_KW "user" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" WHITESPACE " " diff --git a/crates/squawk_parser/tests/snapshots/tests__alter_view_ok.snap b/crates/squawk_parser/tests/snapshots/tests__alter_view_ok.snap index 846a789c..d1739d72 100644 --- a/crates/squawk_parser/tests/snapshots/tests__alter_view_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__alter_view_ok.snap @@ -99,7 +99,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" @@ -131,7 +131,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n\n" @@ -152,7 +152,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -173,7 +173,7 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE + ROLE_REF SESSION_USER_KW "session_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__create_group_ok.snap b/crates/squawk_parser/tests/snapshots/tests__create_group_ok.snap index 048e5497..fd99a30a 100644 --- a/crates/squawk_parser/tests/snapshots/tests__create_group_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__create_group_ok.snap @@ -112,18 +112,18 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "bar" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "buzz" WHITESPACE "\n " @@ -132,38 +132,38 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " ROLE_OPTION ROLE_KW "role" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "r" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " ROLE_OPTION ADMIN_KW "admin" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "bar" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "buzz" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__create_policy_ok.snap b/crates/squawk_parser/tests/snapshots/tests__create_policy_ok.snap index e2cebd1a..66db4dd4 100644 --- a/crates/squawk_parser/tests/snapshots/tests__create_policy_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__create_policy_ok.snap @@ -99,21 +99,21 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "public" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF SESSION_USER_KW "session_user" WHITESPACE "\n " USING_KW "using" diff --git a/crates/squawk_parser/tests/snapshots/tests__create_role_ok.snap b/crates/squawk_parser/tests/snapshots/tests__create_role_ok.snap index e34b0525..ca74d9d4 100644 --- a/crates/squawk_parser/tests/snapshots/tests__create_role_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__create_role_ok.snap @@ -112,18 +112,18 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "bar" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "buzz" WHITESPACE "\n " @@ -132,16 +132,16 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " ROLE_OPTION ADMIN_KW "admin" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__create_tablespace_ok.snap b/crates/squawk_parser/tests/snapshots/tests__create_tablespace_ok.snap index 8083c6a3..003f1631 100644 --- a/crates/squawk_parser/tests/snapshots/tests__create_tablespace_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__create_tablespace_ok.snap @@ -31,7 +31,7 @@ SOURCE_FILE WHITESPACE " \n " OWNER_KW "owner" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " LOCATION_KW "location" diff --git a/crates/squawk_parser/tests/snapshots/tests__create_user_ok.snap b/crates/squawk_parser/tests/snapshots/tests__create_user_ok.snap index 1ed652bb..ceb9f465 100644 --- a/crates/squawk_parser/tests/snapshots/tests__create_user_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__create_user_ok.snap @@ -112,18 +112,18 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "bar" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "buzz" WHITESPACE "\n " @@ -132,32 +132,32 @@ SOURCE_FILE WHITESPACE " " GROUP_KW "group" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " ROLE_OPTION ROLE_KW "role" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " ROLE_OPTION ADMIN_KW "admin" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " ROLE_OPTION USER_KW "user" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "foo" WHITESPACE "\n " diff --git a/crates/squawk_parser/tests/snapshots/tests__drop_owned_ok.snap b/crates/squawk_parser/tests/snapshots/tests__drop_owned_ok.snap index 1840dede..f3701033 100644 --- a/crates/squawk_parser/tests/snapshots/tests__drop_owned_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__drop_owned_ok.snap @@ -12,8 +12,8 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "s" SEMICOLON ";" @@ -27,17 +27,17 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "a" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "c" WHITESPACE " " @@ -51,12 +51,12 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF SESSION_USER_KW "session_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE " " RESTRICT_KW "restrict" diff --git a/crates/squawk_parser/tests/snapshots/tests__drop_user_mapping_ok.snap b/crates/squawk_parser/tests/snapshots/tests__drop_user_mapping_ok.snap index bfd6a9a5..9da7c3ae 100644 --- a/crates/squawk_parser/tests/snapshots/tests__drop_user_mapping_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__drop_user_mapping_ok.snap @@ -39,7 +39,7 @@ SOURCE_FILE WHITESPACE " " FOR_KW "for" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE " " SERVER_NAME diff --git a/crates/squawk_parser/tests/snapshots/tests__grant_ok.snap b/crates/squawk_parser/tests/snapshots/tests__grant_ok.snap index cf896a95..4da40469 100644 --- a/crates/squawk_parser/tests/snapshots/tests__grant_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__grant_ok.snap @@ -14,25 +14,25 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF DELETE_KW "delete" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRUNCATE_KW "truncate" COMMA "," @@ -42,13 +42,13 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRIGGER_KW "trigger" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "maintain" WHITESPACE "\n " @@ -61,8 +61,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -98,12 +98,12 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " WITH_KW "with" @@ -116,7 +116,7 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" SEMICOLON ";" @@ -144,8 +144,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -165,8 +165,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -198,8 +198,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " WITH_KW "with" @@ -243,8 +243,8 @@ SOURCE_FILE WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -253,7 +253,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" COLUMN_LIST @@ -282,8 +282,8 @@ SOURCE_FILE WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -292,7 +292,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" COLUMN_LIST @@ -321,8 +321,8 @@ SOURCE_FILE WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -358,8 +358,8 @@ SOURCE_FILE WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -385,8 +385,8 @@ SOURCE_FILE WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -410,8 +410,8 @@ SOURCE_FILE WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -435,8 +435,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -463,8 +463,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -473,7 +473,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE " " @@ -500,8 +500,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -510,7 +510,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE " " @@ -525,8 +525,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -550,8 +550,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -585,8 +585,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -616,8 +616,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -636,19 +636,19 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "connect" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TEMPORARY_KW "temporary" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TEMP_KW "temp" WHITESPACE "\n " @@ -661,8 +661,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -680,8 +680,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -692,7 +692,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -719,8 +719,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -748,8 +748,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -776,8 +776,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -788,7 +788,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -813,8 +813,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -844,8 +844,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -856,7 +856,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -879,8 +879,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -908,8 +908,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -920,7 +920,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF EXECUTE_KW "execute" WHITESPACE "\n " @@ -944,8 +944,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -960,7 +960,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF EXECUTE_KW "execute" WHITESPACE "\n " @@ -1040,8 +1040,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1063,8 +1063,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1096,8 +1096,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1121,8 +1121,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1146,8 +1146,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1215,8 +1215,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1227,7 +1227,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE " \n " @@ -1248,8 +1248,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1275,8 +1275,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1304,8 +1304,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1320,7 +1320,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE " \n " @@ -1339,8 +1339,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1366,8 +1366,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1378,7 +1378,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," @@ -1411,8 +1411,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1436,8 +1436,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1457,8 +1457,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1469,26 +1469,26 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -1504,26 +1504,26 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" WHITESPACE " \n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE " \n\n" @@ -1545,8 +1545,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1559,7 +1559,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -1580,28 +1580,28 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" COMMA "," WHITESPACE " " - ROLE + ROLE_REF GROUP_KW "group" WHITESPACE " " NAME_REF IDENT "foo" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" COMMA "," WHITESPACE " " - ROLE + ROLE_REF SESSION_USER_KW "session_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1627,8 +1627,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1658,8 +1658,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1685,8 +1685,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1697,7 +1697,7 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -1727,8 +1727,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1749,8 +1749,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1776,8 +1776,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1788,14 +1788,14 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -1811,14 +1811,14 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -1834,14 +1834,14 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -1857,14 +1857,14 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -1880,13 +1880,13 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "t" COLUMN_LIST @@ -1903,8 +1903,8 @@ SOURCE_FILE WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE "\n " WITH_KW "with" @@ -1920,14 +1920,14 @@ SOURCE_FILE WHITESPACE " " REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__reassign_ok.snap b/crates/squawk_parser/tests/snapshots/tests__reassign_ok.snap index 49080f81..bd517a35 100644 --- a/crates/squawk_parser/tests/snapshots/tests__reassign_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__reassign_ok.snap @@ -12,28 +12,28 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "foo" WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF SESSION_USER_KW "session_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -44,14 +44,14 @@ SOURCE_FILE WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__revoke_ok.snap b/crates/squawk_parser/tests/snapshots/tests__revoke_ok.snap index e86c4b8a..7cd6c585 100644 --- a/crates/squawk_parser/tests/snapshots/tests__revoke_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__revoke_ok.snap @@ -15,25 +15,25 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF DELETE_KW "delete" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRUNCATE_KW "truncate" COMMA "," @@ -43,13 +43,13 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TRIGGER_KW "trigger" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "maintain" WHITESPACE "\n " @@ -62,8 +62,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -106,19 +106,19 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " GRANTED_KW "granted" WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " @@ -155,19 +155,19 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" COMMA "," WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " GRANTED_KW "granted" WHITESPACE " " BY_KW "by" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " @@ -197,8 +197,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -241,8 +241,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -281,8 +281,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_ROLE_KW "current_role" WHITESPACE "\n " RESTRICT_KW "restrict" @@ -323,8 +323,8 @@ SOURCE_FILE WHITESPACE " \n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -334,7 +334,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF INSERT_KW "insert" COLUMN_LIST @@ -363,8 +363,8 @@ SOURCE_FILE WHITESPACE " \n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -374,7 +374,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" COLUMN_LIST @@ -403,8 +403,8 @@ SOURCE_FILE WHITESPACE " \n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -441,8 +441,8 @@ SOURCE_FILE WHITESPACE " \n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -469,8 +469,8 @@ SOURCE_FILE WHITESPACE " \n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -495,8 +495,8 @@ SOURCE_FILE WHITESPACE " \n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -521,8 +521,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -532,7 +532,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE " " @@ -559,8 +559,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -570,7 +570,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE " " @@ -585,8 +585,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -611,8 +611,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -647,8 +647,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -685,8 +685,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -700,19 +700,19 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "connect" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TEMPORARY_KW "temporary" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF TEMP_KW "temp" WHITESPACE "\n " @@ -725,8 +725,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -745,8 +745,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -764,7 +764,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -791,8 +791,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -815,8 +815,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -834,7 +834,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -859,8 +859,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -885,8 +885,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -904,7 +904,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -927,8 +927,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -951,8 +951,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -970,7 +970,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF EXECUTE_KW "execute" WHITESPACE "\n " @@ -994,8 +994,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1005,7 +1005,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF EXECUTE_KW "execute" WHITESPACE "\n " @@ -1085,8 +1085,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1109,8 +1109,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1143,8 +1143,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1169,8 +1169,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1195,8 +1195,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1265,8 +1265,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1278,7 +1278,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE " \n " @@ -1299,8 +1299,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1327,8 +1327,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1357,8 +1357,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1374,7 +1374,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF UPDATE_KW "update" WHITESPACE " \n " @@ -1393,8 +1393,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1421,8 +1421,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1434,7 +1434,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," @@ -1467,8 +1467,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1493,8 +1493,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1515,8 +1515,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1534,26 +1534,26 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" WHITESPACE " " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE " \n\n" @@ -1563,26 +1563,26 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF SET_KW "set" WHITESPACE " " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE " \n\n" @@ -1605,8 +1605,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1620,7 +1620,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -1641,8 +1641,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1669,8 +1669,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1701,8 +1701,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1729,8 +1729,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1742,7 +1742,7 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "usage" WHITESPACE "\n " @@ -1772,8 +1772,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1795,8 +1795,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1823,8 +1823,8 @@ SOURCE_FILE WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1842,14 +1842,14 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1865,14 +1865,14 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1888,14 +1888,14 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -1905,14 +1905,14 @@ SOURCE_FILE PRIVILEGES REVOKE_COMMAND_LIST REVOKE_COMMAND - ROLE + ROLE_REF NAME_REF IDENT "public" WHITESPACE "\n " FROM_KW "from" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n\n" diff --git a/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap b/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap index 59a07719..36eb8b88 100644 --- a/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap @@ -25,7 +25,7 @@ SOURCE_FILE SCHEMA_AUTHORIZATION AUTHORIZATION_KW "authorization" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "foo" SEMICOLON ";" @@ -41,7 +41,7 @@ SOURCE_FILE SCHEMA_AUTHORIZATION AUTHORIZATION_KW "authorization" WHITESPACE " " - ROLE + ROLE_REF CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n" @@ -56,7 +56,7 @@ SOURCE_FILE SCHEMA_AUTHORIZATION AUTHORIZATION_KW "authorization" WHITESPACE " " - ROLE + ROLE_REF CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n" @@ -71,7 +71,7 @@ SOURCE_FILE SCHEMA_AUTHORIZATION AUTHORIZATION_KW "authorization" WHITESPACE " " - ROLE + ROLE_REF SESSION_USER_KW "session_user" SEMICOLON ";" WHITESPACE "\n\n" @@ -80,12 +80,11 @@ SOURCE_FILE WHITESPACE " " SCHEMA_KW "schema" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE - NAME_REF - IDENT "foo" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE + NAME_REF + IDENT "foo" SEMICOLON ";" WHITESPACE "\n\n" CREATE_SCHEMA @@ -122,7 +121,7 @@ SOURCE_FILE SCHEMA_AUTHORIZATION AUTHORIZATION_KW "authorization" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "bar" SEMICOLON ";" @@ -139,12 +138,11 @@ SOURCE_FILE WHITESPACE " " EXISTS_KW "exists" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE - NAME_REF - IDENT "bar" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE + NAME_REF + IDENT "bar" SEMICOLON ";" WHITESPACE "\n\n" CREATE_SCHEMA @@ -317,7 +315,7 @@ SOURCE_FILE SCHEMA_AUTHORIZATION AUTHORIZATION_KW "authorization" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "user_name" SEMICOLON ";" @@ -478,7 +476,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "role" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "foo" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__select_err.snap b/crates/squawk_parser/tests/snapshots/tests__select_err.snap index 5c242257..fb1f3aec 100644 --- a/crates/squawk_parser/tests/snapshots/tests__select_err.snap +++ b/crates/squawk_parser/tests/snapshots/tests__select_err.snap @@ -741,8 +741,8 @@ SOURCE_FILE WHITESPACE " " TO_KW "to" WHITESPACE " " - ROLE_LIST - ROLE + ROLE_REF_LIST + ROLE_REF NAME_REF IDENT "u" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__set_role_ok.snap b/crates/squawk_parser/tests/snapshots/tests__set_role_ok.snap index 15c4238f..9da32598 100644 --- a/crates/squawk_parser/tests/snapshots/tests__set_role_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__set_role_ok.snap @@ -39,7 +39,7 @@ SOURCE_FILE WHITESPACE " " ROLE_KW "ROLE" WHITESPACE " " - ROLE + ROLE_REF NAME_REF IDENT "foo" SEMICOLON ";" diff --git a/crates/squawk_parser/tests/snapshots/tests__set_session_auth_ok.snap b/crates/squawk_parser/tests/snapshots/tests__set_session_auth_ok.snap index 9b34672f..1170b6da 100644 --- a/crates/squawk_parser/tests/snapshots/tests__set_session_auth_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__set_session_auth_ok.snap @@ -12,7 +12,7 @@ SOURCE_FILE WHITESPACE " " AUTHORIZATION_KW "AUTHORIZATION" WHITESPACE " " - ROLE + ROLE_REF NAME_REF DECIMAL_KW "decimal" SEMICOLON ";" diff --git a/crates/squawk_syntax/src/ast/generated/nodes.rs b/crates/squawk_syntax/src/ast/generated/nodes.rs index 8bb078ca..4266f75a 100644 --- a/crates/squawk_syntax/src/ast/generated/nodes.rs +++ b/crates/squawk_syntax/src/ast/generated/nodes.rs @@ -369,7 +369,7 @@ impl AlterDefaultPrivileges { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -638,7 +638,7 @@ impl AlterGroup { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -1012,7 +1012,7 @@ impl AlterPolicy { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -1121,7 +1121,7 @@ pub struct AlterRole { } impl AlterRole { #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -1639,7 +1639,7 @@ pub struct AlterUser { } impl AlterUser { #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -1662,7 +1662,7 @@ impl AlterUserMapping { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -3931,7 +3931,7 @@ impl CreatePolicy { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -4202,7 +4202,11 @@ impl CreateSchema { support::child(&self.syntax) } #[inline] - pub fn schema_authorization(&self) -> Option { + pub fn role(&self) -> Option { + support::child(&self.syntax) + } + #[inline] + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -4210,6 +4214,10 @@ impl CreateSchema { support::children(&self.syntax) } #[inline] + pub fn authorization_token(&self) -> Option { + support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW) + } + #[inline] pub fn create_token(&self) -> Option { support::token(&self.syntax, SyntaxKind::CREATE_KW) } @@ -4559,7 +4567,7 @@ impl CreateTablespace { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -4946,7 +4954,7 @@ impl CreateUserMapping { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -6306,7 +6314,7 @@ pub struct DropOwned { } impl DropOwned { #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -7028,7 +7036,7 @@ impl DropUserMapping { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -7973,11 +7981,11 @@ impl Grant { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -8048,7 +8056,7 @@ impl GrantDefaultPrivileges { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -11613,7 +11621,7 @@ pub struct OwnedByRoles { } impl OwnedByRoles { #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -11632,7 +11640,7 @@ pub struct OwnerTo { } impl OwnerTo { #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -12468,11 +12476,11 @@ pub struct Reassign { } impl Reassign { #[inline] - pub fn new_roles(&self) -> Option { + pub fn new_roles(&self) -> Option { support::child(&self.syntax) } #[inline] - pub fn old_roles(&self) -> Option { + pub fn old_roles(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -13084,11 +13092,11 @@ impl Revoke { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -13163,7 +13171,7 @@ pub struct RevokeCommand { } impl RevokeCommand { #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -13253,7 +13261,7 @@ impl RevokeDefaultPrivileges { support::child(&self.syntax) } #[inline] - pub fn role_list(&self) -> Option { + pub fn role_ref_list(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -13296,7 +13304,7 @@ pub struct Role { } impl Role { #[inline] - pub fn name_ref(&self) -> Option { + pub fn name(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -13317,17 +13325,6 @@ impl Role { } } -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct RoleList { - pub(crate) syntax: SyntaxNode, -} -impl RoleList { - #[inline] - pub fn roles(&self) -> AstChildren { - support::children(&self.syntax) - } -} - #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct RoleOption { pub(crate) syntax: SyntaxNode, @@ -13354,6 +13351,44 @@ impl RoleOptionList { } } +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct RoleRef { + pub(crate) syntax: SyntaxNode, +} +impl RoleRef { + #[inline] + pub fn name_ref(&self) -> Option { + support::child(&self.syntax) + } + #[inline] + pub fn current_role_token(&self) -> Option { + support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW) + } + #[inline] + pub fn current_user_token(&self) -> Option { + support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW) + } + #[inline] + pub fn group_token(&self) -> Option { + support::token(&self.syntax, SyntaxKind::GROUP_KW) + } + #[inline] + pub fn session_user_token(&self) -> Option { + support::token(&self.syntax, SyntaxKind::SESSION_USER_KW) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct RoleRefList { + pub(crate) syntax: SyntaxNode, +} +impl RoleRefList { + #[inline] + pub fn role_refs(&self) -> AstChildren { + support::children(&self.syntax) + } +} + #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Rollback { pub(crate) syntax: SyntaxNode, @@ -13457,21 +13492,6 @@ impl Savepoint { } } -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct SchemaAuthorization { - pub(crate) syntax: SyntaxNode, -} -impl SchemaAuthorization { - #[inline] - pub fn role(&self) -> Option { - support::child(&self.syntax) - } - #[inline] - pub fn authorization_token(&self) -> Option { - support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW) - } -} - #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct SecurityFuncOption { pub(crate) syntax: SyntaxNode, @@ -14360,7 +14380,7 @@ pub struct SetRole { } impl SetRole { #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -14429,7 +14449,7 @@ impl SetSessionAuth { support::child(&self.syntax) } #[inline] - pub fn role(&self) -> Option { + pub fn role_ref(&self) -> Option { support::child(&self.syntax) } #[inline] @@ -26019,10 +26039,10 @@ impl AstNode for Role { &self.syntax } } -impl AstNode for RoleList { +impl AstNode for RoleOption { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROLE_LIST + kind == SyntaxKind::ROLE_OPTION } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26037,10 +26057,10 @@ impl AstNode for RoleList { &self.syntax } } -impl AstNode for RoleOption { +impl AstNode for RoleOptionList { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROLE_OPTION + kind == SyntaxKind::ROLE_OPTION_LIST } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26055,10 +26075,10 @@ impl AstNode for RoleOption { &self.syntax } } -impl AstNode for RoleOptionList { +impl AstNode for RoleRef { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROLE_OPTION_LIST + kind == SyntaxKind::ROLE_REF } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26073,10 +26093,10 @@ impl AstNode for RoleOptionList { &self.syntax } } -impl AstNode for Rollback { +impl AstNode for RoleRefList { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROLLBACK + kind == SyntaxKind::ROLE_REF_LIST } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26091,10 +26111,10 @@ impl AstNode for Rollback { &self.syntax } } -impl AstNode for Row { +impl AstNode for Rollback { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROW + kind == SyntaxKind::ROLLBACK } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26109,10 +26129,10 @@ impl AstNode for Row { &self.syntax } } -impl AstNode for RowList { +impl AstNode for Row { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROW_LIST + kind == SyntaxKind::ROW } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26127,10 +26147,10 @@ impl AstNode for RowList { &self.syntax } } -impl AstNode for RowsFuncOption { +impl AstNode for RowList { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::ROWS_FUNC_OPTION + kind == SyntaxKind::ROW_LIST } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26145,10 +26165,10 @@ impl AstNode for RowsFuncOption { &self.syntax } } -impl AstNode for Savepoint { +impl AstNode for RowsFuncOption { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::SAVEPOINT + kind == SyntaxKind::ROWS_FUNC_OPTION } #[inline] fn cast(syntax: SyntaxNode) -> Option { @@ -26163,10 +26183,10 @@ impl AstNode for Savepoint { &self.syntax } } -impl AstNode for SchemaAuthorization { +impl AstNode for Savepoint { #[inline] fn can_cast(kind: SyntaxKind) -> bool { - kind == SyntaxKind::SCHEMA_AUTHORIZATION + kind == SyntaxKind::SAVEPOINT } #[inline] fn cast(syntax: SyntaxNode) -> Option { diff --git a/crates/squawk_syntax/src/postgresql.ungram b/crates/squawk_syntax/src/postgresql.ungram index 0d61527c..e489737f 100644 --- a/crates/squawk_syntax/src/postgresql.ungram +++ b/crates/squawk_syntax/src/postgresql.ungram @@ -565,14 +565,20 @@ ExprType = // TODO: really just FIELD_EXPR, CALL_EXPR, INDEX_EXPR Expr -Role = +RoleRef = 'group'? NameRef | 'current_role' | 'current_user' | 'session_user' -RoleList = - Role (',' Role)* +Role = + 'group'? Name +| 'current_role' +| 'current_user' +| 'session_user' + +RoleRefList = + RoleRef (',' RoleRef)* ConstraintName = 'constraint' Name @@ -1219,7 +1225,7 @@ ValidateConstraint = 'validate' 'constraint' NameRef OwnerTo = - 'owner' 'to' Role + 'owner' 'to' RoleRef RenameTo = 'rename' 'to' Name @@ -1250,8 +1256,8 @@ Revoke = 'revoke' ('grant' 'option' 'for')? (('all' 'privileges'?) | RevokeCommandList) 'on' ('table' (Path (',' Path)*) | 'all' 'tables' 'in' 'schema' (NameRef (',' NameRef)*)) - 'from' RoleList - ('granted' 'by' Role)? + 'from' RoleRefList + ('granted' 'by' RoleRef)? ('cascade' | 'restrict')? Row = @@ -1791,7 +1797,7 @@ AlterRoutine = 'restrict'? AlterRole = - 'alter' 'role' Role + 'alter' 'role' RoleRef AlterPublication = 'alter' 'publication' NameRef @@ -1811,7 +1817,7 @@ AlterProcedure = AlterPolicy = 'alter' 'policy' NameRef OnTable (RenameTo - | 'to' RoleList + | 'to' RoleRefList | 'using' '(' Expr ')' | 'with' 'check' '(' Expr ')' )? @@ -1895,7 +1901,7 @@ AlterIndex = ) OwnedByRoles = - 'owned' 'by' RoleList + 'owned' 'by' RoleRefList AlterIndexAction = AttachPartition @@ -1908,7 +1914,7 @@ AlterIndexAction = | AlterSetStatistics AlterGroup = - 'alter' 'group' Role + 'alter' 'group' RoleRef ( 'add' 'user' (NameRef (',' NameRef)*) | 'drop' 'user' (NameRef (',' NameRef)*) @@ -1961,7 +1967,7 @@ AlterExtension = AlterDefaultPrivileges = 'alter' 'default' 'privileges' - ('for' ('role' | 'user') RoleList)? + ('for' ('role' | 'user') RoleRefList)? ('in' 'schema' (NameRef (',' NameRef)*))? ( GrantDefaultPrivileges @@ -1969,10 +1975,10 @@ AlterDefaultPrivileges = )? GrantDefaultPrivileges = - 'grant' Privileges 'on' PrivilegeTarget 'to' RoleList ('with' 'grant' 'option')? + 'grant' Privileges 'on' PrivilegeTarget 'to' RoleRefList ('with' 'grant' 'option')? RevokeDefaultPrivileges = - 'revoke' ('grant' 'option' 'for')? Privileges 'on' PrivilegeTarget 'from' RoleList ('cascade' | 'restrict')? + 'revoke' ('grant' 'option' 'for')? Privileges 'on' PrivilegeTarget 'from' RoleRefList ('cascade' | 'restrict')? Privileges = 'all' 'privileges'? ColumnList? @@ -2095,10 +2101,10 @@ AlterType = 'alter' 'type' Path AlterUser = - 'alter' 'user' Role + 'alter' 'user' RoleRef AlterUserMapping = - 'alter' 'user' 'mapping' 'for' Role ServerName AlterOptionList + 'alter' 'user' 'mapping' 'for' RoleRef ServerName AlterOptionList AlterView = 'alter' 'view' Path @@ -2222,7 +2228,7 @@ CreatePolicy = 'create' 'policy' Name OnTable ('as' '#ident')? ('for' ('all' | 'select' | 'insert' | 'update' | 'delete'))? - ('to' RoleList)? + ('to' RoleRefList)? ('using' '(' Expr ')') ('with' 'check' '(' Expr ')') @@ -2270,7 +2276,7 @@ CreateSubscription = CreateTablespace = 'create' 'tablespace' Name - ('owner' Role)? + ('owner' RoleRef)? 'location' Literal WithParams? @@ -2297,7 +2303,7 @@ TransformToFunc = 'to' 'sql' 'with' 'function' FunctionSig CreateUserMapping = - 'create' 'user' 'mapping' IfNotExists? 'for' Role + 'create' 'user' 'mapping' IfNotExists? 'for' RoleRef ServerName AlterOptionList? @@ -2391,7 +2397,7 @@ DropOperatorClass = ('cascade' | 'restrict')? DropOwned = - 'drop' 'owned' 'by' RoleList + 'drop' 'owned' 'by' RoleRefList ('cascade' | 'restrict')? DropPolicy = @@ -2460,7 +2466,7 @@ DropUser = 'drop' 'user' IfExists? (NameRef (',' NameRef)*) DropUserMapping = - 'drop' 'user' 'mapping' IfExists? 'for' Role ServerName + 'drop' 'user' 'mapping' IfExists? 'for' RoleRef ServerName DropView = 'drop' 'view' IfExists? Path @@ -2507,7 +2513,7 @@ Lock = 'lock' 'table'? TableList? Reassign = - 'reassign' 'owned' 'by' old_roles:RoleList 'to' new_roles:RoleList + 'reassign' 'owned' 'by' old_roles:RoleRefList 'to' new_roles:RoleRefList Refresh = 'refresh' 'materialized' 'view' 'concurrently'? Path @@ -2517,15 +2523,15 @@ Grant = 'grant' (('all' 'privileges'?) | RevokeCommandList) 'on' ('table' (Path (',' Path)*) | 'all' 'tables' 'in' 'schema' (NameRef (',' NameRef)*)) - 'to' RoleList + 'to' RoleRefList ('with' 'grant' 'option')? - ('granted' 'by' Role)? + ('granted' 'by' RoleRef)? RevokeCommandList = (RevokeCommand (',' RevokeCommand)*) RevokeCommand = -( Role +( RoleRef | 'alter' 'system' | ('select' | 'insert' | 'update' | 'delete' | 'truncate' | 'references' | 'trigger' | 'ident' | 'all' | 'alter' | 'create' | 'temporary' | 'temp' | 'execute') ) @@ -2569,11 +2575,11 @@ SetConstraints = 'deferred' | 'immediate' SetRole = - 'set' ('session' | 'local')? 'role' (Role | 'none')? + 'set' ('session' | 'local')? 'role' (RoleRef | 'none')? | 'reset' 'role' SetSessionAuth = - 'set' ('session' | 'local')? 'session' 'authorization' (Role | Literal | 'default') + 'set' ('session' | 'local')? 'session' 'authorization' (RoleRef | Literal | 'default') ResetSessionAuth = 'reset' 'session' 'authorization' @@ -2732,10 +2738,10 @@ DropSchema = ('cascade' | 'restrict')? CreateSchema = - 'create' 'schema' IfNotExists? (SchemaAuthorization | Name) SchemaElement* - -SchemaAuthorization = - 'authorization' Role + 'create' 'schema' Name ('authorization' RoleRef)? SchemaElement* +| 'create' 'schema' 'authorization' Role SchemaElement* +| 'create' 'schema' IfNotExists Name ('authorization' RoleRef)? +| 'create' 'schema' IfNotExists 'authorization' Role SchemaElement = CreateTable From 4487f1629c0ca38176a4e0b4975c96294415ac1d Mon Sep 17 00:00:00 2001 From: Steve Dignam Date: Thu, 15 Jan 2026 23:18:16 -0500 Subject: [PATCH 2/3] fix --- .../tests/snapshots/tests__schemas_ok.snap | 60 +++++++++---------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap b/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap index 36eb8b88..6a1566dd 100644 --- a/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap @@ -22,12 +22,11 @@ SOURCE_FILE NAME IDENT "s" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE_REF - NAME_REF - IDENT "foo" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE_REF + NAME_REF + IDENT "foo" SEMICOLON ";" WHITESPACE "\n" CREATE_SCHEMA @@ -38,11 +37,10 @@ SOURCE_FILE NAME IDENT "s" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE_REF - CURRENT_ROLE_KW "current_role" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE_REF + CURRENT_ROLE_KW "current_role" SEMICOLON ";" WHITESPACE "\n" CREATE_SCHEMA @@ -53,11 +51,10 @@ SOURCE_FILE NAME IDENT "s" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE_REF - CURRENT_USER_KW "current_user" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE_REF + CURRENT_USER_KW "current_user" SEMICOLON ";" WHITESPACE "\n" CREATE_SCHEMA @@ -68,11 +65,10 @@ SOURCE_FILE NAME IDENT "s" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE_REF - SESSION_USER_KW "session_user" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE_REF + SESSION_USER_KW "session_user" SEMICOLON ";" WHITESPACE "\n\n" CREATE_SCHEMA @@ -118,12 +114,11 @@ SOURCE_FILE NAME IDENT "s" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE_REF - NAME_REF - IDENT "bar" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE_REF + NAME_REF + IDENT "bar" SEMICOLON ";" WHITESPACE "\n" CREATE_SCHEMA @@ -312,12 +307,11 @@ SOURCE_FILE NAME IDENT "schema_name" WHITESPACE " " - SCHEMA_AUTHORIZATION - AUTHORIZATION_KW "authorization" - WHITESPACE " " - ROLE_REF - NAME_REF - IDENT "user_name" + AUTHORIZATION_KW "authorization" + WHITESPACE " " + ROLE_REF + NAME_REF + IDENT "user_name" SEMICOLON ";" WHITESPACE "\n\n" COMMENT "-- create_schema_with_sequence" From c0941c8d9682392f1c014bcd1be567d7cb7dc851 Mon Sep 17 00:00:00 2001 From: Steve Dignam Date: Thu, 15 Jan 2026 23:41:07 -0500 Subject: [PATCH 3/3] fix --- crates/squawk_ide/src/binder.rs | 10 +++------- crates/squawk_ide/src/classify.rs | 11 ----------- crates/squawk_ide/src/document_symbols.rs | 11 ++--------- crates/squawk_ide/src/hover.rs | 8 +++----- crates/squawk_ide/src/resolve.rs | 2 +- crates/squawk_parser/src/grammar.rs | 11 +++++++++-- .../tests/snapshots/tests__schemas_ok.snap | 4 ++-- 7 files changed, 20 insertions(+), 37 deletions(-) diff --git a/crates/squawk_ide/src/binder.rs b/crates/squawk_ide/src/binder.rs index eec340b1..26ee7a94 100644 --- a/crates/squawk_ide/src/binder.rs +++ b/crates/squawk_ide/src/binder.rs @@ -382,13 +382,9 @@ fn bind_create_schema(b: &mut Binder, create_schema: ast::CreateSchema) { let schema_name = Name::from_node(&schema_name_node); let name_ptr = SyntaxNodePtr::new(schema_name_node.syntax()); (schema_name, name_ptr) - } else if let Some(schema_name_ref) = create_schema - .schema_authorization() - .and_then(|authorization| authorization.role()) - .and_then(|role| role.name_ref()) - { - let schema_name = Name::from_node(&schema_name_ref); - let name_ptr = SyntaxNodePtr::new(schema_name_ref.syntax()); + } else if let Some(name) = create_schema.role().and_then(|role| role.name()) { + let schema_name = Name::from_node(&name); + let name_ptr = SyntaxNodePtr::new(name.syntax()); (schema_name, name_ptr) } else { return; diff --git a/crates/squawk_ide/src/classify.rs b/crates/squawk_ide/src/classify.rs index 93ba2200..cbd54ad0 100644 --- a/crates/squawk_ide/src/classify.rs +++ b/crates/squawk_ide/src/classify.rs @@ -43,7 +43,6 @@ pub(crate) enum NameRefClass { DropRoutine, CallProcedure, DropSchema, - CreateSchema, CreateIndex, CreateIndexColumn, DefaultConstraintFunctionCall, @@ -353,7 +352,6 @@ pub(crate) fn classify_name_ref(name_ref: &ast::NameRef) -> Option } let mut in_type = false; - let mut in_schema_authorization = false; for ancestor in name_ref.syntax().ancestors() { if ast::PathType::can_cast(ancestor.kind()) || ast::ExprType::can_cast(ancestor.kind()) { in_type = true; @@ -361,9 +359,6 @@ pub(crate) fn classify_name_ref(name_ref: &ast::NameRef) -> Option if in_type { return Some(NameRefClass::TypeReference); } - if ast::SchemaAuthorization::can_cast(ancestor.kind()) { - in_schema_authorization = true; - } if ast::Fetch::can_cast(ancestor.kind()) || ast::Move::can_cast(ancestor.kind()) || ast::Close::can_cast(ancestor.kind()) @@ -590,12 +585,6 @@ pub(crate) fn classify_name_ref(name_ref: &ast::NameRef) -> Option if ast::DropSchema::can_cast(ancestor.kind()) { return Some(NameRefClass::DropSchema); } - if in_schema_authorization - && let Some(create_schema) = ast::CreateSchema::cast(ancestor.clone()) - && create_schema.name().is_none() - { - return Some(NameRefClass::CreateSchema); - } if ast::CreateIndex::can_cast(ancestor.kind()) { if in_partition_item { return Some(NameRefClass::CreateIndexColumn); diff --git a/crates/squawk_ide/src/document_symbols.rs b/crates/squawk_ide/src/document_symbols.rs index d13c4033..9d407010 100644 --- a/crates/squawk_ide/src/document_symbols.rs +++ b/crates/squawk_ide/src/document_symbols.rs @@ -171,15 +171,8 @@ fn create_schema_symbol(create_schema: ast::CreateSchema) -> Option Option { } NameRefClass::SchemaQualifier | NameRefClass::DropSchema - | NameRefClass::CreateSchema | NameRefClass::ReindexSchema => { return hover_schema(root, &name_ref, &binder); } @@ -1129,10 +1128,9 @@ fn create_schema_name(create_schema: &ast::CreateSchema) -> Option { } create_schema - .schema_authorization() - .and_then(|authorization| authorization.role()) - .and_then(|role| role.name_ref()) - .map(|name_ref| name_ref.syntax().text().to_string()) + .role() + .and_then(|r| r.name()) + .map(|n| n.syntax().text().to_string()) } fn format_create_schema(create_schema: &ast::CreateSchema) -> Option { diff --git a/crates/squawk_ide/src/resolve.rs b/crates/squawk_ide/src/resolve.rs index 062f80a9..db4f9409 100644 --- a/crates/squawk_ide/src/resolve.rs +++ b/crates/squawk_ide/src/resolve.rs @@ -348,7 +348,7 @@ pub(crate) fn resolve_name_ref( resolve_procedure(binder, &procedure_name, &schema, None, position) .map(|ptr| smallvec![ptr]) } - NameRefClass::DropSchema | NameRefClass::SchemaQualifier | NameRefClass::CreateSchema => { + NameRefClass::DropSchema | NameRefClass::SchemaQualifier => { let schema_name = Name::from_node(name_ref); resolve_schema(binder, &schema_name).map(|ptr| smallvec![ptr]) } diff --git a/crates/squawk_parser/src/grammar.rs b/crates/squawk_parser/src/grammar.rs index 90491ecc..b26ac14e 100644 --- a/crates/squawk_parser/src/grammar.rs +++ b/crates/squawk_parser/src/grammar.rs @@ -10879,11 +10879,18 @@ fn role(p: &mut Parser<'_>) -> bool { fn opt_role_(p: &mut Parser<'_>, kind: SyntaxKind) -> bool { assert!(matches!(kind, ROLE | ROLE_REF)); + let func = |p: &mut Parser<'_>| { + if kind == ROLE_REF { + name_ref(p); + } else { + name(p); + } + }; let m = p.start(); match p.current() { GROUP_KW => { p.bump(GROUP_KW); - name_ref(p); + func(p); } CURRENT_ROLE_KW | CURRENT_USER_KW | SESSION_USER_KW => { p.bump_any(); @@ -10897,7 +10904,7 @@ fn opt_role_(p: &mut Parser<'_>, kind: SyntaxKind) -> bool { } } _ if p.at_ts(NON_RESERVED_WORD) => { - name_ref(p); + func(p); } _ => { m.abandon(p); diff --git a/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap b/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap index 6a1566dd..b2d7dd75 100644 --- a/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__schemas_ok.snap @@ -79,7 +79,7 @@ SOURCE_FILE AUTHORIZATION_KW "authorization" WHITESPACE " " ROLE - NAME_REF + NAME IDENT "foo" SEMICOLON ";" WHITESPACE "\n\n" @@ -136,7 +136,7 @@ SOURCE_FILE AUTHORIZATION_KW "authorization" WHITESPACE " " ROLE - NAME_REF + NAME IDENT "bar" SEMICOLON ";" WHITESPACE "\n\n"