@@ -887,7 +887,7 @@ module.exports = grammar({
887887 seq ( $ . keyword_role , $ . role_identifier ) ,
888888 // TODO: routine
889889 // TODO: rule
890- seq ( $ . keyword_schema , $ . any_identifier ) ,
890+ seq ( $ . keyword_schema , $ . schema_identifier ) ,
891891 seq ( $ . keyword_sequence , $ . object_reference ) ,
892892 // TODO: server
893893 // TODO: statistics
@@ -1051,20 +1051,7 @@ module.exports = grammar({
10511051 )
10521052 ) ,
10531053
1054- policy_to_role : ( $ ) =>
1055- seq (
1056- $ . keyword_to ,
1057- comma_list (
1058- choice (
1059- $ . any_identifier ,
1060- $ . keyword_public ,
1061- $ . keyword_current_user ,
1062- $ . keyword_current_role ,
1063- $ . keyword_session_user
1064- ) ,
1065- true
1066- )
1067- ) ,
1054+ policy_to_role : ( $ ) => seq ( $ . keyword_to , $ . role_specification ) ,
10681055
10691056 drop_policy : ( $ ) =>
10701057 seq (
@@ -1434,20 +1421,27 @@ module.exports = grammar({
14341421 seq (
14351422 optional ( $ . _if_not_exists ) ,
14361423 $ . any_identifier ,
1437- optional ( seq ( $ . keyword_authorization , $ . any_identifier ) )
1424+ optional ( seq ( $ . keyword_authorization , $ . role_specification ) )
14381425 ) ,
1439- seq ( $ . keyword_authorization , $ . any_identifier )
1426+ seq ( $ . keyword_authorization , $ . role_specification )
14401427 )
14411428 )
14421429 ) ,
14431430
14441431 _with_settings : ( $ ) =>
1445- seq (
1446- field ( "name" , $ . any_identifier ) ,
1447- optional ( "=" ) ,
1448- field (
1449- "value" ,
1450- choice ( $ . any_identifier , alias ( $ . _single_quote_string , $ . literal ) )
1432+ choice (
1433+ seq (
1434+ $ . keyword_owner ,
1435+ optional ( "=" ) ,
1436+ choice ( $ . role_identifier , $ . keyword_default )
1437+ ) ,
1438+ seq (
1439+ field ( "name" , $ . any_identifier ) ,
1440+ optional ( "=" ) ,
1441+ field (
1442+ "value" ,
1443+ choice ( $ . any_identifier , alias ( $ . _single_quote_string , $ . literal ) )
1444+ )
14511445 )
14521446 ) ,
14531447
@@ -1495,13 +1489,8 @@ module.exports = grammar({
14951489
14961490 _user_access_role_config : ( $ ) =>
14971491 seq (
1498- choice (
1499- seq ( optional ( $ . keyword_in ) , $ . keyword_role ) ,
1500- seq ( $ . keyword_in , $ . keyword_group ) ,
1501- $ . keyword_admin ,
1502- $ . keyword_user
1503- ) ,
1504- comma_list ( $ . any_identifier , true )
1492+ choice ( seq ( optional ( $ . keyword_in ) , $ . keyword_role ) , $ . keyword_admin ) ,
1493+ comma_list ( $ . role_identifier , true )
15051494 ) ,
15061495
15071496 create_sequence : ( $ ) =>
@@ -1558,7 +1547,7 @@ module.exports = grammar({
15581547 optional ( $ . _if_not_exists ) ,
15591548 $ . any_identifier ,
15601549 optional ( $ . keyword_with ) ,
1561- optional ( seq ( $ . keyword_schema , $ . any_identifier ) ) ,
1550+ optional ( seq ( $ . keyword_schema , $ . schema_identifier ) ) ,
15621551 optional (
15631552 seq (
15641553 $ . keyword_version ,
@@ -1603,14 +1592,7 @@ module.exports = grammar({
16031592 seq (
16041593 $ . keyword_for ,
16051594 optional ( $ . keyword_each ) ,
1606- choice ( $ . keyword_row , $ . keyword_statement ) ,
1607- // mariadb
1608- optional (
1609- seq (
1610- choice ( $ . keyword_follows , $ . keyword_precedes ) ,
1611- $ . any_identifier
1612- )
1613- )
1595+ choice ( $ . keyword_row , $ . keyword_statement )
16141596 ) ,
16151597 seq ( $ . keyword_when , wrapped_in_parenthesis ( $ . _expression ) )
16161598 )
@@ -1817,7 +1799,7 @@ module.exports = grammar({
18171799 seq (
18181800 $ . keyword_alter ,
18191801 $ . keyword_schema ,
1820- $ . any_identifier ,
1802+ $ . schema_identifier ,
18211803 choice ( $ . keyword_rename , $ . keyword_owner ) ,
18221804 $ . keyword_to ,
18231805 $ . any_identifier
@@ -1853,7 +1835,7 @@ module.exports = grammar({
18531835 seq (
18541836 $ . keyword_alter ,
18551837 choice ( $ . keyword_role , $ . keyword_group , $ . keyword_user ) ,
1856- choice ( $ . any_identifier , $ . keyword_all ) ,
1838+ choice ( $ . role_identifier , $ . keyword_all ) ,
18571839 choice (
18581840 $ . rename_object ,
18591841 seq ( optional ( $ . keyword_with ) , repeat ( $ . _role_options ) ) ,
@@ -1963,7 +1945,7 @@ module.exports = grammar({
19631945 $ . keyword_set ,
19641946 choice (
19651947 choice ( $ . keyword_logged , $ . keyword_unlogged ) ,
1966- seq ( $ . keyword_schema , $ . any_identifier )
1948+ seq ( $ . keyword_schema , $ . schema_identifier )
19671949 )
19681950 )
19691951 )
@@ -1973,7 +1955,7 @@ module.exports = grammar({
19731955 seq (
19741956 $ . keyword_alter ,
19751957 $ . keyword_type ,
1976- $ . any_identifier ,
1958+ $ . type_identifier ,
19771959 choice (
19781960 $ . change_ownership ,
19791961 $ . set_schema ,
@@ -2071,7 +2053,7 @@ module.exports = grammar({
20712053 $ . keyword_drop ,
20722054 $ . keyword_schema ,
20732055 optional ( $ . _if_exists ) ,
2074- $ . any_identifier ,
2056+ $ . schema_identifier ,
20752057 optional ( $ . _drop_behavior )
20762058 ) ,
20772059
@@ -2090,7 +2072,7 @@ module.exports = grammar({
20902072 $ . keyword_drop ,
20912073 choice ( $ . keyword_group , $ . keyword_role , $ . keyword_user ) ,
20922074 optional ( $ . _if_exists ) ,
2093- $ . any_identifier
2075+ $ . role_identifier
20942076 ) ,
20952077
20962078 drop_type : ( $ ) =>
@@ -2145,7 +2127,7 @@ module.exports = grammar({
21452127 seq ( $ . keyword_set , $ . keyword_schema , $ . schema_identifier ) ,
21462128
21472129 change_ownership : ( $ ) =>
2148- seq ( $ . keyword_owner , $ . keyword_to , $ . any_identifier ) ,
2130+ seq ( $ . keyword_owner , $ . keyword_to , $ . role_specification ) ,
21492131
21502132 object_id : ( $ ) =>
21512133 seq (
@@ -2452,11 +2434,7 @@ module.exports = grammar({
24522434 // Spark SQL
24532435 $ . keyword_partition
24542436 ) ,
2455- choice (
2456- paren_list ( $ . any_identifier , false ) , // postgres & Impala (CTAS)
2457- $ . column_definitions , // impala/hive external tables
2458- paren_list ( $ . _key_value_pair , true ) // Spark SQL
2459- )
2437+ paren_list ( $ . any_identifier , false )
24602438 ) ,
24612439
24622440 _key_value_pair : ( $ ) =>
@@ -3038,18 +3016,17 @@ module.exports = grammar({
30383016 seq (
30393017 $ . grantable_targets ,
30403018 choice (
3041- $ . grantable_on_table ,
3042- $ . grantable_on_function ,
3019+ seq ( $ . grantable_on_table , $ . table_identifier ) ,
3020+ seq ( $ . grantable_on_function , $ . function_identifier ) ,
30433021 $ . grantable_on_all
30443022 )
3045- ) ,
3046- $ . any_identifier
3023+ )
30473024 ) ,
30483025
30493026 grantable_targets : ( $ ) =>
30503027 choice (
3051- seq ( $ . _grantable , comma_list ( $ . any_identifier , false ) ) ,
3052- comma_list ( $ . any_identifier , true )
3028+ seq ( $ . _grantable , comma_list ( $ . column_identifier , false ) ) ,
3029+ comma_list ( $ . role_identifier , true )
30533030 ) ,
30543031
30553032 _grantable : ( $ ) =>
@@ -3106,12 +3083,12 @@ module.exports = grammar({
31063083 ) ,
31073084 $ . keyword_in ,
31083085 $ . keyword_schema ,
3109- comma_list ( $ . any_identifier , true )
3086+ comma_list ( $ . schema_identifier , true )
31103087 ) ,
31113088
31123089 role_specification : ( $ ) =>
31133090 choice (
3114- seq ( optional ( $ . keyword_group ) , $ . any_identifier ) ,
3091+ seq ( optional ( $ . keyword_group ) , $ . role_identifier ) ,
31153092 $ . keyword_public ,
31163093 $ . keyword_current_role ,
31173094 $ . keyword_current_user ,
0 commit comments