diff --git a/crates/parser/tests/snapshots/statements/valid/0038@2.snap b/crates/parser/tests/snapshots/statements/valid/0038@2.snap index 637cca0f..b2939349 100644 --- a/crates/parser/tests/snapshots/statements/valid/0038@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0038@2.snap @@ -1,33 +1,32 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE CAST (bigint AS int4) WITHOUT FUNCTION AS IMPLICIT;" +description: CREATE CAST (bigint AS int4) WITHOUT FUNCTION AS IMPLICIT; --- Parse { - cst: SourceFile@0..59 - Newline@0..1 "\n" - CreateCastStmt@1..59 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Cast@8..12 "CAST" - Whitespace@12..13 " " - Ascii40@13..14 "(" - TypeName@14..20 - Bigint@14..20 "bigint" - Whitespace@20..21 " " - As@21..23 "AS" - Whitespace@23..24 " " - TypeName@24..28 - Ident@24..28 "int4" - Ascii41@28..29 ")" - Whitespace@29..30 " " - Without@30..37 "WITHOUT" - Whitespace@37..38 " " - Function@38..46 "FUNCTION" - Whitespace@46..47 " " - As@47..49 "AS" - Whitespace@49..50 " " - ImplicitP@50..58 "IMPLICIT" - Ascii59@58..59 ";" + cst: SourceFile@0..58 + CreateCastStmt@0..58 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Cast@7..11 "CAST" + Whitespace@11..12 " " + Ascii40@12..13 "(" + TypeName@13..19 + Bigint@13..19 "bigint" + Whitespace@19..20 " " + As@20..22 "AS" + Whitespace@22..23 " " + TypeName@23..27 + Ident@23..27 "int4" + Ascii41@27..28 ")" + Whitespace@28..29 " " + Without@29..36 "WITHOUT" + Whitespace@36..37 " " + Function@37..45 "FUNCTION" + Whitespace@45..46 " " + As@46..48 "AS" + Whitespace@48..49 " " + ImplicitP@49..57 "IMPLICIT" + Ascii59@57..58 ";" , errors: [], stmts: [ @@ -92,7 +91,7 @@ Parse { inout: false, }, ), - range: 0..58, + range: 0..57, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0038@3.snap b/crates/parser/tests/snapshots/statements/valid/0038@3.snap index 8cb7e210..7deada38 100644 --- a/crates/parser/tests/snapshots/statements/valid/0038@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0038@3.snap @@ -1,33 +1,32 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE CAST (bigint AS int4) WITH INOUT AS ASSIGNMENT;" +description: CREATE CAST (bigint AS int4) WITH INOUT AS ASSIGNMENT; --- Parse { - cst: SourceFile@0..55 - Newline@0..1 "\n" - CreateCastStmt@1..55 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Cast@8..12 "CAST" - Whitespace@12..13 " " - Ascii40@13..14 "(" - TypeName@14..20 - Bigint@14..20 "bigint" - Whitespace@20..21 " " - As@21..23 "AS" - Whitespace@23..24 " " - TypeName@24..28 - Ident@24..28 "int4" - Ascii41@28..29 ")" - Whitespace@29..30 " " - With@30..34 "WITH" - Whitespace@34..35 " " - Inout@35..40 "INOUT" - Whitespace@40..41 " " - As@41..43 "AS" - Whitespace@43..44 " " - Assignment@44..54 "ASSIGNMENT" - Ascii59@54..55 ";" + cst: SourceFile@0..54 + CreateCastStmt@0..54 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Cast@7..11 "CAST" + Whitespace@11..12 " " + Ascii40@12..13 "(" + TypeName@13..19 + Bigint@13..19 "bigint" + Whitespace@19..20 " " + As@20..22 "AS" + Whitespace@22..23 " " + TypeName@23..27 + Ident@23..27 "int4" + Ascii41@27..28 ")" + Whitespace@28..29 " " + With@29..33 "WITH" + Whitespace@33..34 " " + Inout@34..39 "INOUT" + Whitespace@39..40 " " + As@40..42 "AS" + Whitespace@42..43 " " + Assignment@43..53 "ASSIGNMENT" + Ascii59@53..54 ";" , errors: [], stmts: [ @@ -92,7 +91,7 @@ Parse { inout: true, }, ), - range: 0..54, + range: 0..53, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0039@2.snap b/crates/parser/tests/snapshots/statements/valid/0039@2.snap index a819d24b..e0321af3 100644 --- a/crates/parser/tests/snapshots/statements/valid/0039@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0039@2.snap @@ -1,48 +1,47 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE AGGREGATE aggregate1 (int4, bool) (sfunc = sfunc1, stype = stype1);" +description: "CREATE AGGREGATE aggregate1 (int4, bool) (sfunc = sfunc1, stype = stype1);" --- Parse { - cst: SourceFile@0..75 - Newline@0..1 "\n" - DefineStmt@1..75 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Aggregate@8..17 "AGGREGATE" - Whitespace@17..18 " " - Ident@18..28 "aggregate1" - Whitespace@28..29 " " - Ascii40@29..30 "(" - List@30..40 - FunctionParameter@30..34 - TypeName@30..34 - Ident@30..34 "int4" - Ascii44@34..35 "," - Whitespace@35..36 " " - FunctionParameter@36..40 - TypeName@36..40 - Ident@36..40 "bool" - Ascii41@40..41 ")" - Whitespace@41..42 " " - Ascii40@42..43 "(" - DefElem@43..57 - Ident@43..48 "sfunc" - Whitespace@48..49 " " - Ascii61@49..50 "=" - Whitespace@50..51 " " - TypeName@51..57 - Ident@51..57 "sfunc1" - Ascii44@57..58 "," - Whitespace@58..59 " " - DefElem@59..73 - Ident@59..64 "stype" - Whitespace@64..65 " " - Ascii61@65..66 "=" - Whitespace@66..67 " " - TypeName@67..73 - Ident@67..73 "stype1" - Ascii41@73..74 ")" - Ascii59@74..75 ";" + cst: SourceFile@0..74 + DefineStmt@0..74 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Aggregate@7..16 "AGGREGATE" + Whitespace@16..17 " " + Ident@17..27 "aggregate1" + Whitespace@27..28 " " + Ascii40@28..29 "(" + List@29..39 + FunctionParameter@29..33 + TypeName@29..33 + Ident@29..33 "int4" + Ascii44@33..34 "," + Whitespace@34..35 " " + FunctionParameter@35..39 + TypeName@35..39 + Ident@35..39 "bool" + Ascii41@39..40 ")" + Whitespace@40..41 " " + Ascii40@41..42 "(" + DefElem@42..56 + Ident@42..47 "sfunc" + Whitespace@47..48 " " + Ascii61@48..49 "=" + Whitespace@49..50 " " + TypeName@50..56 + Ident@50..56 "sfunc1" + Ascii44@56..57 "," + Whitespace@57..58 " " + DefElem@58..72 + Ident@58..63 "stype" + Whitespace@63..64 " " + Ascii61@64..65 "=" + Whitespace@65..66 " " + TypeName@66..72 + Ident@66..72 "stype1" + Ascii41@72..73 ")" + Ascii59@73..74 ";" , errors: [], stmts: [ @@ -235,7 +234,7 @@ Parse { replace: false, }, ), - range: 0..74, + range: 0..73, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0039@3.snap b/crates/parser/tests/snapshots/statements/valid/0039@3.snap index f775efc1..5a697a73 100644 --- a/crates/parser/tests/snapshots/statements/valid/0039@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0039@3.snap @@ -1,40 +1,39 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE AGGREGATE aggregate1 (*) (sfunc = sfunc1, stype = stype1);" +description: "CREATE AGGREGATE aggregate1 (*) (sfunc = sfunc1, stype = stype1);" --- Parse { - cst: SourceFile@0..66 - Newline@0..1 "\n" - DefineStmt@1..66 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Aggregate@8..17 "AGGREGATE" - Whitespace@17..18 " " - Ident@18..28 "aggregate1" - Whitespace@28..29 " " - Ascii40@29..30 "(" - Ascii42@30..31 "*" - Ascii41@31..32 ")" - Whitespace@32..33 " " - Ascii40@33..34 "(" - DefElem@34..48 - Ident@34..39 "sfunc" - Whitespace@39..40 " " - Ascii61@40..41 "=" - Whitespace@41..42 " " - TypeName@42..48 - Ident@42..48 "sfunc1" - Ascii44@48..49 "," - Whitespace@49..50 " " - DefElem@50..64 - Ident@50..55 "stype" - Whitespace@55..56 " " - Ascii61@56..57 "=" - Whitespace@57..58 " " - TypeName@58..64 - Ident@58..64 "stype1" - Ascii41@64..65 ")" - Ascii59@65..66 ";" + cst: SourceFile@0..65 + DefineStmt@0..65 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Aggregate@7..16 "AGGREGATE" + Whitespace@16..17 " " + Ident@17..27 "aggregate1" + Whitespace@27..28 " " + Ascii40@28..29 "(" + Ascii42@29..30 "*" + Ascii41@30..31 ")" + Whitespace@31..32 " " + Ascii40@32..33 "(" + DefElem@33..47 + Ident@33..38 "sfunc" + Whitespace@38..39 " " + Ascii61@39..40 "=" + Whitespace@40..41 " " + TypeName@41..47 + Ident@41..47 "sfunc1" + Ascii44@47..48 "," + Whitespace@48..49 " " + DefElem@49..63 + Ident@49..54 "stype" + Whitespace@54..55 " " + Ascii61@55..56 "=" + Whitespace@56..57 " " + TypeName@57..63 + Ident@57..63 "stype1" + Ascii41@63..64 ")" + Ascii59@64..65 ";" , errors: [], stmts: [ @@ -154,7 +153,7 @@ Parse { replace: false, }, ), - range: 0..65, + range: 0..64, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0039@4.snap b/crates/parser/tests/snapshots/statements/valid/0039@4.snap index f08cbbc7..63b0f1db 100644 --- a/crates/parser/tests/snapshots/statements/valid/0039@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0039@4.snap @@ -1,51 +1,50 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE AGGREGATE aggregate1 (int4) (sfunc = sfunc1, stype = stype1, finalfunc_extra, mfinalfuncextra);" +description: "CREATE AGGREGATE aggregate1 (int4) (sfunc = sfunc1, stype = stype1, finalfunc_extra, mfinalfuncextra);" --- Parse { - cst: SourceFile@0..103 - Newline@0..1 "\n" - DefineStmt@1..103 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Aggregate@8..17 "AGGREGATE" - Whitespace@17..18 " " - Ident@18..28 "aggregate1" - Whitespace@28..29 " " - Ascii40@29..30 "(" - List@30..34 - FunctionParameter@30..34 - TypeName@30..34 - Ident@30..34 "int4" - Ascii41@34..35 ")" - Whitespace@35..36 " " - Ascii40@36..37 "(" - DefElem@37..51 - Ident@37..42 "sfunc" - Whitespace@42..43 " " - Ascii61@43..44 "=" - Whitespace@44..45 " " - TypeName@45..51 - Ident@45..51 "sfunc1" - Ascii44@51..52 "," - Whitespace@52..53 " " - DefElem@53..67 - Ident@53..58 "stype" - Whitespace@58..59 " " - Ascii61@59..60 "=" - Whitespace@60..61 " " - TypeName@61..67 - Ident@61..67 "stype1" - Ascii44@67..68 "," - Whitespace@68..69 " " - DefElem@69..84 - Ident@69..84 "finalfunc_extra" - Ascii44@84..85 "," - Whitespace@85..86 " " - DefElem@86..101 - Ident@86..101 "mfinalfuncextra" - Ascii41@101..102 ")" - Ascii59@102..103 ";" + cst: SourceFile@0..102 + DefineStmt@0..102 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Aggregate@7..16 "AGGREGATE" + Whitespace@16..17 " " + Ident@17..27 "aggregate1" + Whitespace@27..28 " " + Ascii40@28..29 "(" + List@29..33 + FunctionParameter@29..33 + TypeName@29..33 + Ident@29..33 "int4" + Ascii41@33..34 ")" + Whitespace@34..35 " " + Ascii40@35..36 "(" + DefElem@36..50 + Ident@36..41 "sfunc" + Whitespace@41..42 " " + Ascii61@42..43 "=" + Whitespace@43..44 " " + TypeName@44..50 + Ident@44..50 "sfunc1" + Ascii44@50..51 "," + Whitespace@51..52 " " + DefElem@52..66 + Ident@52..57 "stype" + Whitespace@57..58 " " + Ascii61@58..59 "=" + Whitespace@59..60 " " + TypeName@60..66 + Ident@60..66 "stype1" + Ascii44@66..67 "," + Whitespace@67..68 " " + DefElem@68..83 + Ident@68..83 "finalfunc_extra" + Ascii44@83..84 "," + Whitespace@84..85 " " + DefElem@85..100 + Ident@85..100 "mfinalfuncextra" + Ascii41@100..101 ")" + Ascii59@101..102 ";" , errors: [], stmts: [ @@ -231,7 +230,7 @@ Parse { replace: false, }, ), - range: 0..102, + range: 0..101, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0039@5.snap b/crates/parser/tests/snapshots/statements/valid/0039@5.snap index cbee8965..5a16ba96 100644 --- a/crates/parser/tests/snapshots/statements/valid/0039@5.snap +++ b/crates/parser/tests/snapshots/statements/valid/0039@5.snap @@ -1,61 +1,60 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE AGGREGATE aggregate1 (int4) (sfunc = sfunc1, stype = stype1, finalfunc_modify = read_only, parallel = restricted);" +description: "CREATE AGGREGATE aggregate1 (int4) (sfunc = sfunc1, stype = stype1, finalfunc_modify = read_only, parallel = restricted);" --- Parse { - cst: SourceFile@0..122 - Newline@0..1 "\n" - DefineStmt@1..122 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Aggregate@8..17 "AGGREGATE" - Whitespace@17..18 " " - Ident@18..28 "aggregate1" - Whitespace@28..29 " " - Ascii40@29..30 "(" - List@30..34 - FunctionParameter@30..34 - TypeName@30..34 - Ident@30..34 "int4" - Ascii41@34..35 ")" - Whitespace@35..36 " " - Ascii40@36..37 "(" - DefElem@37..51 - Ident@37..42 "sfunc" - Whitespace@42..43 " " - Ascii61@43..44 "=" - Whitespace@44..45 " " - TypeName@45..51 - Ident@45..51 "sfunc1" - Ascii44@51..52 "," - Whitespace@52..53 " " - DefElem@53..67 - Ident@53..58 "stype" - Whitespace@58..59 " " - Ascii61@59..60 "=" - Whitespace@60..61 " " - TypeName@61..67 - Ident@61..67 "stype1" - Ascii44@67..68 "," - Whitespace@68..69 " " - DefElem@69..97 - Ident@69..85 "finalfunc_modify" - Whitespace@85..86 " " - Ascii61@86..87 "=" - Whitespace@87..88 " " - TypeName@88..97 - Ident@88..97 "read_only" - Ascii44@97..98 "," - Whitespace@98..99 " " - DefElem@99..120 - Parallel@99..107 "parallel" - Whitespace@107..108 " " - Ascii61@108..109 "=" - Whitespace@109..110 " " - TypeName@110..120 - Ident@110..120 "restricted" - Ascii41@120..121 ")" - Ascii59@121..122 ";" + cst: SourceFile@0..121 + DefineStmt@0..121 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Aggregate@7..16 "AGGREGATE" + Whitespace@16..17 " " + Ident@17..27 "aggregate1" + Whitespace@27..28 " " + Ascii40@28..29 "(" + List@29..33 + FunctionParameter@29..33 + TypeName@29..33 + Ident@29..33 "int4" + Ascii41@33..34 ")" + Whitespace@34..35 " " + Ascii40@35..36 "(" + DefElem@36..50 + Ident@36..41 "sfunc" + Whitespace@41..42 " " + Ascii61@42..43 "=" + Whitespace@43..44 " " + TypeName@44..50 + Ident@44..50 "sfunc1" + Ascii44@50..51 "," + Whitespace@51..52 " " + DefElem@52..66 + Ident@52..57 "stype" + Whitespace@57..58 " " + Ascii61@58..59 "=" + Whitespace@59..60 " " + TypeName@60..66 + Ident@60..66 "stype1" + Ascii44@66..67 "," + Whitespace@67..68 " " + DefElem@68..96 + Ident@68..84 "finalfunc_modify" + Whitespace@84..85 " " + Ascii61@85..86 "=" + Whitespace@86..87 " " + TypeName@87..96 + Ident@87..96 "read_only" + Ascii44@96..97 "," + Whitespace@97..98 " " + DefElem@98..119 + Parallel@98..106 "parallel" + Whitespace@106..107 " " + Ascii61@107..108 "=" + Whitespace@108..109 " " + TypeName@109..119 + Ident@109..119 "restricted" + Ascii41@119..120 ")" + Ascii59@120..121 ";" , errors: [], stmts: [ @@ -295,7 +294,7 @@ Parse { replace: false, }, ), - range: 0..121, + range: 0..120, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0039@6.snap b/crates/parser/tests/snapshots/statements/valid/0039@6.snap index 6e793c27..aa6d8a06 100644 --- a/crates/parser/tests/snapshots/statements/valid/0039@6.snap +++ b/crates/parser/tests/snapshots/statements/valid/0039@6.snap @@ -1,64 +1,63 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE AGGREGATE percentile_disc (float8 ORDER BY anyelement) (sfunc = ordered_set_transition, stype = internal, finalfunc = percentile_disc_final, finalfunc_extra);" +description: "CREATE AGGREGATE percentile_disc (float8 ORDER BY anyelement) (sfunc = ordered_set_transition, stype = internal, finalfunc = percentile_disc_final, finalfunc_extra);" --- Parse { - cst: SourceFile@0..166 - Newline@0..1 "\n" - DefineStmt@1..166 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Aggregate@8..17 "AGGREGATE" - Whitespace@17..18 " " - Ident@18..33 "percentile_disc" - Whitespace@33..34 " " - Ascii40@34..35 "(" - List@35..61 - FunctionParameter@35..41 - TypeName@35..41 - Ident@35..41 "float8" - Whitespace@41..42 " " - Order@42..47 "ORDER" - Whitespace@47..48 " " - By@48..50 "BY" - Whitespace@50..51 " " - FunctionParameter@51..61 - TypeName@51..61 - Ident@51..61 "anyelement" - Ascii41@61..62 ")" - Whitespace@62..63 " " - Ascii40@63..64 "(" - DefElem@64..94 - Ident@64..69 "sfunc" - Whitespace@69..70 " " - Ascii61@70..71 "=" - Whitespace@71..72 " " - TypeName@72..94 - Ident@72..94 "ordered_set_transition" - Ascii44@94..95 "," - Whitespace@95..96 " " - DefElem@96..112 - Ident@96..101 "stype" - Whitespace@101..102 " " - Ascii61@102..103 "=" - Whitespace@103..104 " " - TypeName@104..112 - Ident@104..112 "internal" - Ascii44@112..113 "," - Whitespace@113..114 " " - DefElem@114..147 - Ident@114..123 "finalfunc" - Whitespace@123..124 " " - Ascii61@124..125 "=" - Whitespace@125..126 " " - TypeName@126..147 - Ident@126..147 "percentile_disc_final" - Ascii44@147..148 "," - Whitespace@148..149 " " - DefElem@149..164 - Ident@149..164 "finalfunc_extra" - Ascii41@164..165 ")" - Ascii59@165..166 ";" + cst: SourceFile@0..165 + DefineStmt@0..165 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Aggregate@7..16 "AGGREGATE" + Whitespace@16..17 " " + Ident@17..32 "percentile_disc" + Whitespace@32..33 " " + Ascii40@33..34 "(" + List@34..60 + FunctionParameter@34..40 + TypeName@34..40 + Ident@34..40 "float8" + Whitespace@40..41 " " + Order@41..46 "ORDER" + Whitespace@46..47 " " + By@47..49 "BY" + Whitespace@49..50 " " + FunctionParameter@50..60 + TypeName@50..60 + Ident@50..60 "anyelement" + Ascii41@60..61 ")" + Whitespace@61..62 " " + Ascii40@62..63 "(" + DefElem@63..93 + Ident@63..68 "sfunc" + Whitespace@68..69 " " + Ascii61@69..70 "=" + Whitespace@70..71 " " + TypeName@71..93 + Ident@71..93 "ordered_set_transition" + Ascii44@93..94 "," + Whitespace@94..95 " " + DefElem@95..111 + Ident@95..100 "stype" + Whitespace@100..101 " " + Ascii61@101..102 "=" + Whitespace@102..103 " " + TypeName@103..111 + Ident@103..111 "internal" + Ascii44@111..112 "," + Whitespace@112..113 " " + DefElem@113..146 + Ident@113..122 "finalfunc" + Whitespace@122..123 " " + Ascii61@123..124 "=" + Whitespace@124..125 " " + TypeName@125..146 + Ident@125..146 "percentile_disc_final" + Ascii44@146..147 "," + Whitespace@147..148 " " + DefElem@148..163 + Ident@148..163 "finalfunc_extra" + Ascii41@163..164 ")" + Ascii59@164..165 ";" , errors: [], stmts: [ @@ -304,7 +303,7 @@ Parse { replace: false, }, ), - range: 0..165, + range: 0..164, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0039@7.snap b/crates/parser/tests/snapshots/statements/valid/0039@7.snap index 77f7361e..d0fe38a5 100644 --- a/crates/parser/tests/snapshots/statements/valid/0039@7.snap +++ b/crates/parser/tests/snapshots/statements/valid/0039@7.snap @@ -1,56 +1,55 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE AGGREGATE custom_aggregate (float8 ORDER BY column1, column2) (sfunc = sfunc1, stype = stype1);" +description: "CREATE AGGREGATE custom_aggregate (float8 ORDER BY column1, column2) (sfunc = sfunc1, stype = stype1);" --- Parse { - cst: SourceFile@0..103 - Newline@0..1 "\n" - DefineStmt@1..103 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Aggregate@8..17 "AGGREGATE" - Whitespace@17..18 " " - Ident@18..34 "custom_aggregate" - Whitespace@34..35 " " - Ascii40@35..36 "(" - List@36..68 - FunctionParameter@36..42 - TypeName@36..42 - Ident@36..42 "float8" - Whitespace@42..43 " " - Order@43..48 "ORDER" - Whitespace@48..49 " " - By@49..51 "BY" - Whitespace@51..52 " " - FunctionParameter@52..59 - TypeName@52..59 - Ident@52..59 "column1" - Ascii44@59..60 "," - Whitespace@60..61 " " - FunctionParameter@61..68 - TypeName@61..68 - Ident@61..68 "column2" - Ascii41@68..69 ")" - Whitespace@69..70 " " - Ascii40@70..71 "(" - DefElem@71..85 - Ident@71..76 "sfunc" - Whitespace@76..77 " " - Ascii61@77..78 "=" - Whitespace@78..79 " " - TypeName@79..85 - Ident@79..85 "sfunc1" - Ascii44@85..86 "," - Whitespace@86..87 " " - DefElem@87..101 - Ident@87..92 "stype" - Whitespace@92..93 " " - Ascii61@93..94 "=" - Whitespace@94..95 " " - TypeName@95..101 - Ident@95..101 "stype1" - Ascii41@101..102 ")" - Ascii59@102..103 ";" + cst: SourceFile@0..102 + DefineStmt@0..102 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Aggregate@7..16 "AGGREGATE" + Whitespace@16..17 " " + Ident@17..33 "custom_aggregate" + Whitespace@33..34 " " + Ascii40@34..35 "(" + List@35..67 + FunctionParameter@35..41 + TypeName@35..41 + Ident@35..41 "float8" + Whitespace@41..42 " " + Order@42..47 "ORDER" + Whitespace@47..48 " " + By@48..50 "BY" + Whitespace@50..51 " " + FunctionParameter@51..58 + TypeName@51..58 + Ident@51..58 "column1" + Ascii44@58..59 "," + Whitespace@59..60 " " + FunctionParameter@60..67 + TypeName@60..67 + Ident@60..67 "column2" + Ascii41@67..68 ")" + Whitespace@68..69 " " + Ascii40@69..70 "(" + DefElem@70..84 + Ident@70..75 "sfunc" + Whitespace@75..76 " " + Ascii61@76..77 "=" + Whitespace@77..78 " " + TypeName@78..84 + Ident@78..84 "sfunc1" + Ascii44@84..85 "," + Whitespace@85..86 " " + DefElem@86..100 + Ident@86..91 "stype" + Whitespace@91..92 " " + Ascii61@92..93 "=" + Whitespace@93..94 " " + TypeName@94..100 + Ident@94..100 "stype1" + Ascii41@100..101 ")" + Ascii59@101..102 ";" , errors: [], stmts: [ @@ -276,7 +275,7 @@ Parse { replace: false, }, ), - range: 0..102, + range: 0..101, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0040@2.snap b/crates/parser/tests/snapshots/statements/valid/0040@2.snap index 538d801d..a1e51fc8 100644 --- a/crates/parser/tests/snapshots/statements/valid/0040@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0040@2.snap @@ -1,44 +1,43 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql;" +description: "CREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql;" --- Parse { - cst: SourceFile@0..125 - Newline@0..1 "\n" - CreateFunctionStmt@1..125 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Or@8..10 "OR" - Whitespace@10..11 " " - Replace@11..18 "REPLACE" - Whitespace@18..19 " " - Function@19..27 "FUNCTION" - Whitespace@27..28 " " - Ident@28..34 "getfoo" - Ascii40@34..35 "(" - FunctionParameter@35..38 - TypeName@35..38 - IntP@35..38 "int" - Ascii41@38..39 ")" - Whitespace@39..40 " " - Returns@40..47 "RETURNS" - Whitespace@47..48 " " - Setof@48..53 "SETOF" - Whitespace@53..54 " " - TypeName@54..59 - Ident@54..59 "users" - Whitespace@59..60 " " - DefElem@60..111 - As@60..62 "AS" - Whitespace@62..63 " " - List@63..111 - Sconst@63..111 "$$SELECT * FROM \\\"use ..." - Whitespace@111..112 " " - DefElem@112..124 - Language@112..120 "LANGUAGE" - Whitespace@120..121 " " - SqlP@121..124 "sql" - Ascii59@124..125 ";" + cst: SourceFile@0..124 + CreateFunctionStmt@0..124 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Or@7..9 "OR" + Whitespace@9..10 " " + Replace@10..17 "REPLACE" + Whitespace@17..18 " " + Function@18..26 "FUNCTION" + Whitespace@26..27 " " + Ident@27..33 "getfoo" + Ascii40@33..34 "(" + FunctionParameter@34..37 + TypeName@34..37 + IntP@34..37 "int" + Ascii41@37..38 ")" + Whitespace@38..39 " " + Returns@39..46 "RETURNS" + Whitespace@46..47 " " + Setof@47..52 "SETOF" + Whitespace@52..53 " " + TypeName@53..58 + Ident@53..58 "users" + Whitespace@58..59 " " + DefElem@59..110 + As@59..61 "AS" + Whitespace@61..62 " " + List@62..110 + Sconst@62..110 "$$SELECT * FROM \\\"use ..." + Whitespace@110..111 " " + DefElem@111..123 + Language@111..119 "LANGUAGE" + Whitespace@119..120 " " + SqlP@120..123 "sql" + Ascii59@123..124 ";" , errors: [], stmts: [ @@ -185,7 +184,7 @@ Parse { sql_body: None, }, ), - range: 0..124, + range: 0..123, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0040@3.snap b/crates/parser/tests/snapshots/statements/valid/0040@3.snap index a4b0e706..d39c658a 100644 --- a/crates/parser/tests/snapshots/statements/valid/0040@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0040@3.snap @@ -1,47 +1,46 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE;" +description: "CREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE;" --- Parse { - cst: SourceFile@0..135 - Newline@0..1 "\n" - CreateFunctionStmt@1..135 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Or@8..10 "OR" - Whitespace@10..11 " " - Replace@11..18 "REPLACE" - Whitespace@18..19 " " - Function@19..27 "FUNCTION" - Whitespace@27..28 " " - Ident@28..34 "getfoo" - Ascii40@34..35 "(" - FunctionParameter@35..38 - TypeName@35..38 - IntP@35..38 "int" - Ascii41@38..39 ")" - Whitespace@39..40 " " - Returns@40..47 "RETURNS" - Whitespace@47..48 " " - Setof@48..53 "SETOF" - Whitespace@53..54 " " - TypeName@54..59 - Ident@54..59 "users" - Whitespace@59..60 " " - DefElem@60..111 - As@60..62 "AS" - Whitespace@62..63 " " - List@63..111 - Sconst@63..111 "$$SELECT * FROM \\\"use ..." - Whitespace@111..112 " " - DefElem@112..124 - Language@112..120 "LANGUAGE" - Whitespace@120..121 " " - SqlP@121..124 "sql" - Whitespace@124..125 " " - DefElem@125..134 - Immutable@125..134 "IMMUTABLE" - Ascii59@134..135 ";" + cst: SourceFile@0..134 + CreateFunctionStmt@0..134 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Or@7..9 "OR" + Whitespace@9..10 " " + Replace@10..17 "REPLACE" + Whitespace@17..18 " " + Function@18..26 "FUNCTION" + Whitespace@26..27 " " + Ident@27..33 "getfoo" + Ascii40@33..34 "(" + FunctionParameter@34..37 + TypeName@34..37 + IntP@34..37 "int" + Ascii41@37..38 ")" + Whitespace@38..39 " " + Returns@39..46 "RETURNS" + Whitespace@46..47 " " + Setof@47..52 "SETOF" + Whitespace@52..53 " " + TypeName@53..58 + Ident@53..58 "users" + Whitespace@58..59 " " + DefElem@59..110 + As@59..61 "AS" + Whitespace@61..62 " " + List@62..110 + Sconst@62..110 "$$SELECT * FROM \\\"use ..." + Whitespace@110..111 " " + DefElem@111..123 + Language@111..119 "LANGUAGE" + Whitespace@119..120 " " + SqlP@120..123 "sql" + Whitespace@123..124 " " + DefElem@124..133 + Immutable@124..133 "IMMUTABLE" + Ascii59@133..134 ";" , errors: [], stmts: [ @@ -211,7 +210,7 @@ Parse { sql_body: None, }, ), - range: 0..134, + range: 0..133, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0040@4.snap b/crates/parser/tests/snapshots/statements/valid/0040@4.snap index 61b82b4e..6d89ee01 100644 --- a/crates/parser/tests/snapshots/statements/valid/0040@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0040@4.snap @@ -1,50 +1,49 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE STRICT;" +description: "CREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE STRICT;" --- Parse { - cst: SourceFile@0..142 - Newline@0..1 "\n" - CreateFunctionStmt@1..142 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Or@8..10 "OR" - Whitespace@10..11 " " - Replace@11..18 "REPLACE" - Whitespace@18..19 " " - Function@19..27 "FUNCTION" - Whitespace@27..28 " " - Ident@28..34 "getfoo" - Ascii40@34..35 "(" - FunctionParameter@35..38 - TypeName@35..38 - IntP@35..38 "int" - Ascii41@38..39 ")" - Whitespace@39..40 " " - Returns@40..47 "RETURNS" - Whitespace@47..48 " " - Setof@48..53 "SETOF" - Whitespace@53..54 " " - TypeName@54..59 - Ident@54..59 "users" - Whitespace@59..60 " " - DefElem@60..111 - As@60..62 "AS" - Whitespace@62..63 " " - List@63..111 - Sconst@63..111 "$$SELECT * FROM \\\"use ..." - Whitespace@111..112 " " - DefElem@112..124 - Language@112..120 "LANGUAGE" - Whitespace@120..121 " " - SqlP@121..124 "sql" - Whitespace@124..125 " " - DefElem@125..134 - Immutable@125..134 "IMMUTABLE" - Whitespace@134..135 " " - DefElem@135..141 - StrictP@135..141 "STRICT" - Ascii59@141..142 ";" + cst: SourceFile@0..141 + CreateFunctionStmt@0..141 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Or@7..9 "OR" + Whitespace@9..10 " " + Replace@10..17 "REPLACE" + Whitespace@17..18 " " + Function@18..26 "FUNCTION" + Whitespace@26..27 " " + Ident@27..33 "getfoo" + Ascii40@33..34 "(" + FunctionParameter@34..37 + TypeName@34..37 + IntP@34..37 "int" + Ascii41@37..38 ")" + Whitespace@38..39 " " + Returns@39..46 "RETURNS" + Whitespace@46..47 " " + Setof@47..52 "SETOF" + Whitespace@52..53 " " + TypeName@53..58 + Ident@53..58 "users" + Whitespace@58..59 " " + DefElem@59..110 + As@59..61 "AS" + Whitespace@61..62 " " + List@62..110 + Sconst@62..110 "$$SELECT * FROM \\\"use ..." + Whitespace@110..111 " " + DefElem@111..123 + Language@111..119 "LANGUAGE" + Whitespace@119..120 " " + SqlP@120..123 "sql" + Whitespace@123..124 " " + DefElem@124..133 + Immutable@124..133 "IMMUTABLE" + Whitespace@133..134 " " + DefElem@134..140 + StrictP@134..140 "STRICT" + Ascii59@140..141 ";" , errors: [], stmts: [ @@ -237,7 +236,7 @@ Parse { sql_body: None, }, ), - range: 0..141, + range: 0..140, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0040@5.snap b/crates/parser/tests/snapshots/statements/valid/0040@5.snap index 12af6657..275f2fc9 100644 --- a/crates/parser/tests/snapshots/statements/valid/0040@5.snap +++ b/crates/parser/tests/snapshots/statements/valid/0040@5.snap @@ -1,58 +1,57 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE RETURNS NULL ON NULL INPUT;" +description: "CREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE RETURNS NULL ON NULL INPUT;" --- Parse { - cst: SourceFile@0..162 - Newline@0..1 "\n" - CreateFunctionStmt@1..162 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Or@8..10 "OR" - Whitespace@10..11 " " - Replace@11..18 "REPLACE" - Whitespace@18..19 " " - Function@19..27 "FUNCTION" - Whitespace@27..28 " " - Ident@28..34 "getfoo" - Ascii40@34..35 "(" - FunctionParameter@35..38 - TypeName@35..38 - IntP@35..38 "int" - Ascii41@38..39 ")" - Whitespace@39..40 " " - Returns@40..47 "RETURNS" - Whitespace@47..48 " " - Setof@48..53 "SETOF" - Whitespace@53..54 " " - TypeName@54..59 - Ident@54..59 "users" - Whitespace@59..60 " " - DefElem@60..111 - As@60..62 "AS" - Whitespace@62..63 " " - List@63..111 - Sconst@63..111 "$$SELECT * FROM \\\"use ..." - Whitespace@111..112 " " - DefElem@112..124 - Language@112..120 "LANGUAGE" - Whitespace@120..121 " " - SqlP@121..124 "sql" - Whitespace@124..125 " " - DefElem@125..134 - Immutable@125..134 "IMMUTABLE" - Whitespace@134..135 " " - DefElem@135..142 - Returns@135..142 "RETURNS" - Whitespace@142..143 " " - NullP@143..147 "NULL" - Whitespace@147..148 " " - On@148..150 "ON" - Whitespace@150..151 " " - NullP@151..155 "NULL" - Whitespace@155..156 " " - InputP@156..161 "INPUT" - Ascii59@161..162 ";" + cst: SourceFile@0..161 + CreateFunctionStmt@0..161 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Or@7..9 "OR" + Whitespace@9..10 " " + Replace@10..17 "REPLACE" + Whitespace@17..18 " " + Function@18..26 "FUNCTION" + Whitespace@26..27 " " + Ident@27..33 "getfoo" + Ascii40@33..34 "(" + FunctionParameter@34..37 + TypeName@34..37 + IntP@34..37 "int" + Ascii41@37..38 ")" + Whitespace@38..39 " " + Returns@39..46 "RETURNS" + Whitespace@46..47 " " + Setof@47..52 "SETOF" + Whitespace@52..53 " " + TypeName@53..58 + Ident@53..58 "users" + Whitespace@58..59 " " + DefElem@59..110 + As@59..61 "AS" + Whitespace@61..62 " " + List@62..110 + Sconst@62..110 "$$SELECT * FROM \\\"use ..." + Whitespace@110..111 " " + DefElem@111..123 + Language@111..119 "LANGUAGE" + Whitespace@119..120 " " + SqlP@120..123 "sql" + Whitespace@123..124 " " + DefElem@124..133 + Immutable@124..133 "IMMUTABLE" + Whitespace@133..134 " " + DefElem@134..141 + Returns@134..141 "RETURNS" + Whitespace@141..142 " " + NullP@142..146 "NULL" + Whitespace@146..147 " " + On@147..149 "ON" + Whitespace@149..150 " " + NullP@150..154 "NULL" + Whitespace@154..155 " " + InputP@155..160 "INPUT" + Ascii59@160..161 ";" , errors: [], stmts: [ @@ -245,7 +244,7 @@ Parse { sql_body: None, }, ), - range: 0..161, + range: 0..160, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0040@6.snap b/crates/parser/tests/snapshots/statements/valid/0040@6.snap index fea59877..296f9dde 100644 --- a/crates/parser/tests/snapshots/statements/valid/0040@6.snap +++ b/crates/parser/tests/snapshots/statements/valid/0040@6.snap @@ -1,56 +1,55 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE CALLED ON NULL INPUT;" +description: "CREATE OR REPLACE FUNCTION getfoo(int) RETURNS SETOF users AS $$SELECT * FROM \\\"users\\\" WHERE users.id = $1;$$ LANGUAGE sql IMMUTABLE CALLED ON NULL INPUT;" --- Parse { - cst: SourceFile@0..156 - Newline@0..1 "\n" - CreateFunctionStmt@1..156 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Or@8..10 "OR" - Whitespace@10..11 " " - Replace@11..18 "REPLACE" - Whitespace@18..19 " " - Function@19..27 "FUNCTION" - Whitespace@27..28 " " - Ident@28..34 "getfoo" - Ascii40@34..35 "(" - FunctionParameter@35..38 - TypeName@35..38 - IntP@35..38 "int" - Ascii41@38..39 ")" - Whitespace@39..40 " " - Returns@40..47 "RETURNS" - Whitespace@47..48 " " - Setof@48..53 "SETOF" - Whitespace@53..54 " " - TypeName@54..59 - Ident@54..59 "users" - Whitespace@59..60 " " - DefElem@60..111 - As@60..62 "AS" - Whitespace@62..63 " " - List@63..111 - Sconst@63..111 "$$SELECT * FROM \\\"use ..." - Whitespace@111..112 " " - DefElem@112..124 - Language@112..120 "LANGUAGE" - Whitespace@120..121 " " - SqlP@121..124 "sql" - Whitespace@124..125 " " - DefElem@125..134 - Immutable@125..134 "IMMUTABLE" - Whitespace@134..135 " " - DefElem@135..141 - Called@135..141 "CALLED" - Whitespace@141..142 " " - On@142..144 "ON" - Whitespace@144..145 " " - NullP@145..149 "NULL" - Whitespace@149..150 " " - InputP@150..155 "INPUT" - Ascii59@155..156 ";" + cst: SourceFile@0..155 + CreateFunctionStmt@0..155 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Or@7..9 "OR" + Whitespace@9..10 " " + Replace@10..17 "REPLACE" + Whitespace@17..18 " " + Function@18..26 "FUNCTION" + Whitespace@26..27 " " + Ident@27..33 "getfoo" + Ascii40@33..34 "(" + FunctionParameter@34..37 + TypeName@34..37 + IntP@34..37 "int" + Ascii41@37..38 ")" + Whitespace@38..39 " " + Returns@39..46 "RETURNS" + Whitespace@46..47 " " + Setof@47..52 "SETOF" + Whitespace@52..53 " " + TypeName@53..58 + Ident@53..58 "users" + Whitespace@58..59 " " + DefElem@59..110 + As@59..61 "AS" + Whitespace@61..62 " " + List@62..110 + Sconst@62..110 "$$SELECT * FROM \\\"use ..." + Whitespace@110..111 " " + DefElem@111..123 + Language@111..119 "LANGUAGE" + Whitespace@119..120 " " + SqlP@120..123 "sql" + Whitespace@123..124 " " + DefElem@124..133 + Immutable@124..133 "IMMUTABLE" + Whitespace@133..134 " " + DefElem@134..140 + Called@134..140 "CALLED" + Whitespace@140..141 " " + On@141..143 "ON" + Whitespace@143..144 " " + NullP@144..148 "NULL" + Whitespace@148..149 " " + InputP@149..154 "INPUT" + Ascii59@154..155 ";" , errors: [], stmts: [ @@ -243,7 +242,7 @@ Parse { sql_body: None, }, ), - range: 0..155, + range: 0..154, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0040@7.snap b/crates/parser/tests/snapshots/statements/valid/0040@7.snap index 3cb31466..ca41f566 100644 --- a/crates/parser/tests/snapshots/statements/valid/0040@7.snap +++ b/crates/parser/tests/snapshots/statements/valid/0040@7.snap @@ -1,51 +1,50 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE OR REPLACE FUNCTION getfoo() RETURNS text AS $$SELECT name FROM \\\"users\\\" LIMIT 1$$ LANGUAGE sql IMMUTABLE CALLED ON NULL INPUT;" +description: "CREATE OR REPLACE FUNCTION getfoo() RETURNS text AS $$SELECT name FROM \\\"users\\\" LIMIT 1$$ LANGUAGE sql IMMUTABLE CALLED ON NULL INPUT;" --- Parse { - cst: SourceFile@0..136 - Newline@0..1 "\n" - CreateFunctionStmt@1..136 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Or@8..10 "OR" - Whitespace@10..11 " " - Replace@11..18 "REPLACE" - Whitespace@18..19 " " - Function@19..27 "FUNCTION" - Whitespace@27..28 " " - Ident@28..34 "getfoo" - Ascii40@34..35 "(" - Ascii41@35..36 ")" - Whitespace@36..37 " " - Returns@37..44 "RETURNS" - Whitespace@44..45 " " - TypeName@45..49 - TextP@45..49 "text" - Whitespace@49..50 " " - DefElem@50..91 - As@50..52 "AS" - Whitespace@52..53 " " - List@53..91 - Sconst@53..91 "$$SELECT name FROM \\\" ..." - Whitespace@91..92 " " - DefElem@92..104 - Language@92..100 "LANGUAGE" - Whitespace@100..101 " " - SqlP@101..104 "sql" - Whitespace@104..105 " " - DefElem@105..114 - Immutable@105..114 "IMMUTABLE" - Whitespace@114..115 " " - DefElem@115..121 - Called@115..121 "CALLED" - Whitespace@121..122 " " - On@122..124 "ON" - Whitespace@124..125 " " - NullP@125..129 "NULL" - Whitespace@129..130 " " - InputP@130..135 "INPUT" - Ascii59@135..136 ";" + cst: SourceFile@0..135 + CreateFunctionStmt@0..135 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Or@7..9 "OR" + Whitespace@9..10 " " + Replace@10..17 "REPLACE" + Whitespace@17..18 " " + Function@18..26 "FUNCTION" + Whitespace@26..27 " " + Ident@27..33 "getfoo" + Ascii40@33..34 "(" + Ascii41@34..35 ")" + Whitespace@35..36 " " + Returns@36..43 "RETURNS" + Whitespace@43..44 " " + TypeName@44..48 + TextP@44..48 "text" + Whitespace@48..49 " " + DefElem@49..90 + As@49..51 "AS" + Whitespace@51..52 " " + List@52..90 + Sconst@52..90 "$$SELECT name FROM \\\" ..." + Whitespace@90..91 " " + DefElem@91..103 + Language@91..99 "LANGUAGE" + Whitespace@99..100 " " + SqlP@100..103 "sql" + Whitespace@103..104 " " + DefElem@104..113 + Immutable@104..113 "IMMUTABLE" + Whitespace@113..114 " " + DefElem@114..120 + Called@114..120 "CALLED" + Whitespace@120..121 " " + On@121..123 "ON" + Whitespace@123..124 " " + NullP@124..128 "NULL" + Whitespace@128..129 " " + InputP@129..134 "INPUT" + Ascii59@134..135 ";" , errors: [], stmts: [ @@ -195,7 +194,7 @@ Parse { sql_body: None, }, ), - range: 0..135, + range: 0..134, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0041@2.snap b/crates/parser/tests/snapshots/statements/valid/0041@2.snap index 8ddbd3eb..3893d4bd 100644 --- a/crates/parser/tests/snapshots/statements/valid/0041@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0041@2.snap @@ -1,20 +1,19 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE SCHEMA AUTHORIZATION joe;" +description: CREATE SCHEMA AUTHORIZATION joe; --- Parse { - cst: SourceFile@0..33 - Newline@0..1 "\n" - CreateSchemaStmt@1..33 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Schema@8..14 "SCHEMA" - Whitespace@14..15 " " - Authorization@15..28 "AUTHORIZATION" - Whitespace@28..29 " " - RoleSpec@29..32 - Ident@29..32 "joe" - Ascii59@32..33 ";" + cst: SourceFile@0..32 + CreateSchemaStmt@0..32 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Schema@7..13 "SCHEMA" + Whitespace@13..14 " " + Authorization@14..27 "AUTHORIZATION" + Whitespace@27..28 " " + RoleSpec@28..31 + Ident@28..31 "joe" + Ascii59@31..32 ";" , errors: [], stmts: [ @@ -33,7 +32,7 @@ Parse { if_not_exists: false, }, ), - range: 0..32, + range: 0..31, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0041@3.snap b/crates/parser/tests/snapshots/statements/valid/0041@3.snap index e8af8d4a..3c83312e 100644 --- a/crates/parser/tests/snapshots/statements/valid/0041@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0041@3.snap @@ -1,28 +1,27 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE SCHEMA IF NOT EXISTS test AUTHORIZATION joe;" +description: CREATE SCHEMA IF NOT EXISTS test AUTHORIZATION joe; --- Parse { - cst: SourceFile@0..52 - Newline@0..1 "\n" - CreateSchemaStmt@1..52 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Schema@8..14 "SCHEMA" - Whitespace@14..15 " " - IfP@15..17 "IF" - Whitespace@17..18 " " - Not@18..21 "NOT" - Whitespace@21..22 " " - Exists@22..28 "EXISTS" - Whitespace@28..29 " " - Ident@29..33 "test" - Whitespace@33..34 " " - Authorization@34..47 "AUTHORIZATION" - Whitespace@47..48 " " - RoleSpec@48..51 - Ident@48..51 "joe" - Ascii59@51..52 ";" + cst: SourceFile@0..51 + CreateSchemaStmt@0..51 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Schema@7..13 "SCHEMA" + Whitespace@13..14 " " + IfP@14..16 "IF" + Whitespace@16..17 " " + Not@17..20 "NOT" + Whitespace@20..21 " " + Exists@21..27 "EXISTS" + Whitespace@27..28 " " + Ident@28..32 "test" + Whitespace@32..33 " " + Authorization@33..46 "AUTHORIZATION" + Whitespace@46..47 " " + RoleSpec@47..50 + Ident@47..50 "joe" + Ascii59@50..51 ";" , errors: [], stmts: [ @@ -41,7 +40,7 @@ Parse { if_not_exists: true, }, ), - range: 0..51, + range: 0..50, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0041@4.snap b/crates/parser/tests/snapshots/statements/valid/0041@4.snap index 2a66ddac..1fc76ac3 100644 --- a/crates/parser/tests/snapshots/statements/valid/0041@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0041@4.snap @@ -1,95 +1,94 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE SCHEMA hollywood CREATE TABLE films (title text, release date, awards text[]) CREATE VIEW winners AS SELECT title, release FROM films WHERE awards IS NOT NULL;" +description: "CREATE SCHEMA hollywood CREATE TABLE films (title text, release date, awards text[]) CREATE VIEW winners AS SELECT title, release FROM films WHERE awards IS NOT NULL;" --- Parse { - cst: SourceFile@0..165 - Newline@0..1 "\n" - CreateSchemaStmt@1..24 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Schema@8..14 "SCHEMA" - Whitespace@14..15 " " - Ident@15..24 "hollywood" - CreateStmt@24..84 - Create@24..30 "CREATE" - Whitespace@30..31 " " - Table@31..36 "TABLE" - Whitespace@36..37 " " - RangeVar@37..42 - Ident@37..42 "films" - Whitespace@42..43 " " - Ascii40@43..44 "(" - ColumnDef@44..54 - Ident@44..49 "title" - Whitespace@49..50 " " - TypeName@50..54 - TextP@50..54 "text" - Ascii44@54..55 "," - Whitespace@55..56 " " - ColumnDef@56..68 - Release@56..63 "release" - Whitespace@63..64 " " - TypeName@64..68 - Ident@64..68 "date" - Ascii44@68..69 "," - Whitespace@69..70 " " - ColumnDef@70..81 - Ident@70..76 "awards" - Whitespace@76..77 " " - TypeName@77..81 - TextP@77..81 "text" - Ascii91@81..82 "[" - Ascii93@82..83 "]" - Ascii41@83..84 ")" - ViewStmt@84..165 - Create@84..90 "CREATE" - Whitespace@90..91 " " - View@91..95 "VIEW" - Whitespace@95..96 " " - RangeVar@96..103 - Ident@96..103 "winners" - Whitespace@103..104 " " - As@104..106 "AS" - Whitespace@106..107 " " - SelectStmt@107..164 - Select@107..113 "SELECT" - Whitespace@113..114 " " - ResTarget@114..119 - ColumnRef@114..119 - Ident@114..119 "title" - Ascii44@119..120 "," - Whitespace@120..121 " " - ResTarget@121..128 - ColumnRef@121..128 - Release@121..128 "release" - Whitespace@128..129 " " - From@129..133 "FROM" - Whitespace@133..134 " " - RangeVar@134..139 - Ident@134..139 "films" - Whitespace@139..140 " " - Where@140..145 "WHERE" - Whitespace@145..146 " " - NullTest@146..164 - ColumnRef@146..152 - Ident@146..152 "awards" - Whitespace@152..153 " " - Is@153..155 "IS" - Whitespace@155..156 " " - Not@156..159 "NOT" - Whitespace@159..160 " " - NullP@160..164 "NULL" - Ascii59@164..165 ";" + cst: SourceFile@0..164 + CreateSchemaStmt@0..23 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Schema@7..13 "SCHEMA" + Whitespace@13..14 " " + Ident@14..23 "hollywood" + CreateStmt@23..83 + Create@23..29 "CREATE" + Whitespace@29..30 " " + Table@30..35 "TABLE" + Whitespace@35..36 " " + RangeVar@36..41 + Ident@36..41 "films" + Whitespace@41..42 " " + Ascii40@42..43 "(" + ColumnDef@43..53 + Ident@43..48 "title" + Whitespace@48..49 " " + TypeName@49..53 + TextP@49..53 "text" + Ascii44@53..54 "," + Whitespace@54..55 " " + ColumnDef@55..67 + Release@55..62 "release" + Whitespace@62..63 " " + TypeName@63..67 + Ident@63..67 "date" + Ascii44@67..68 "," + Whitespace@68..69 " " + ColumnDef@69..80 + Ident@69..75 "awards" + Whitespace@75..76 " " + TypeName@76..80 + TextP@76..80 "text" + Ascii91@80..81 "[" + Ascii93@81..82 "]" + Ascii41@82..83 ")" + ViewStmt@83..164 + Create@83..89 "CREATE" + Whitespace@89..90 " " + View@90..94 "VIEW" + Whitespace@94..95 " " + RangeVar@95..102 + Ident@95..102 "winners" + Whitespace@102..103 " " + As@103..105 "AS" + Whitespace@105..106 " " + SelectStmt@106..163 + Select@106..112 "SELECT" + Whitespace@112..113 " " + ResTarget@113..118 + ColumnRef@113..118 + Ident@113..118 "title" + Ascii44@118..119 "," + Whitespace@119..120 " " + ResTarget@120..127 + ColumnRef@120..127 + Release@120..127 "release" + Whitespace@127..128 " " + From@128..132 "FROM" + Whitespace@132..133 " " + RangeVar@133..138 + Ident@133..138 "films" + Whitespace@138..139 " " + Where@139..144 "WHERE" + Whitespace@144..145 " " + NullTest@145..163 + ColumnRef@145..151 + Ident@145..151 "awards" + Whitespace@151..152 " " + Is@152..154 "IS" + Whitespace@154..155 " " + Not@155..158 "NOT" + Whitespace@158..159 " " + NullP@159..163 "NULL" + Ascii59@163..164 ";" , errors: [ SyntaxError( "Expected Ascii59, found Whitespace", - 24..24, + 23..23, ), SyntaxError( "Expected Ascii59, found Whitespace", - 85..85, + 84..84, ), ], stmts: [ @@ -102,7 +101,7 @@ Parse { if_not_exists: false, }, ), - range: 0..24, + range: 0..23, }, RawStmt { stmt: CreateStmt( @@ -283,7 +282,7 @@ Parse { if_not_exists: false, }, ), - range: 24..85, + range: 23..84, }, RawStmt { stmt: ViewStmt( @@ -453,7 +452,7 @@ Parse { with_check_option: NoCheckOption, }, ), - range: 85..166, + range: 84..165, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0044@2.snap b/crates/parser/tests/snapshots/statements/valid/0044@2.snap index 36f6d93f..cf3f34b5 100644 --- a/crates/parser/tests/snapshots/statements/valid/0044@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0044@2.snap @@ -1,52 +1,51 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE VIEW universal_comedies AS SELECT * FROM comedies WHERE classification = 'U' WITH LOCAL CHECK OPTION;" +description: "CREATE VIEW universal_comedies AS SELECT * FROM comedies WHERE classification = 'U' WITH LOCAL CHECK OPTION;" --- Parse { - cst: SourceFile@0..109 - Newline@0..1 "\n" - ViewStmt@1..109 - Create@1..7 "CREATE" - Whitespace@7..8 " " - View@8..12 "VIEW" - Whitespace@12..13 " " - RangeVar@13..31 - Ident@13..31 "universal_comedies" - Whitespace@31..32 " " - As@32..34 "AS" - Whitespace@34..35 " " - SelectStmt@35..84 - Select@35..41 "SELECT" - Whitespace@41..42 " " - ResTarget@42..43 - ColumnRef@42..43 - AStar@42..43 - Ascii42@42..43 "*" - Whitespace@43..44 " " - From@44..48 "FROM" - Whitespace@48..49 " " - RangeVar@49..57 - Ident@49..57 "comedies" - Whitespace@57..58 " " - Where@58..63 "WHERE" - Whitespace@63..64 " " - AExpr@64..84 - ColumnRef@64..78 - Ident@64..78 "classification" - Whitespace@78..79 " " - Ascii61@79..80 "=" - Whitespace@80..81 " " - AConst@81..84 - Sconst@81..84 "'U'" - Whitespace@84..85 " " - With@85..89 "WITH" - Whitespace@89..90 " " - Local@90..95 "LOCAL" - Whitespace@95..96 " " - Check@96..101 "CHECK" - Whitespace@101..102 " " - Option@102..108 "OPTION" - Ascii59@108..109 ";" + cst: SourceFile@0..108 + ViewStmt@0..108 + Create@0..6 "CREATE" + Whitespace@6..7 " " + View@7..11 "VIEW" + Whitespace@11..12 " " + RangeVar@12..30 + Ident@12..30 "universal_comedies" + Whitespace@30..31 " " + As@31..33 "AS" + Whitespace@33..34 " " + SelectStmt@34..83 + Select@34..40 "SELECT" + Whitespace@40..41 " " + ResTarget@41..42 + ColumnRef@41..42 + AStar@41..42 + Ascii42@41..42 "*" + Whitespace@42..43 " " + From@43..47 "FROM" + Whitespace@47..48 " " + RangeVar@48..56 + Ident@48..56 "comedies" + Whitespace@56..57 " " + Where@57..62 "WHERE" + Whitespace@62..63 " " + AExpr@63..83 + ColumnRef@63..77 + Ident@63..77 "classification" + Whitespace@77..78 " " + Ascii61@78..79 "=" + Whitespace@79..80 " " + AConst@80..83 + Sconst@80..83 "'U'" + Whitespace@83..84 " " + With@84..88 "WITH" + Whitespace@88..89 " " + Local@89..94 "LOCAL" + Whitespace@94..95 " " + Check@95..100 "CHECK" + Whitespace@100..101 " " + Option@101..107 "OPTION" + Ascii59@107..108 ";" , errors: [], stmts: [ @@ -211,7 +210,7 @@ Parse { with_check_option: LocalCheckOption, }, ), - range: 0..108, + range: 0..107, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0044@3.snap b/crates/parser/tests/snapshots/statements/valid/0044@3.snap index aed5d143..91f00a46 100644 --- a/crates/parser/tests/snapshots/statements/valid/0044@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0044@3.snap @@ -1,52 +1,51 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE VIEW pg_comedies AS SELECT * FROM comedies WHERE classification = 'PG' WITH CASCADED CHECK OPTION;" +description: "CREATE VIEW pg_comedies AS SELECT * FROM comedies WHERE classification = 'PG' WITH CASCADED CHECK OPTION;" --- Parse { - cst: SourceFile@0..106 - Newline@0..1 "\n" - ViewStmt@1..106 - Create@1..7 "CREATE" - Whitespace@7..8 " " - View@8..12 "VIEW" - Whitespace@12..13 " " - RangeVar@13..24 - Ident@13..24 "pg_comedies" - Whitespace@24..25 " " - As@25..27 "AS" - Whitespace@27..28 " " - SelectStmt@28..78 - Select@28..34 "SELECT" - Whitespace@34..35 " " - ResTarget@35..36 - ColumnRef@35..36 - AStar@35..36 - Ascii42@35..36 "*" - Whitespace@36..37 " " - From@37..41 "FROM" - Whitespace@41..42 " " - RangeVar@42..50 - Ident@42..50 "comedies" - Whitespace@50..51 " " - Where@51..56 "WHERE" - Whitespace@56..57 " " - AExpr@57..78 - ColumnRef@57..71 - Ident@57..71 "classification" - Whitespace@71..72 " " - Ascii61@72..73 "=" - Whitespace@73..74 " " - AConst@74..78 - Sconst@74..78 "'PG'" - Whitespace@78..79 " " - With@79..83 "WITH" - Whitespace@83..84 " " - Cascaded@84..92 "CASCADED" - Whitespace@92..93 " " - Check@93..98 "CHECK" - Whitespace@98..99 " " - Option@99..105 "OPTION" - Ascii59@105..106 ";" + cst: SourceFile@0..105 + ViewStmt@0..105 + Create@0..6 "CREATE" + Whitespace@6..7 " " + View@7..11 "VIEW" + Whitespace@11..12 " " + RangeVar@12..23 + Ident@12..23 "pg_comedies" + Whitespace@23..24 " " + As@24..26 "AS" + Whitespace@26..27 " " + SelectStmt@27..77 + Select@27..33 "SELECT" + Whitespace@33..34 " " + ResTarget@34..35 + ColumnRef@34..35 + AStar@34..35 + Ascii42@34..35 "*" + Whitespace@35..36 " " + From@36..40 "FROM" + Whitespace@40..41 " " + RangeVar@41..49 + Ident@41..49 "comedies" + Whitespace@49..50 " " + Where@50..55 "WHERE" + Whitespace@55..56 " " + AExpr@56..77 + ColumnRef@56..70 + Ident@56..70 "classification" + Whitespace@70..71 " " + Ascii61@71..72 "=" + Whitespace@72..73 " " + AConst@73..77 + Sconst@73..77 "'PG'" + Whitespace@77..78 " " + With@78..82 "WITH" + Whitespace@82..83 " " + Cascaded@83..91 "CASCADED" + Whitespace@91..92 " " + Check@92..97 "CHECK" + Whitespace@97..98 " " + Option@98..104 "OPTION" + Ascii59@104..105 ";" , errors: [], stmts: [ @@ -211,7 +210,7 @@ Parse { with_check_option: CascadedCheckOption, }, ), - range: 0..105, + range: 0..104, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0044@4.snap b/crates/parser/tests/snapshots/statements/valid/0044@4.snap index 6aa9690e..c95512b2 100644 --- a/crates/parser/tests/snapshots/statements/valid/0044@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0044@4.snap @@ -1,111 +1,110 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE VIEW comedies AS SELECT f.*, country_code_to_name(f.country_code) AS country, (SELECT avg(r.rating) FROM user_ratings r WHERE r.film_id = f.id) AS avg_rating FROM films f WHERE f.kind = 'Comedy';" +description: "CREATE VIEW comedies AS SELECT f.*, country_code_to_name(f.country_code) AS country, (SELECT avg(r.rating) FROM user_ratings r WHERE r.film_id = f.id) AS avg_rating FROM films f WHERE f.kind = 'Comedy';" --- Parse { - cst: SourceFile@0..203 - Newline@0..1 "\n" - ViewStmt@1..203 - Create@1..7 "CREATE" - Whitespace@7..8 " " - View@8..12 "VIEW" - Whitespace@12..13 " " - RangeVar@13..21 - Ident@13..21 "comedies" - Whitespace@21..22 " " - As@22..24 "AS" - Whitespace@24..25 " " - SelectStmt@25..202 - Select@25..31 "SELECT" - Whitespace@31..32 " " - ResTarget@32..35 - ColumnRef@32..35 - Ident@32..33 "f" - Ascii46@33..34 "." - AStar@34..35 - Ascii42@34..35 "*" - Ascii44@35..36 "," - Whitespace@36..37 " " - ResTarget@37..84 - FuncCall@37..72 - Ident@37..57 "country_code_to_name" - Ascii40@57..58 "(" - ColumnRef@58..72 - Ident@58..59 "f" - Ascii46@59..60 "." - Ident@60..72 "country_code" - Ascii41@72..73 ")" - Whitespace@73..74 " " - As@74..76 "AS" - Whitespace@76..77 " " - Ident@77..84 "country" - Ascii44@84..85 "," - Whitespace@85..86 " " - ResTarget@86..165 - SubLink@86..150 - SelectStmt@86..150 - Ascii40@86..87 "(" - Select@87..93 "SELECT" - Whitespace@93..94 " " - ResTarget@94..106 - FuncCall@94..106 - Ident@94..97 "avg" - Ascii40@97..98 "(" - ColumnRef@98..106 - Ident@98..99 "r" - Ascii46@99..100 "." - Ident@100..106 "rating" - Ascii41@106..107 ")" - Whitespace@107..108 " " - From@108..112 "FROM" - Whitespace@112..113 " " - RangeVar@113..127 - Ident@113..125 "user_ratings" - Whitespace@125..126 " " - Alias@126..127 - Ident@126..127 "r" - Whitespace@127..128 " " - Where@128..133 "WHERE" - Whitespace@133..134 " " - AExpr@134..150 - ColumnRef@134..143 - Ident@134..135 "r" - Ascii46@135..136 "." - Ident@136..143 "film_id" - Whitespace@143..144 " " - Ascii61@144..145 "=" - Whitespace@145..146 " " - ColumnRef@146..150 - Ident@146..147 "f" - Ascii46@147..148 "." - Ident@148..150 "id" - Ascii41@150..151 ")" - Whitespace@151..152 " " - As@152..154 "AS" - Whitespace@154..155 " " - Ident@155..165 "avg_rating" - Whitespace@165..166 " " - From@166..170 "FROM" - Whitespace@170..171 " " - RangeVar@171..178 - Ident@171..176 "films" - Whitespace@176..177 " " - Alias@177..178 - Ident@177..178 "f" - Whitespace@178..179 " " - Where@179..184 "WHERE" - Whitespace@184..185 " " - AExpr@185..202 - ColumnRef@185..191 - Ident@185..186 "f" - Ascii46@186..187 "." - Ident@187..191 "kind" - Whitespace@191..192 " " - Ascii61@192..193 "=" - Whitespace@193..194 " " - AConst@194..202 - Sconst@194..202 "'Comedy'" - Ascii59@202..203 ";" + cst: SourceFile@0..202 + ViewStmt@0..202 + Create@0..6 "CREATE" + Whitespace@6..7 " " + View@7..11 "VIEW" + Whitespace@11..12 " " + RangeVar@12..20 + Ident@12..20 "comedies" + Whitespace@20..21 " " + As@21..23 "AS" + Whitespace@23..24 " " + SelectStmt@24..201 + Select@24..30 "SELECT" + Whitespace@30..31 " " + ResTarget@31..34 + ColumnRef@31..34 + Ident@31..32 "f" + Ascii46@32..33 "." + AStar@33..34 + Ascii42@33..34 "*" + Ascii44@34..35 "," + Whitespace@35..36 " " + ResTarget@36..83 + FuncCall@36..71 + Ident@36..56 "country_code_to_name" + Ascii40@56..57 "(" + ColumnRef@57..71 + Ident@57..58 "f" + Ascii46@58..59 "." + Ident@59..71 "country_code" + Ascii41@71..72 ")" + Whitespace@72..73 " " + As@73..75 "AS" + Whitespace@75..76 " " + Ident@76..83 "country" + Ascii44@83..84 "," + Whitespace@84..85 " " + ResTarget@85..164 + SubLink@85..149 + SelectStmt@85..149 + Ascii40@85..86 "(" + Select@86..92 "SELECT" + Whitespace@92..93 " " + ResTarget@93..105 + FuncCall@93..105 + Ident@93..96 "avg" + Ascii40@96..97 "(" + ColumnRef@97..105 + Ident@97..98 "r" + Ascii46@98..99 "." + Ident@99..105 "rating" + Ascii41@105..106 ")" + Whitespace@106..107 " " + From@107..111 "FROM" + Whitespace@111..112 " " + RangeVar@112..126 + Ident@112..124 "user_ratings" + Whitespace@124..125 " " + Alias@125..126 + Ident@125..126 "r" + Whitespace@126..127 " " + Where@127..132 "WHERE" + Whitespace@132..133 " " + AExpr@133..149 + ColumnRef@133..142 + Ident@133..134 "r" + Ascii46@134..135 "." + Ident@135..142 "film_id" + Whitespace@142..143 " " + Ascii61@143..144 "=" + Whitespace@144..145 " " + ColumnRef@145..149 + Ident@145..146 "f" + Ascii46@146..147 "." + Ident@147..149 "id" + Ascii41@149..150 ")" + Whitespace@150..151 " " + As@151..153 "AS" + Whitespace@153..154 " " + Ident@154..164 "avg_rating" + Whitespace@164..165 " " + From@165..169 "FROM" + Whitespace@169..170 " " + RangeVar@170..177 + Ident@170..175 "films" + Whitespace@175..176 " " + Alias@176..177 + Ident@176..177 "f" + Whitespace@177..178 " " + Where@178..183 "WHERE" + Whitespace@183..184 " " + AExpr@184..201 + ColumnRef@184..190 + Ident@184..185 "f" + Ascii46@185..186 "." + Ident@186..190 "kind" + Whitespace@190..191 " " + Ascii61@191..192 "=" + Whitespace@192..193 " " + AConst@193..201 + Sconst@193..201 "'Comedy'" + Ascii59@201..202 ";" , errors: [], stmts: [ @@ -600,7 +599,7 @@ Parse { with_check_option: NoCheckOption, }, ), - range: 0..202, + range: 0..201, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0044@5.snap b/crates/parser/tests/snapshots/statements/valid/0044@5.snap index c69afab3..e5bc0e53 100644 --- a/crates/parser/tests/snapshots/statements/valid/0044@5.snap +++ b/crates/parser/tests/snapshots/statements/valid/0044@5.snap @@ -1,71 +1,70 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE RECURSIVE VIEW public.nums_1_100 (n) AS VALUES (1) UNION ALL SELECT n+1 FROM nums_1_100 WHERE n < 100;" +description: CREATE RECURSIVE VIEW public.nums_1_100 (n) AS VALUES (1) UNION ALL SELECT n+1 FROM nums_1_100 WHERE n < 100; --- Parse { - cst: SourceFile@0..109 - Newline@0..1 "\n" - Create@1..7 "CREATE" - Whitespace@7..8 " " - Recursive@8..17 "RECURSIVE" - Whitespace@17..18 " " - View@18..22 "VIEW" - Whitespace@22..23 " " - Ident@23..29 "public" - Ascii46@29..30 "." - Ident@30..40 "nums_1_100" - Whitespace@40..41 " " - Ascii40@41..42 "(" - Ident@42..43 "n" - Ascii41@43..44 ")" - Whitespace@44..45 " " - As@45..47 "AS" - Whitespace@47..48 " " - Values@48..54 "VALUES" - Whitespace@54..55 " " - Ascii40@55..56 "(" - Iconst@56..57 "1" - Ascii41@57..58 ")" - Whitespace@58..59 " " - Union@59..64 "UNION" - Whitespace@64..65 " " - All@65..68 "ALL" - SelectStmt@68..109 - Select@68..74 "SELECT" - Whitespace@74..75 " " - ResTarget@75..78 - AExpr@75..78 - ColumnRef@75..76 - Ident@75..76 "n" - Ascii43@76..77 "+" - AConst@77..78 - Iconst@77..78 "1" - Whitespace@78..79 " " - From@79..83 "FROM" - Whitespace@83..84 " " - RangeVar@84..94 - Ident@84..94 "nums_1_100" - Whitespace@94..95 " " - Where@95..100 "WHERE" - Whitespace@100..101 " " - AExpr@101..108 - ColumnRef@101..102 - Ident@101..102 "n" - Whitespace@102..103 " " - Ascii60@103..104 "<" - Whitespace@104..105 " " - AConst@105..108 - Iconst@105..108 "100" - Ascii59@108..109 ";" + cst: SourceFile@0..108 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Recursive@7..16 "RECURSIVE" + Whitespace@16..17 " " + View@17..21 "VIEW" + Whitespace@21..22 " " + Ident@22..28 "public" + Ascii46@28..29 "." + Ident@29..39 "nums_1_100" + Whitespace@39..40 " " + Ascii40@40..41 "(" + Ident@41..42 "n" + Ascii41@42..43 ")" + Whitespace@43..44 " " + As@44..46 "AS" + Whitespace@46..47 " " + Values@47..53 "VALUES" + Whitespace@53..54 " " + Ascii40@54..55 "(" + Iconst@55..56 "1" + Ascii41@56..57 ")" + Whitespace@57..58 " " + Union@58..63 "UNION" + Whitespace@63..64 " " + All@64..67 "ALL" + SelectStmt@67..108 + Select@67..73 "SELECT" + Whitespace@73..74 " " + ResTarget@74..77 + AExpr@74..77 + ColumnRef@74..75 + Ident@74..75 "n" + Ascii43@75..76 "+" + AConst@76..77 + Iconst@76..77 "1" + Whitespace@77..78 " " + From@78..82 "FROM" + Whitespace@82..83 " " + RangeVar@83..93 + Ident@83..93 "nums_1_100" + Whitespace@93..94 " " + Where@94..99 "WHERE" + Whitespace@99..100 " " + AExpr@100..107 + ColumnRef@100..101 + Ident@100..101 "n" + Whitespace@101..102 " " + Ascii60@102..103 "<" + Whitespace@103..104 " " + AConst@104..107 + Iconst@104..107 "100" + Ascii59@107..108 ";" , errors: [ SyntaxError( "Expected Ascii59, found Whitespace", - 68..68, + 67..67, ), SyntaxError( "Invalid statement: syntax error at end of input", - 1..26, + 0..25, ), ], stmts: [ @@ -249,7 +248,7 @@ Parse { rarg: None, }, ), - range: 68..109, + range: 67..108, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0046@2.snap b/crates/parser/tests/snapshots/statements/valid/0046@2.snap index b17697e1..61296cee 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@2.snap @@ -1,29 +1,28 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 AS (attr1 int4, attr2 bool);" +description: "CREATE TYPE type1 AS (attr1 int4, attr2 bool);" --- Parse { - cst: SourceFile@0..47 - Newline@0..1 "\n" - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - As@19..21 "AS" - Whitespace@21..22 " " - Ascii40@22..23 "(" - Ident@23..28 "attr1" - Whitespace@28..29 " " - Ident@29..33 "int4" - Ascii44@33..34 "," - Whitespace@34..35 " " - Ident@35..40 "attr2" - Whitespace@40..41 " " - Ident@41..45 "bool" - Ascii41@45..46 ")" - Ascii59@46..47 ";" + cst: SourceFile@0..46 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + As@18..20 "AS" + Whitespace@20..21 " " + Ascii40@21..22 "(" + Ident@22..27 "attr1" + Whitespace@27..28 " " + Ident@28..32 "int4" + Ascii44@32..33 "," + Whitespace@33..34 " " + Ident@34..39 "attr2" + Whitespace@39..40 " " + Ident@40..44 "bool" + Ascii41@44..45 ")" + Ascii59@45..46 ";" , errors: [], stmts: [], diff --git a/crates/parser/tests/snapshots/statements/valid/0046@3.snap b/crates/parser/tests/snapshots/statements/valid/0046@3.snap index 749874f9..28bd3dc9 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@3.snap @@ -1,33 +1,32 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 AS (attr1 int4 COLLATE collation1, attr2 bool);" +description: "CREATE TYPE type1 AS (attr1 int4 COLLATE collation1, attr2 bool);" --- Parse { - cst: SourceFile@0..66 - Newline@0..1 "\n" - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - As@19..21 "AS" - Whitespace@21..22 " " - Ascii40@22..23 "(" - Ident@23..28 "attr1" - Whitespace@28..29 " " - Ident@29..33 "int4" - Whitespace@33..34 " " - Collate@34..41 "COLLATE" - Whitespace@41..42 " " - Ident@42..52 "collation1" - Ascii44@52..53 "," - Whitespace@53..54 " " - Ident@54..59 "attr2" - Whitespace@59..60 " " - Ident@60..64 "bool" - Ascii41@64..65 ")" - Ascii59@65..66 ";" + cst: SourceFile@0..65 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + As@18..20 "AS" + Whitespace@20..21 " " + Ascii40@21..22 "(" + Ident@22..27 "attr1" + Whitespace@27..28 " " + Ident@28..32 "int4" + Whitespace@32..33 " " + Collate@33..40 "COLLATE" + Whitespace@40..41 " " + Ident@41..51 "collation1" + Ascii44@51..52 "," + Whitespace@52..53 " " + Ident@53..58 "attr2" + Whitespace@58..59 " " + Ident@59..63 "bool" + Ascii41@63..64 ")" + Ascii59@64..65 ";" , errors: [], stmts: [], diff --git a/crates/parser/tests/snapshots/statements/valid/0046@4.snap b/crates/parser/tests/snapshots/statements/valid/0046@4.snap index b1445b38..699bf596 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@4.snap @@ -1,31 +1,30 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 AS ENUM ('value1', 'value2', 'value3');" +description: "CREATE TYPE type1 AS ENUM ('value1', 'value2', 'value3');" --- Parse { - cst: SourceFile@0..58 - Newline@0..1 "\n" - CreateEnumStmt@1..58 - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - As@19..21 "AS" - Whitespace@21..22 " " - EnumP@22..26 "ENUM" - Whitespace@26..27 " " - Ascii40@27..28 "(" - Sconst@28..36 "'value1'" - Ascii44@36..37 "," - Whitespace@37..38 " " - Sconst@38..46 "'value2'" - Ascii44@46..47 "," - Whitespace@47..48 " " - Sconst@48..56 "'value3'" - Ascii41@56..57 ")" - Ascii59@57..58 ";" + cst: SourceFile@0..57 + CreateEnumStmt@0..57 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + As@18..20 "AS" + Whitespace@20..21 " " + EnumP@21..25 "ENUM" + Whitespace@25..26 " " + Ascii40@26..27 "(" + Sconst@27..35 "'value1'" + Ascii44@35..36 "," + Whitespace@36..37 " " + Sconst@37..45 "'value2'" + Ascii44@45..46 "," + Whitespace@46..47 " " + Sconst@47..55 "'value3'" + Ascii41@55..56 ")" + Ascii59@56..57 ";" , errors: [], stmts: [ @@ -74,7 +73,7 @@ Parse { ], }, ), - range: 0..57, + range: 0..56, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0046@5.snap b/crates/parser/tests/snapshots/statements/valid/0046@5.snap index 58ccecf0..37d96c6e 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@5.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@5.snap @@ -1,31 +1,30 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 AS RANGE (subtype = int4);" +description: CREATE TYPE type1 AS RANGE (subtype = int4); --- Parse { - cst: SourceFile@0..45 - Newline@0..1 "\n" - CreateRangeStmt@1..45 - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - As@19..21 "AS" - Whitespace@21..22 " " - Range@22..27 "RANGE" - Whitespace@27..28 " " - Ascii40@28..29 "(" - DefElem@29..43 - Ident@29..36 "subtype" - Whitespace@36..37 " " - Ascii61@37..38 "=" - Whitespace@38..39 " " - TypeName@39..43 - Ident@39..43 "int4" - Ascii41@43..44 ")" - Ascii59@44..45 ";" + cst: SourceFile@0..44 + CreateRangeStmt@0..44 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + As@18..20 "AS" + Whitespace@20..21 " " + Range@21..26 "RANGE" + Whitespace@26..27 " " + Ascii40@27..28 "(" + DefElem@28..42 + Ident@28..35 "subtype" + Whitespace@35..36 " " + Ascii61@36..37 "=" + Whitespace@37..38 " " + TypeName@38..42 + Ident@38..42 "int4" + Ascii41@42..43 ")" + Ascii59@43..44 ";" , errors: [], stmts: [ @@ -87,7 +86,7 @@ Parse { ], }, ), - range: 0..44, + range: 0..43, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0046@6.snap b/crates/parser/tests/snapshots/statements/valid/0046@6.snap index 8895f034..45852c11 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@6.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@6.snap @@ -1,44 +1,43 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 AS RANGE (subtype = int4, receive = receive_func, passedbyvalue);" +description: "CREATE TYPE type1 AS RANGE (subtype = int4, receive = receive_func, passedbyvalue);" --- Parse { - cst: SourceFile@0..84 - Newline@0..1 "\n" - CreateRangeStmt@1..84 - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - As@19..21 "AS" - Whitespace@21..22 " " - Range@22..27 "RANGE" - Whitespace@27..28 " " - Ascii40@28..29 "(" - DefElem@29..43 - Ident@29..36 "subtype" - Whitespace@36..37 " " - Ascii61@37..38 "=" - Whitespace@38..39 " " - TypeName@39..43 - Ident@39..43 "int4" - Ascii44@43..44 "," - Whitespace@44..45 " " - DefElem@45..67 - Ident@45..52 "receive" - Whitespace@52..53 " " - Ascii61@53..54 "=" - Whitespace@54..55 " " - TypeName@55..67 - Ident@55..67 "receive_func" - Ascii44@67..68 "," - Whitespace@68..69 " " - DefElem@69..82 - Ident@69..82 "passedbyvalue" - Ascii41@82..83 ")" - Ascii59@83..84 ";" + cst: SourceFile@0..83 + CreateRangeStmt@0..83 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + As@18..20 "AS" + Whitespace@20..21 " " + Range@21..26 "RANGE" + Whitespace@26..27 " " + Ascii40@27..28 "(" + DefElem@28..42 + Ident@28..35 "subtype" + Whitespace@35..36 " " + Ascii61@36..37 "=" + Whitespace@37..38 " " + TypeName@38..42 + Ident@38..42 "int4" + Ascii44@42..43 "," + Whitespace@43..44 " " + DefElem@44..66 + Ident@44..51 "receive" + Whitespace@51..52 " " + Ascii61@52..53 "=" + Whitespace@53..54 " " + TypeName@54..66 + Ident@54..66 "receive_func" + Ascii44@66..67 "," + Whitespace@67..68 " " + DefElem@68..81 + Ident@68..81 "passedbyvalue" + Ascii41@81..82 ")" + Ascii59@82..83 ";" , errors: [], stmts: [ @@ -153,7 +152,7 @@ Parse { ], }, ), - range: 0..83, + range: 0..82, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0046@7.snap b/crates/parser/tests/snapshots/statements/valid/0046@7.snap index d809228f..f4520891 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@7.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@7.snap @@ -1,31 +1,30 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 (input = input1, output = output1);" +description: "CREATE TYPE type1 (input = input1, output = output1);" --- Parse { - cst: SourceFile@0..54 - Newline@0..1 "\n" - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - Ascii40@19..20 "(" - InputP@20..25 "input" - Whitespace@25..26 " " - Ascii61@26..27 "=" - Whitespace@27..28 " " - Ident@28..34 "input1" - Ascii44@34..35 "," - Whitespace@35..36 " " - Ident@36..42 "output" - Whitespace@42..43 " " - Ascii61@43..44 "=" - Whitespace@44..45 " " - Ident@45..52 "output1" - Ascii41@52..53 ")" - Ascii59@53..54 ";" + cst: SourceFile@0..53 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + Ascii40@18..19 "(" + InputP@19..24 "input" + Whitespace@24..25 " " + Ascii61@25..26 "=" + Whitespace@26..27 " " + Ident@27..33 "input1" + Ascii44@33..34 "," + Whitespace@34..35 " " + Ident@35..41 "output" + Whitespace@41..42 " " + Ascii61@42..43 "=" + Whitespace@43..44 " " + Ident@44..51 "output1" + Ascii41@51..52 ")" + Ascii59@52..53 ";" , errors: [], stmts: [], diff --git a/crates/parser/tests/snapshots/statements/valid/0046@8.snap b/crates/parser/tests/snapshots/statements/valid/0046@8.snap index ab04e90d..c7d0875f 100644 --- a/crates/parser/tests/snapshots/statements/valid/0046@8.snap +++ b/crates/parser/tests/snapshots/statements/valid/0046@8.snap @@ -1,34 +1,33 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TYPE type1 (input = input1, output = output1, passedbyvalue);" +description: "CREATE TYPE type1 (input = input1, output = output1, passedbyvalue);" --- Parse { - cst: SourceFile@0..69 - Newline@0..1 "\n" - Create@1..7 "CREATE" - Whitespace@7..8 " " - TypeP@8..12 "TYPE" - Whitespace@12..13 " " - Ident@13..18 "type1" - Whitespace@18..19 " " - Ascii40@19..20 "(" - InputP@20..25 "input" - Whitespace@25..26 " " - Ascii61@26..27 "=" - Whitespace@27..28 " " - Ident@28..34 "input1" - Ascii44@34..35 "," - Whitespace@35..36 " " - Ident@36..42 "output" - Whitespace@42..43 " " - Ascii61@43..44 "=" - Whitespace@44..45 " " - Ident@45..52 "output1" - Ascii44@52..53 "," - Whitespace@53..54 " " - Ident@54..67 "passedbyvalue" - Ascii41@67..68 ")" - Ascii59@68..69 ";" + cst: SourceFile@0..68 + Create@0..6 "CREATE" + Whitespace@6..7 " " + TypeP@7..11 "TYPE" + Whitespace@11..12 " " + Ident@12..17 "type1" + Whitespace@17..18 " " + Ascii40@18..19 "(" + InputP@19..24 "input" + Whitespace@24..25 " " + Ascii61@25..26 "=" + Whitespace@26..27 " " + Ident@27..33 "input1" + Ascii44@33..34 "," + Whitespace@34..35 " " + Ident@35..41 "output" + Whitespace@41..42 " " + Ascii61@42..43 "=" + Whitespace@43..44 " " + Ident@44..51 "output1" + Ascii44@51..52 "," + Whitespace@52..53 " " + Ident@53..66 "passedbyvalue" + Ascii41@66..67 ")" + Ascii59@67..68 ";" , errors: [], stmts: [], diff --git a/crates/parser/tests/snapshots/statements/valid/0047@2.snap b/crates/parser/tests/snapshots/statements/valid/0047@2.snap index 047cd49f..bad286db 100644 --- a/crates/parser/tests/snapshots/statements/valid/0047@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0047@2.snap @@ -1,22 +1,21 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE DATABASE x ENCODING \"SQL_ASCII\";" +description: "CREATE DATABASE x ENCODING \"SQL_ASCII\";" --- Parse { - cst: SourceFile@0..40 - Newline@0..1 "\n" - CreatedbStmt@1..40 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Database@8..16 "DATABASE" - Whitespace@16..17 " " - Ident@17..18 "x" - Whitespace@18..19 " " - DefElem@19..39 - Encoding@19..27 "ENCODING" - Whitespace@27..28 " " - Ident@28..39 "\"SQL_ASCII\"" - Ascii59@39..40 ";" + cst: SourceFile@0..39 + CreatedbStmt@0..39 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Database@7..15 "DATABASE" + Whitespace@15..16 " " + Ident@16..17 "x" + Whitespace@17..18 " " + DefElem@18..38 + Encoding@18..26 "ENCODING" + Whitespace@26..27 " " + Ident@27..38 "\"SQL_ASCII\"" + Ascii59@38..39 ";" , errors: [], stmts: [ @@ -51,7 +50,7 @@ Parse { ], }, ), - range: 0..39, + range: 0..38, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0047@3.snap b/crates/parser/tests/snapshots/statements/valid/0047@3.snap index 65df202c..c219a202 100644 --- a/crates/parser/tests/snapshots/statements/valid/0047@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0047@3.snap @@ -1,22 +1,21 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE DATABASE x LC_COLLATE \"en_US.UTF-8\";" +description: "CREATE DATABASE x LC_COLLATE \"en_US.UTF-8\";" --- Parse { - cst: SourceFile@0..44 - Newline@0..1 "\n" - CreatedbStmt@1..44 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Database@8..16 "DATABASE" - Whitespace@16..17 " " - Ident@17..18 "x" - Whitespace@18..19 " " - DefElem@19..43 - Ident@19..29 "LC_COLLATE" - Whitespace@29..30 " " - Ident@30..43 "\"en_US.UTF-8\"" - Ascii59@43..44 ";" + cst: SourceFile@0..43 + CreatedbStmt@0..43 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Database@7..15 "DATABASE" + Whitespace@15..16 " " + Ident@16..17 "x" + Whitespace@17..18 " " + DefElem@18..42 + Ident@18..28 "LC_COLLATE" + Whitespace@28..29 " " + Ident@29..42 "\"en_US.UTF-8\"" + Ascii59@42..43 ";" , errors: [], stmts: [ @@ -51,7 +50,7 @@ Parse { ], }, ), - range: 0..43, + range: 0..42, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0047@4.snap b/crates/parser/tests/snapshots/statements/valid/0047@4.snap index a27baac8..b9b2a0bc 100644 --- a/crates/parser/tests/snapshots/statements/valid/0047@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0047@4.snap @@ -1,22 +1,21 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE DATABASE x LOCATION DEFAULT;" +description: CREATE DATABASE x LOCATION DEFAULT; --- Parse { - cst: SourceFile@0..36 - Newline@0..1 "\n" - CreatedbStmt@1..36 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Database@8..16 "DATABASE" - Whitespace@16..17 " " - Ident@17..18 "x" - Whitespace@18..19 " " - DefElem@19..35 - Location@19..27 "LOCATION" - Whitespace@27..28 " " - Default@28..35 "DEFAULT" - Ascii59@35..36 ";" + cst: SourceFile@0..35 + CreatedbStmt@0..35 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Database@7..15 "DATABASE" + Whitespace@15..16 " " + Ident@16..17 "x" + Whitespace@17..18 " " + DefElem@18..34 + Location@18..26 "LOCATION" + Whitespace@26..27 " " + Default@27..34 "DEFAULT" + Ascii59@34..35 ";" , errors: [], stmts: [ @@ -41,7 +40,7 @@ Parse { ], }, ), - range: 0..35, + range: 0..34, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0047@5.snap b/crates/parser/tests/snapshots/statements/valid/0047@5.snap index 6e3c7564..708ceca4 100644 --- a/crates/parser/tests/snapshots/statements/valid/0047@5.snap +++ b/crates/parser/tests/snapshots/statements/valid/0047@5.snap @@ -1,22 +1,21 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE DATABASE x TABLESPACE abc;" +description: CREATE DATABASE x TABLESPACE abc; --- Parse { - cst: SourceFile@0..34 - Newline@0..1 "\n" - CreatedbStmt@1..34 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Database@8..16 "DATABASE" - Whitespace@16..17 " " - Ident@17..18 "x" - Whitespace@18..19 " " - DefElem@19..33 - Tablespace@19..29 "TABLESPACE" - Whitespace@29..30 " " - Ident@30..33 "abc" - Ascii59@33..34 ";" + cst: SourceFile@0..33 + CreatedbStmt@0..33 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Database@7..15 "DATABASE" + Whitespace@15..16 " " + Ident@16..17 "x" + Whitespace@17..18 " " + DefElem@18..32 + Tablespace@18..28 "TABLESPACE" + Whitespace@28..29 " " + Ident@29..32 "abc" + Ascii59@32..33 ";" , errors: [], stmts: [ @@ -51,7 +50,7 @@ Parse { ], }, ), - range: 0..33, + range: 0..32, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0047@6.snap b/crates/parser/tests/snapshots/statements/valid/0047@6.snap index 74c0dce1..3e02fff1 100644 --- a/crates/parser/tests/snapshots/statements/valid/0047@6.snap +++ b/crates/parser/tests/snapshots/statements/valid/0047@6.snap @@ -1,22 +1,21 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE DATABASE x TEMPLATE TRUE;" +description: CREATE DATABASE x TEMPLATE TRUE; --- Parse { - cst: SourceFile@0..33 - Newline@0..1 "\n" - CreatedbStmt@1..33 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Database@8..16 "DATABASE" - Whitespace@16..17 " " - Ident@17..18 "x" - Whitespace@18..19 " " - DefElem@19..32 - Template@19..27 "TEMPLATE" - Whitespace@27..28 " " - TrueP@28..32 "TRUE" - Ascii59@32..33 ";" + cst: SourceFile@0..32 + CreatedbStmt@0..32 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Database@7..15 "DATABASE" + Whitespace@15..16 " " + Ident@16..17 "x" + Whitespace@17..18 " " + DefElem@18..31 + Template@18..26 "TEMPLATE" + Whitespace@26..27 " " + TrueP@27..31 "TRUE" + Ascii59@31..32 ";" , errors: [], stmts: [ @@ -51,7 +50,7 @@ Parse { ], }, ), - range: 0..32, + range: 0..31, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0048@2.snap b/crates/parser/tests/snapshots/statements/valid/0048@2.snap index 0dfc3881..41863927 100644 --- a/crates/parser/tests/snapshots/statements/valid/0048@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0048@2.snap @@ -1,41 +1,40 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE TABLESPACE x OWNER a LOCATION 'b' WITH (random_page_cost=42, seq_page_cost=3);" +description: "CREATE TABLESPACE x OWNER a LOCATION 'b' WITH (random_page_cost=42, seq_page_cost=3);" --- Parse { - cst: SourceFile@0..86 - Newline@0..1 "\n" - CreateTableSpaceStmt@1..86 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Tablespace@8..18 "TABLESPACE" - Whitespace@18..19 " " - Ident@19..20 "x" - Whitespace@20..21 " " - Owner@21..26 "OWNER" - Whitespace@26..27 " " - RoleSpec@27..28 - Ident@27..28 "a" - Whitespace@28..29 " " - Location@29..37 "LOCATION" - Whitespace@37..38 " " - Sconst@38..41 "'b'" - Whitespace@41..42 " " - With@42..46 "WITH" - Whitespace@46..47 " " - Ascii40@47..48 "(" - DefElem@48..67 - Ident@48..64 "random_page_cost" - Ascii61@64..65 "=" - Iconst@65..67 "42" - Ascii44@67..68 "," - Whitespace@68..69 " " - DefElem@69..84 - Ident@69..82 "seq_page_cost" - Ascii61@82..83 "=" - Iconst@83..84 "3" - Ascii41@84..85 ")" - Ascii59@85..86 ";" + cst: SourceFile@0..85 + CreateTableSpaceStmt@0..85 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Tablespace@7..17 "TABLESPACE" + Whitespace@17..18 " " + Ident@18..19 "x" + Whitespace@19..20 " " + Owner@20..25 "OWNER" + Whitespace@25..26 " " + RoleSpec@26..27 + Ident@26..27 "a" + Whitespace@27..28 " " + Location@28..36 "LOCATION" + Whitespace@36..37 " " + Sconst@37..40 "'b'" + Whitespace@40..41 " " + With@41..45 "WITH" + Whitespace@45..46 " " + Ascii40@46..47 "(" + DefElem@47..66 + Ident@47..63 "random_page_cost" + Ascii61@63..64 "=" + Iconst@64..66 "42" + Ascii44@66..67 "," + Whitespace@67..68 " " + DefElem@68..83 + Ident@68..81 "seq_page_cost" + Ascii61@81..82 "=" + Iconst@82..83 "3" + Ascii41@83..84 ")" + Ascii59@84..85 ";" , errors: [], stmts: [ @@ -101,7 +100,7 @@ Parse { ], }, ), - range: 0..85, + range: 0..84, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@10.snap b/crates/parser/tests/snapshots/statements/valid/0051@10.snap index 2b4a41ff..f4348651 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@10.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@10.snap @@ -1,39 +1,38 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX pointloc ON points USING gist (box(location,location));" +description: "CREATE INDEX pointloc ON points USING gist (box(location,location));" --- Parse { - cst: SourceFile@0..69 - Newline@0..1 "\n" - IndexStmt@1..69 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Ident@14..22 "pointloc" - Whitespace@22..23 " " - On@23..25 "ON" - Whitespace@25..26 " " - RangeVar@26..32 - Ident@26..32 "points" - Whitespace@32..33 " " - Using@33..38 "USING" - Whitespace@38..39 " " - Ident@39..43 "gist" - Whitespace@43..44 " " - Ascii40@44..45 "(" - IndexElem@45..66 - FuncCall@45..66 - Ident@45..48 "box" - Ascii40@48..49 "(" - ColumnRef@49..57 - Location@49..57 "location" - Ascii44@57..58 "," - ColumnRef@58..66 - Location@58..66 "location" + cst: SourceFile@0..68 + IndexStmt@0..68 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Ident@13..21 "pointloc" + Whitespace@21..22 " " + On@22..24 "ON" + Whitespace@24..25 " " + RangeVar@25..31 + Ident@25..31 "points" + Whitespace@31..32 " " + Using@32..37 "USING" + Whitespace@37..38 " " + Ident@38..42 "gist" + Whitespace@42..43 " " + Ascii40@43..44 "(" + IndexElem@44..65 + FuncCall@44..65 + Ident@44..47 "box" + Ascii40@47..48 "(" + ColumnRef@48..56 + Location@48..56 "location" + Ascii44@56..57 "," + ColumnRef@57..65 + Location@57..65 "location" + Ascii41@65..66 ")" Ascii41@66..67 ")" - Ascii41@67..68 ")" - Ascii59@68..69 ";" + Ascii59@67..68 ";" , errors: [], stmts: [ @@ -164,7 +163,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..68, + range: 0..67, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@11.snap b/crates/parser/tests/snapshots/statements/valid/0051@11.snap index ebf1e154..e75bffb7 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@11.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@11.snap @@ -1,29 +1,28 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX CONCURRENTLY sales_quantity_index ON sales_table (quantity);" +description: CREATE INDEX CONCURRENTLY sales_quantity_index ON sales_table (quantity); --- Parse { - cst: SourceFile@0..74 - Newline@0..1 "\n" - IndexStmt@1..74 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Concurrently@14..26 "CONCURRENTLY" - Whitespace@26..27 " " - Ident@27..47 "sales_quantity_index" - Whitespace@47..48 " " - On@48..50 "ON" - Whitespace@50..51 " " - RangeVar@51..62 - Ident@51..62 "sales_table" - Whitespace@62..63 " " - Ascii40@63..64 "(" - IndexElem@64..72 - Ident@64..72 "quantity" - Ascii41@72..73 ")" - Ascii59@73..74 ";" + cst: SourceFile@0..73 + IndexStmt@0..73 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Concurrently@13..25 "CONCURRENTLY" + Whitespace@25..26 " " + Ident@26..46 "sales_quantity_index" + Whitespace@46..47 " " + On@47..49 "ON" + Whitespace@49..50 " " + RangeVar@50..61 + Ident@50..61 "sales_table" + Whitespace@61..62 " " + Ascii40@62..63 "(" + IndexElem@63..71 + Ident@63..71 "quantity" + Ascii41@71..72 ")" + Ascii59@72..73 ";" , errors: [], stmts: [ @@ -83,7 +82,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..73, + range: 0..72, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@2.snap b/crates/parser/tests/snapshots/statements/valid/0051@2.snap index 17dd3971..69e76c3a 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@2.snap @@ -1,40 +1,39 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE UNIQUE INDEX title_idx ON films (title) INCLUDE (director, rating);" +description: "CREATE UNIQUE INDEX title_idx ON films (title) INCLUDE (director, rating);" --- Parse { - cst: SourceFile@0..75 - Newline@0..1 "\n" - IndexStmt@1..75 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Unique@8..14 "UNIQUE" - Whitespace@14..15 " " - Index@15..20 "INDEX" - Whitespace@20..21 " " - Ident@21..30 "title_idx" - Whitespace@30..31 " " - On@31..33 "ON" - Whitespace@33..34 " " - RangeVar@34..39 - Ident@34..39 "films" - Whitespace@39..40 " " - Ascii40@40..41 "(" - IndexElem@41..46 - Ident@41..46 "title" - Ascii41@46..47 ")" - Whitespace@47..48 " " - Include@48..55 "INCLUDE" - Whitespace@55..56 " " - Ascii40@56..57 "(" - IndexElem@57..65 - Ident@57..65 "director" - Ascii44@65..66 "," - Whitespace@66..67 " " - IndexElem@67..73 - Ident@67..73 "rating" - Ascii41@73..74 ")" - Ascii59@74..75 ";" + cst: SourceFile@0..74 + IndexStmt@0..74 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Unique@7..13 "UNIQUE" + Whitespace@13..14 " " + Index@14..19 "INDEX" + Whitespace@19..20 " " + Ident@20..29 "title_idx" + Whitespace@29..30 " " + On@30..32 "ON" + Whitespace@32..33 " " + RangeVar@33..38 + Ident@33..38 "films" + Whitespace@38..39 " " + Ascii40@39..40 "(" + IndexElem@40..45 + Ident@40..45 "title" + Ascii41@45..46 ")" + Whitespace@46..47 " " + Include@47..54 "INCLUDE" + Whitespace@54..55 " " + Ascii40@55..56 "(" + IndexElem@56..64 + Ident@56..64 "director" + Ascii44@64..65 "," + Whitespace@65..66 " " + IndexElem@66..72 + Ident@66..72 "rating" + Ascii41@72..73 ")" + Ascii59@73..74 ";" , errors: [], stmts: [ @@ -127,7 +126,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..74, + range: 0..73, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@3.snap b/crates/parser/tests/snapshots/statements/valid/0051@3.snap index d27d6d9a..a2a0436b 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@3.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@3.snap @@ -1,39 +1,38 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX title_idx ON films (title) WITH (deduplicate_items = off);" +description: CREATE INDEX title_idx ON films (title) WITH (deduplicate_items = off); --- Parse { - cst: SourceFile@0..72 - Newline@0..1 "\n" - IndexStmt@1..72 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Ident@14..23 "title_idx" - Whitespace@23..24 " " - On@24..26 "ON" - Whitespace@26..27 " " - RangeVar@27..32 - Ident@27..32 "films" - Whitespace@32..33 " " - Ascii40@33..34 "(" - IndexElem@34..39 - Ident@34..39 "title" - Ascii41@39..40 ")" - Whitespace@40..41 " " - With@41..45 "WITH" - Whitespace@45..46 " " - Ascii40@46..47 "(" - DefElem@47..70 - Ident@47..64 "deduplicate_items" - Whitespace@64..65 " " - Ascii61@65..66 "=" - Whitespace@66..67 " " - TypeName@67..70 - Off@67..70 "off" - Ascii41@70..71 ")" - Ascii59@71..72 ";" + cst: SourceFile@0..71 + IndexStmt@0..71 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Ident@13..22 "title_idx" + Whitespace@22..23 " " + On@23..25 "ON" + Whitespace@25..26 " " + RangeVar@26..31 + Ident@26..31 "films" + Whitespace@31..32 " " + Ascii40@32..33 "(" + IndexElem@33..38 + Ident@33..38 "title" + Ascii41@38..39 ")" + Whitespace@39..40 " " + With@40..44 "WITH" + Whitespace@44..45 " " + Ascii40@45..46 "(" + DefElem@46..69 + Ident@46..63 "deduplicate_items" + Whitespace@63..64 " " + Ascii61@64..65 "=" + Whitespace@65..66 " " + TypeName@66..69 + Off@66..69 "off" + Ascii41@69..70 ")" + Ascii59@70..71 ";" , errors: [], stmts: [ @@ -134,7 +133,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..71, + range: 0..70, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@4.snap b/crates/parser/tests/snapshots/statements/valid/0051@4.snap index cce880d5..a516e1df 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@4.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@4.snap @@ -1,32 +1,31 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX ON films ((lower(title)));" +description: CREATE INDEX ON films ((lower(title))); --- Parse { - cst: SourceFile@0..40 - Newline@0..1 "\n" - IndexStmt@1..40 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - On@14..16 "ON" - Whitespace@16..17 " " - RangeVar@17..22 - Ident@17..22 "films" - Whitespace@22..23 " " + cst: SourceFile@0..39 + IndexStmt@0..39 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + On@13..15 "ON" + Whitespace@15..16 " " + RangeVar@16..21 + Ident@16..21 "films" + Whitespace@21..22 " " + Ascii40@22..23 "(" Ascii40@23..24 "(" - Ascii40@24..25 "(" - IndexElem@25..36 - FuncCall@25..36 - Ident@25..30 "lower" - Ascii40@30..31 "(" - ColumnRef@31..36 - Ident@31..36 "title" + IndexElem@24..35 + FuncCall@24..35 + Ident@24..29 "lower" + Ascii40@29..30 "(" + ColumnRef@30..35 + Ident@30..35 "title" + Ascii41@35..36 ")" Ascii41@36..37 ")" Ascii41@37..38 ")" - Ascii41@38..39 ")" - Ascii59@39..40 ";" + Ascii59@38..39 ";" , errors: [], stmts: [ @@ -137,7 +136,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..39, + range: 0..38, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@5.snap b/crates/parser/tests/snapshots/statements/valid/0051@5.snap index 8df7df36..ed65b7e7 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@5.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@5.snap @@ -1,31 +1,30 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX title_idx_german ON films (title COLLATE \"de_DE\");" +description: "CREATE INDEX title_idx_german ON films (title COLLATE \"de_DE\");" --- Parse { - cst: SourceFile@0..64 - Newline@0..1 "\n" - IndexStmt@1..64 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Ident@14..30 "title_idx_german" - Whitespace@30..31 " " - On@31..33 "ON" - Whitespace@33..34 " " - RangeVar@34..39 - Ident@34..39 "films" - Whitespace@39..40 " " - Ascii40@40..41 "(" - IndexElem@41..62 - Ident@41..46 "title" - Whitespace@46..47 " " - Collate@47..54 "COLLATE" - Whitespace@54..55 " " - Ident@55..62 "\"de_DE\"" - Ascii41@62..63 ")" - Ascii59@63..64 ";" + cst: SourceFile@0..63 + IndexStmt@0..63 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Ident@13..29 "title_idx_german" + Whitespace@29..30 " " + On@30..32 "ON" + Whitespace@32..33 " " + RangeVar@33..38 + Ident@33..38 "films" + Whitespace@38..39 " " + Ascii40@39..40 "(" + IndexElem@40..61 + Ident@40..45 "title" + Whitespace@45..46 " " + Collate@46..53 "COLLATE" + Whitespace@53..54 " " + Ident@54..61 "\"de_DE\"" + Ascii41@61..62 ")" + Ascii59@62..63 ";" , errors: [], stmts: [ @@ -95,7 +94,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..63, + range: 0..62, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@6.snap b/crates/parser/tests/snapshots/statements/valid/0051@6.snap index a1cb6700..8c3a5294 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@6.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@6.snap @@ -1,31 +1,30 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX title_idx_nulls_low ON films (title NULLS FIRST);" +description: CREATE INDEX title_idx_nulls_low ON films (title NULLS FIRST); --- Parse { - cst: SourceFile@0..63 - Newline@0..1 "\n" - IndexStmt@1..63 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Ident@14..33 "title_idx_nulls_low" - Whitespace@33..34 " " - On@34..36 "ON" - Whitespace@36..37 " " - RangeVar@37..42 - Ident@37..42 "films" - Whitespace@42..43 " " - Ascii40@43..44 "(" - IndexElem@44..61 - Ident@44..49 "title" - Whitespace@49..50 " " - NullsP@50..55 "NULLS" - Whitespace@55..56 " " - FirstP@56..61 "FIRST" - Ascii41@61..62 ")" - Ascii59@62..63 ";" + cst: SourceFile@0..62 + IndexStmt@0..62 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Ident@13..32 "title_idx_nulls_low" + Whitespace@32..33 " " + On@33..35 "ON" + Whitespace@35..36 " " + RangeVar@36..41 + Ident@36..41 "films" + Whitespace@41..42 " " + Ascii40@42..43 "(" + IndexElem@43..60 + Ident@43..48 "title" + Whitespace@48..49 " " + NullsP@49..54 "NULLS" + Whitespace@54..55 " " + FirstP@55..60 "FIRST" + Ascii41@60..61 ")" + Ascii59@61..62 ";" , errors: [], stmts: [ @@ -85,7 +84,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..62, + range: 0..61, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@7.snap b/crates/parser/tests/snapshots/statements/valid/0051@7.snap index 5c837102..f608de5e 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@7.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@7.snap @@ -1,40 +1,39 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE UNIQUE INDEX title_idx ON films (title) WITH (fillfactor = 70);" +description: CREATE UNIQUE INDEX title_idx ON films (title) WITH (fillfactor = 70); --- Parse { - cst: SourceFile@0..71 - Newline@0..1 "\n" - IndexStmt@1..71 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Unique@8..14 "UNIQUE" - Whitespace@14..15 " " - Index@15..20 "INDEX" - Whitespace@20..21 " " - Ident@21..30 "title_idx" - Whitespace@30..31 " " - On@31..33 "ON" - Whitespace@33..34 " " - RangeVar@34..39 - Ident@34..39 "films" - Whitespace@39..40 " " - Ascii40@40..41 "(" - IndexElem@41..46 - Ident@41..46 "title" - Ascii41@46..47 ")" - Whitespace@47..48 " " - With@48..52 "WITH" - Whitespace@52..53 " " - Ascii40@53..54 "(" - DefElem@54..69 - Ident@54..64 "fillfactor" - Whitespace@64..65 " " - Ascii61@65..66 "=" - Whitespace@66..67 " " - Iconst@67..69 "70" - Ascii41@69..70 ")" - Ascii59@70..71 ";" + cst: SourceFile@0..70 + IndexStmt@0..70 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Unique@7..13 "UNIQUE" + Whitespace@13..14 " " + Index@14..19 "INDEX" + Whitespace@19..20 " " + Ident@20..29 "title_idx" + Whitespace@29..30 " " + On@30..32 "ON" + Whitespace@32..33 " " + RangeVar@33..38 + Ident@33..38 "films" + Whitespace@38..39 " " + Ascii40@39..40 "(" + IndexElem@40..45 + Ident@40..45 "title" + Ascii41@45..46 ")" + Whitespace@46..47 " " + With@47..51 "WITH" + Whitespace@51..52 " " + Ascii40@52..53 "(" + DefElem@53..68 + Ident@53..63 "fillfactor" + Whitespace@63..64 " " + Ascii61@64..65 "=" + Whitespace@65..66 " " + Iconst@66..68 "70" + Ascii41@68..69 ")" + Ascii59@69..70 ";" , errors: [], stmts: [ @@ -118,7 +117,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..70, + range: 0..69, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@8.snap b/crates/parser/tests/snapshots/statements/valid/0051@8.snap index 6105e849..5bd6febc 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@8.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@8.snap @@ -1,43 +1,42 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX gin_idx ON documents_table USING GIN (locations) WITH (fastupdate = off);" +description: CREATE INDEX gin_idx ON documents_table USING GIN (locations) WITH (fastupdate = off); --- Parse { - cst: SourceFile@0..87 - Newline@0..1 "\n" - IndexStmt@1..87 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Ident@14..21 "gin_idx" - Whitespace@21..22 " " - On@22..24 "ON" - Whitespace@24..25 " " - RangeVar@25..40 - Ident@25..40 "documents_table" - Whitespace@40..41 " " - Using@41..46 "USING" - Whitespace@46..47 " " - Ident@47..50 "GIN" - Whitespace@50..51 " " - Ascii40@51..52 "(" - IndexElem@52..61 - Ident@52..61 "locations" - Ascii41@61..62 ")" - Whitespace@62..63 " " - With@63..67 "WITH" - Whitespace@67..68 " " - Ascii40@68..69 "(" - DefElem@69..85 - Ident@69..79 "fastupdate" - Whitespace@79..80 " " - Ascii61@80..81 "=" - Whitespace@81..82 " " - TypeName@82..85 - Off@82..85 "off" - Ascii41@85..86 ")" - Ascii59@86..87 ";" + cst: SourceFile@0..86 + IndexStmt@0..86 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Ident@13..20 "gin_idx" + Whitespace@20..21 " " + On@21..23 "ON" + Whitespace@23..24 " " + RangeVar@24..39 + Ident@24..39 "documents_table" + Whitespace@39..40 " " + Using@40..45 "USING" + Whitespace@45..46 " " + Ident@46..49 "GIN" + Whitespace@49..50 " " + Ascii40@50..51 "(" + IndexElem@51..60 + Ident@51..60 "locations" + Ascii41@60..61 ")" + Whitespace@61..62 " " + With@62..66 "WITH" + Whitespace@66..67 " " + Ascii40@67..68 "(" + DefElem@68..84 + Ident@68..78 "fastupdate" + Whitespace@78..79 " " + Ascii61@79..80 "=" + Whitespace@80..81 " " + TypeName@81..84 + Off@81..84 "off" + Ascii41@84..85 ")" + Ascii59@85..86 ";" , errors: [], stmts: [ @@ -138,7 +137,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..86, + range: 0..85, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0051@9.snap b/crates/parser/tests/snapshots/statements/valid/0051@9.snap index a5d346ff..a9be4d38 100644 --- a/crates/parser/tests/snapshots/statements/valid/0051@9.snap +++ b/crates/parser/tests/snapshots/statements/valid/0051@9.snap @@ -1,31 +1,30 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE INDEX code_idx ON films (code) TABLESPACE indexspace;" +description: CREATE INDEX code_idx ON films (code) TABLESPACE indexspace; --- Parse { - cst: SourceFile@0..61 - Newline@0..1 "\n" - IndexStmt@1..61 - Create@1..7 "CREATE" - Whitespace@7..8 " " - Index@8..13 "INDEX" - Whitespace@13..14 " " - Ident@14..22 "code_idx" - Whitespace@22..23 " " - On@23..25 "ON" - Whitespace@25..26 " " - RangeVar@26..31 - Ident@26..31 "films" - Whitespace@31..32 " " - Ascii40@32..33 "(" - IndexElem@33..37 - Ident@33..37 "code" - Ascii41@37..38 ")" - Whitespace@38..39 " " - Tablespace@39..49 "TABLESPACE" - Whitespace@49..50 " " - Ident@50..60 "indexspace" - Ascii59@60..61 ";" + cst: SourceFile@0..60 + IndexStmt@0..60 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Index@7..12 "INDEX" + Whitespace@12..13 " " + Ident@13..21 "code_idx" + Whitespace@21..22 " " + On@22..24 "ON" + Whitespace@24..25 " " + RangeVar@25..30 + Ident@25..30 "films" + Whitespace@30..31 " " + Ascii40@31..32 "(" + IndexElem@32..36 + Ident@32..36 "code" + Ascii41@36..37 ")" + Whitespace@37..38 " " + Tablespace@38..48 "TABLESPACE" + Whitespace@48..49 " " + Ident@49..59 "indexspace" + Ascii59@59..60 ";" , errors: [], stmts: [ @@ -85,7 +84,7 @@ Parse { reset_default_tblspc: false, }, ), - range: 0..60, + range: 0..59, }, ], } diff --git a/crates/parser/tests/snapshots/statements/valid/0052@2.snap b/crates/parser/tests/snapshots/statements/valid/0052@2.snap index 94171c5c..7815a6e0 100644 --- a/crates/parser/tests/snapshots/statements/valid/0052@2.snap +++ b/crates/parser/tests/snapshots/statements/valid/0052@2.snap @@ -1,78 +1,77 @@ --- source: crates/parser/tests/statement_parser_test.rs -description: "\nCREATE PROCEDURE insert_data(a integer, b integer) LANGUAGE SQL BEGIN ATOMIC INSERT INTO tbl VALUES (a); INSERT INTO tbl VALUES (b); END;" +description: "CREATE PROCEDURE insert_data(a integer, b integer) LANGUAGE SQL BEGIN ATOMIC INSERT INTO tbl VALUES (a); INSERT INTO tbl VALUES (b); END;" --- Parse { - cst: SourceFile@0..135 - Newline@0..1 "\n" - Create@1..7 "CREATE" - Whitespace@7..8 " " - Procedure@8..17 "PROCEDURE" - Whitespace@17..18 " " - Ident@18..29 "insert_data" - Ascii40@29..30 "(" - Ident@30..31 "a" - Whitespace@31..32 " " - Integer@32..39 "integer" - Ascii44@39..40 "," - Whitespace@40..41 " " - Ident@41..42 "b" - Whitespace@42..43 " " - Integer@43..50 "integer" - Ascii41@50..51 ")" - Whitespace@51..52 " " - Language@52..60 "LANGUAGE" - Whitespace@60..61 " " - SqlP@61..64 "SQL" - BeginP@64..69 "BEGIN" - Whitespace@69..70 " " - Atomic@70..76 "ATOMIC" - InsertStmt@76..103 - Insert@76..82 "INSERT" - Whitespace@82..83 " " - Into@83..87 "INTO" - Whitespace@87..88 " " - RangeVar@88..91 - Ident@88..91 "tbl" - Whitespace@91..92 " " - SelectStmt@92..101 - Values@92..98 "VALUES" - Whitespace@98..99 " " - Ascii40@99..100 "(" - List@100..101 - ColumnRef@100..101 - Ident@100..101 "a" - Ascii41@101..102 ")" - Ascii59@102..103 ";" - InsertStmt@103..130 - Insert@103..109 "INSERT" - Whitespace@109..110 " " - Into@110..114 "INTO" - Whitespace@114..115 " " - RangeVar@115..118 - Ident@115..118 "tbl" - Whitespace@118..119 " " - SelectStmt@119..128 - Values@119..125 "VALUES" - Whitespace@125..126 " " - Ascii40@126..127 "(" - List@127..128 - ColumnRef@127..128 - Ident@127..128 "b" - Ascii41@128..129 ")" - Ascii59@129..130 ";" - Whitespace@130..131 " " - EndP@131..134 "END" - Ascii59@134..135 ";" + cst: SourceFile@0..134 + Create@0..6 "CREATE" + Whitespace@6..7 " " + Procedure@7..16 "PROCEDURE" + Whitespace@16..17 " " + Ident@17..28 "insert_data" + Ascii40@28..29 "(" + Ident@29..30 "a" + Whitespace@30..31 " " + Integer@31..38 "integer" + Ascii44@38..39 "," + Whitespace@39..40 " " + Ident@40..41 "b" + Whitespace@41..42 " " + Integer@42..49 "integer" + Ascii41@49..50 ")" + Whitespace@50..51 " " + Language@51..59 "LANGUAGE" + Whitespace@59..60 " " + SqlP@60..63 "SQL" + BeginP@63..68 "BEGIN" + Whitespace@68..69 " " + Atomic@69..75 "ATOMIC" + InsertStmt@75..102 + Insert@75..81 "INSERT" + Whitespace@81..82 " " + Into@82..86 "INTO" + Whitespace@86..87 " " + RangeVar@87..90 + Ident@87..90 "tbl" + Whitespace@90..91 " " + SelectStmt@91..100 + Values@91..97 "VALUES" + Whitespace@97..98 " " + Ascii40@98..99 "(" + List@99..100 + ColumnRef@99..100 + Ident@99..100 "a" + Ascii41@100..101 ")" + Ascii59@101..102 ";" + InsertStmt@102..129 + Insert@102..108 "INSERT" + Whitespace@108..109 " " + Into@109..113 "INTO" + Whitespace@113..114 " " + RangeVar@114..117 + Ident@114..117 "tbl" + Whitespace@117..118 " " + SelectStmt@118..127 + Values@118..124 "VALUES" + Whitespace@124..125 " " + Ascii40@125..126 "(" + List@126..127 + ColumnRef@126..127 + Ident@126..127 "b" + Ascii41@127..128 ")" + Ascii59@128..129 ";" + Whitespace@129..130 " " + EndP@130..133 "END" + Ascii59@133..134 ";" , errors: [ SyntaxError( "Expected Ascii59, found Whitespace", - 77..77, + 76..76, ), SyntaxError( "Invalid statement: syntax error at or near \"ATOMIC\"", - 21..24, + 20..23, ), ], stmts: [ @@ -158,7 +157,7 @@ Parse { r#override: OverridingNotSet, }, ), - range: 77..105, + range: 76..104, }, RawStmt { stmt: InsertStmt( @@ -242,7 +241,7 @@ Parse { r#override: OverridingNotSet, }, ), - range: 105..133, + range: 104..132, }, ], } diff --git a/crates/parser/tests/statement_parser_test.rs b/crates/parser/tests/statement_parser_test.rs index 0718897c..93bb19d7 100644 --- a/crates/parser/tests/statement_parser_test.rs +++ b/crates/parser/tests/statement_parser_test.rs @@ -26,7 +26,7 @@ fn valid_statements() { let cases = split_with_parser(&contents).unwrap(); for (i, case) in cases.iter().enumerate() { - let case = format!("{};", case); + let case = format!("{};", case.trim()); debug!("Parsing statement {}\n{}", test_name, case);