File tree Expand file tree Collapse file tree 2 files changed +18
-0
lines changed Expand file tree Collapse file tree 2 files changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ use crate::ast::Statement;
1919use crate :: dialect:: Dialect ;
2020use crate :: keywords:: Keyword ;
2121use crate :: parser:: { Parser , ParserError } ;
22+ use crate :: tokenizer:: Token ;
2223
2324/// These keywords are disallowed as column identifiers. Such that
2425/// `SELECT 5 AS <col> FROM T` is rejected by BigQuery.
@@ -47,6 +48,13 @@ pub struct BigQueryDialect;
4748impl Dialect for BigQueryDialect {
4849 fn parse_statement ( & self , parser : & mut Parser ) -> Option < Result < Statement , ParserError > > {
4950 if parser. parse_keyword ( Keyword :: BEGIN ) {
51+ if parser. peek_keyword ( Keyword :: TRANSACTION )
52+ || parser. peek_token_ref ( ) . token == Token :: SemiColon
53+ || parser. peek_token_ref ( ) . token == Token :: EOF
54+ {
55+ parser. prev_token ( ) ;
56+ return None ;
57+ }
5058 return Some ( parser. parse_begin_exception_end ( ) ) ;
5159 }
5260
Original file line number Diff line number Diff line change @@ -2566,3 +2566,13 @@ fn test_struct_trailing_and_nested_bracket() {
25662566 )
25672567 ) ;
25682568}
2569+
2570+ #[ test]
2571+ fn test_begin_transaction ( ) {
2572+ bigquery ( ) . verified_stmt ( "BEGIN TRANSACTION" ) ;
2573+ }
2574+
2575+ #[ test]
2576+ fn test_begin_statement ( ) {
2577+ bigquery ( ) . verified_stmt ( "BEGIN" ) ;
2578+ }
You can’t perform that action at this time.
0 commit comments