@@ -2032,7 +2032,7 @@ alter_table_stmt
2032
2032
memoptimize_read: memoptimize_read_clause? _
2033
2033
memoptimize_write: memoptimize_write_clause? _
2034
2034
body: alter_table_stmt_body?
2035
- settings: alter_table_stmt_settings? {
2035
+ settings: alter_table_stmt_settings? _ SEMI_COLON {
2036
2036
return {
2037
2037
name,
2038
2038
table,
@@ -2043,9 +2043,20 @@ alter_table_stmt
2043
2043
}
2044
2044
}
2045
2045
2046
- // TODO:
2047
2046
alter_table_stmt_settings
2048
- = " "
2047
+ = (_ x: alter_table_stmt_setting _ { return x; })+
2048
+
2049
+ alter_table_stmt_setting
2050
+ = enable_disable_clause
2051
+ / action:(KW_ENABLE / KW_DISABLE) _
2052
+ target:(
2053
+ KW_TABLE _ KW_LOCK { return 'table lock'; } /
2054
+ KW_ALL _ KW_TRIGGERS { return 'all triggers'; } /
2055
+ KW_CONTAINER_MAP /
2056
+ KW_CONTAINERS_DEFAULT
2057
+ ) {
2058
+ return { action, target };
2059
+ }
2049
2060
2050
2061
alter_table_stmt_body
2051
2062
/ / = alter_table_properties
@@ -2484,6 +2495,10 @@ KW_PURGE = 'purge'i !ident_start { return '
2484
2495
KW_ALTER = 'alter'i !ident_start { return 'alter'; }
2485
2496
KW_RENAME = 'rename'i !ident_start { return 'rename'; }
2486
2497
KW_ONLINE = 'online'i !ident_start { return 'online'; }
2498
+ KW_LOCK = 'lock'i !ident_start { return 'lock'; }
2499
+ KW_TRIGGERS = 'triggers'i !ident_start { return 'triggers'; }
2500
+ KW_CONTAINER_MAP = 'container_map'i !ident_start { return 'container_map'; }
2501
+ KW_CONTAINERS_DEFAULT = 'containers_default'i !ident_start { return 'containers_default'; }
2487
2502
2488
2503
KW_VARYING = 'varying'i !ident_start { return 'varying'; }
2489
2504
KW_VARCHAR = 'varchar'i !ident_start { return 'varchar'; }
0 commit comments