@@ -43,6 +43,7 @@ declare var kw_group: any;
4343declare var kw_limit : any ;
4444declare var kw_offset : any ;
4545declare var kw_fetch : any ;
46+ declare var kw_for : any ;
4647declare var kw_order : any ;
4748declare var kw_asc : any ;
4849declare var kw_desc : any ;
@@ -102,7 +103,6 @@ declare var kw_user: any;
102103declare var kw_current_user : any ;
103104declare var lparen : any ;
104105declare var kw_placing : any ;
105- declare var kw_for : any ;
106106declare var rparen : any ;
107107declare var kw_create : any ;
108108declare var kw_table : any ;
@@ -460,6 +460,7 @@ const grammar: Grammar = {
460460 { "name" : "kw_prepare" , "symbols" : [ ( lexerAny . has ( "word" ) ? { type : "word" } : word ) ] , "postprocess" : notReservedKw ( 'prepare' ) } ,
461461 { "name" : "kw_raise" , "symbols" : [ ( lexerAny . has ( "word" ) ? { type : "word" } : word ) ] , "postprocess" : notReservedKw ( 'raise' ) } ,
462462 { "name" : "kw_continue" , "symbols" : [ ( lexerAny . has ( "word" ) ? { type : "word" } : word ) ] , "postprocess" : notReservedKw ( 'continue' ) } ,
463+ { "name" : "kw_share" , "symbols" : [ ( lexerAny . has ( "word" ) ? { type : "word" } : word ) ] , "postprocess" : notReservedKw ( 'share' ) } ,
463464 { "name" : "kw_ifnotexists" , "symbols" : [ "kw_if" , ( lexerAny . has ( "kw_not" ) ? { type : "kw_not" } : kw_not ) , "kw_exists" ] } ,
464465 { "name" : "kw_ifexists" , "symbols" : [ "kw_if" , "kw_exists" ] } ,
465466 { "name" : "kw_not_null" , "symbols" : [ ( lexerAny . has ( "kw_not" ) ? { type : "kw_not" } : kw_not ) , ( lexerAny . has ( "kw_null" ) ? { type : "kw_null" } : kw_null ) ] } ,
@@ -574,8 +575,10 @@ const grammar: Grammar = {
574575 { "name" : "select_statement$ebnf$3" , "symbols" : [ ] , "postprocess" : ( ) => null } ,
575576 { "name" : "select_statement$ebnf$4" , "symbols" : [ "select_order_by" ] , "postprocess" : id } ,
576577 { "name" : "select_statement$ebnf$4" , "symbols" : [ ] , "postprocess" : ( ) => null } ,
577- { "name" : "select_statement" , "symbols" : [ "select_what" , "select_statement$ebnf$1" , "select_statement$ebnf$2" , "select_statement$ebnf$3" , "select_statement$ebnf$4" , "select_limit" ] , "postprocess" : x => {
578- let [ what , from , where , groupBy , orderBy , limit ] = x ;
578+ { "name" : "select_statement$ebnf$5" , "symbols" : [ "select_for" ] , "postprocess" : id } ,
579+ { "name" : "select_statement$ebnf$5" , "symbols" : [ ] , "postprocess" : ( ) => null } ,
580+ { "name" : "select_statement" , "symbols" : [ "select_what" , "select_statement$ebnf$1" , "select_statement$ebnf$2" , "select_statement$ebnf$3" , "select_statement$ebnf$4" , "select_limit" , "select_statement$ebnf$5" ] , "postprocess" : x => {
581+ let [ what , from , where , groupBy , orderBy , limit , selectFor ] = x ;
579582 from = unwrap ( from ) ;
580583 groupBy = groupBy && ( groupBy . length === 1 && groupBy [ 0 ] . type === 'list' ? groupBy [ 0 ] . expressions : groupBy ) ;
581584 return track ( x , {
@@ -585,6 +588,7 @@ const grammar: Grammar = {
585588 ...limit ? { limit } : { } ,
586589 ...orderBy ? { orderBy } : { } ,
587590 ...where ? { where } : { } ,
591+ ...selectFor ? { for : selectFor [ 1 ] } : { } ,
588592 type : 'select' ,
589593 } ) ;
590594 } } ,
@@ -736,6 +740,11 @@ const grammar: Grammar = {
736740 ...offset ? { offset} : { } ,
737741 } ) ;
738742 } } ,
743+ { "name" : "select_for$subexpression$1" , "symbols" : [ "kw_update" ] , "postprocess" : x => track ( x , { type : 'update' } ) } ,
744+ { "name" : "select_for$subexpression$1" , "symbols" : [ "kw_no" , "kw_key" , "kw_update" ] , "postprocess" : x => track ( x , { type : 'no key update' } ) } ,
745+ { "name" : "select_for$subexpression$1" , "symbols" : [ "kw_share" ] , "postprocess" : x => track ( x , { type : 'share' } ) } ,
746+ { "name" : "select_for$subexpression$1" , "symbols" : [ "kw_key" , "kw_share" ] , "postprocess" : x => track ( x , { type : 'key share' } ) } ,
747+ { "name" : "select_for" , "symbols" : [ ( lexerAny . has ( "kw_for" ) ? { type : "kw_for" } : kw_for ) , "select_for$subexpression$1" ] } ,
739748 { "name" : "select_order_by$subexpression$1" , "symbols" : [ ( lexerAny . has ( "kw_order" ) ? { type : "kw_order" } : kw_order ) , "kw_by" ] } ,
740749 { "name" : "select_order_by$ebnf$1" , "symbols" : [ ] } ,
741750 { "name" : "select_order_by$ebnf$1$subexpression$1" , "symbols" : [ "comma" , "select_order_by_expr" ] , "postprocess" : last } ,
@@ -1826,13 +1835,19 @@ const grammar: Grammar = {
18261835 { "name" : "altertable_statement$ebnf$1" , "symbols" : [ ] , "postprocess" : ( ) => null } ,
18271836 { "name" : "altertable_statement$ebnf$2" , "symbols" : [ ( lexerAny . has ( "kw_only" ) ? { type : "kw_only" } : kw_only ) ] , "postprocess" : id } ,
18281837 { "name" : "altertable_statement$ebnf$2" , "symbols" : [ ] , "postprocess" : ( ) => null } ,
1829- { "name" : "altertable_statement" , "symbols" : [ "kw_alter" , ( lexerAny . has ( "kw_table" ) ? { type : "kw_table" } : kw_table ) , "altertable_statement$ebnf$1" , "altertable_statement$ebnf$2" , "table_ref" , "altertable_action " ] , "postprocess" : x => track ( x , {
1838+ { "name" : "altertable_statement" , "symbols" : [ "kw_alter" , ( lexerAny . has ( "kw_table" ) ? { type : "kw_table" } : kw_table ) , "altertable_statement$ebnf$1" , "altertable_statement$ebnf$2" , "table_ref" , "altertable_actions " ] , "postprocess" : x => track ( x , {
18301839 type : 'alter table' ,
18311840 ... x [ 2 ] ? { ifExists : true } : { } ,
18321841 ... x [ 3 ] ? { only : true } : { } ,
18331842 table : unwrap ( x [ 4 ] ) ,
1834- change : unwrap ( x [ 5 ] ) ,
1843+ changes : unbox ( x [ 5 ] ) . map ( unwrap ) ,
18351844 } ) } ,
1845+ { "name" : "altertable_actions$ebnf$1" , "symbols" : [ ] } ,
1846+ { "name" : "altertable_actions$ebnf$1$subexpression$1" , "symbols" : [ "comma" , "altertable_action" ] , "postprocess" : last } ,
1847+ { "name" : "altertable_actions$ebnf$1" , "symbols" : [ "altertable_actions$ebnf$1" , "altertable_actions$ebnf$1$subexpression$1" ] , "postprocess" : ( d ) => d [ 0 ] . concat ( [ d [ 1 ] ] ) } ,
1848+ { "name" : "altertable_actions" , "symbols" : [ "altertable_action" , "altertable_actions$ebnf$1" ] , "postprocess" : ( [ head , tail ] ) => {
1849+ return [ head , ...( tail || [ ] ) ] ;
1850+ } } ,
18361851 { "name" : "altertable_action" , "symbols" : [ "altertable_rename_table" ] } ,
18371852 { "name" : "altertable_action" , "symbols" : [ "altertable_rename_column" ] } ,
18381853 { "name" : "altertable_action" , "symbols" : [ "altertable_rename_constraint" ] } ,
0 commit comments