Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/create_aggregate_params.sql
---
SOURCE_FILE@0..366
SOURCE_FILE@0..484
COMMENT@0..38 "-- can't have out par ..."
WHITESPACE@38..39 "\n"
CREATE_AGGREGATE@39..119
Expand Down Expand Up @@ -147,80 +147,149 @@ SOURCE_FILE@0..366
R_PAREN@229..230 ")"
SEMICOLON@230..231 ";"
WHITESPACE@231..233 "\n\n"
CREATE_AGGREGATE@233..365
CREATE_AGGREGATE@233..349
CREATE_KW@233..239 "create"
WHITESPACE@239..240 " "
AGGREGATE_KW@240..249 "aggregate"
WHITESPACE@249..250 " "
AGGREGATE_NAME@250..267
PATH@250..267
PATH_SEGMENT@250..267
IDENT@250..267 "ordered_aggregate"
PARAM_LIST@267..319
L_PAREN@267..268 "("
WHITESPACE@268..271 "\n "
PARAM@271..285
PARAM_NAME@271..277
IDENT@271..277 "direct"
WHITESPACE@277..278 " "
PATH_TYPE@278..285
PATH_REF@278..285
PATH_SEGMENT_REF@278..285
INTEGER_KW@278..285 "integer"
WHITESPACE@285..286 " "
AGGREGATE_ORDER_BY@286..317
ORDER_KW@286..291 "order"
WHITESPACE@291..292 " "
BY_KW@292..294 "by"
WHITESPACE@294..295 " "
PARAM@295..317
PARAM_NAME@295..305
IDENT@295..305 "aggregated"
WHITESPACE@305..306 " "
PATH_TYPE@306..313
PATH_REF@306..313
PATH_SEGMENT_REF@306..313
INTEGER_KW@306..313 "integer"
WHITESPACE@313..314 " "
PARAM_DEFAULT@314..317
EQ@314..315 "="
WHITESPACE@315..316 " "
LITERAL@316..317
INT_NUMBER@316..317 "1"
WHITESPACE@317..318 "\n"
R_PAREN@318..319 ")"
WHITESPACE@319..320 " "
ATTRIBUTE_LIST@320..364
L_PAREN@320..321 "("
WHITESPACE@321..324 "\n "
ATTRIBUTE_OPTION@324..343
ATTRIBUTE_NAME@324..329
IDENT@324..329 "sfunc"
WHITESPACE@329..330 " "
EQ@330..331 "="
WHITESPACE@331..332 " "
ATTRIBUTE_VALUE@332..343
PATH_TYPE@332..343
PATH_REF@332..343
PATH_SEGMENT_REF@332..343
IDENT@332..343 "integer_sum"
COMMA@343..344 ","
WHITESPACE@344..347 "\n "
ATTRIBUTE_OPTION@347..362
ATTRIBUTE_NAME@347..352
IDENT@347..352 "stype"
WHITESPACE@352..353 " "
EQ@353..354 "="
WHITESPACE@354..355 " "
ATTRIBUTE_VALUE@355..362
PATH_TYPE@355..362
PATH_REF@355..362
PATH_SEGMENT_REF@355..362
INTEGER_KW@355..362 "integer"
WHITESPACE@362..363 "\n"
R_PAREN@363..364 ")"
SEMICOLON@364..365 ";"
WHITESPACE@365..366 "\n"
AGGREGATE_NAME@250..266
PATH@250..266
PATH_SEGMENT@250..266
IDENT@250..266 "invalid_variadic"
PARAM_LIST@266..303
L_PAREN@266..267 "("
PARAM@267..287
PARAM_VARIADIC@267..275
VARIADIC_KW@267..275 "variadic"
WHITESPACE@275..276 " "
PARAM_NAME@276..281
IDENT@276..281 "items"
WHITESPACE@281..282 " "
ARRAY_TYPE@282..287
PATH_TYPE@282..285
PATH_REF@282..285
PATH_SEGMENT_REF@282..285
INT_KW@282..285 "int"
ARRAY_BOUND@285..287
L_BRACK@285..286 "["
R_BRACK@286..287 "]"
COMMA@287..288 ","
WHITESPACE@288..289 " "
PARAM@289..302
PARAM_NAME@289..298
FOLLOWING_KW@289..298 "following"
WHITESPACE@298..299 " "
PATH_TYPE@299..302
PATH_REF@299..302
PATH_SEGMENT_REF@299..302
INT_KW@299..302 "int"
R_PAREN@302..303 ")"
WHITESPACE@303..304 " "
ATTRIBUTE_LIST@304..348
L_PAREN@304..305 "("
WHITESPACE@305..308 "\n "
ATTRIBUTE_OPTION@308..327
ATTRIBUTE_NAME@308..313
IDENT@308..313 "sfunc"
WHITESPACE@313..314 " "
EQ@314..315 "="
WHITESPACE@315..316 " "
ATTRIBUTE_VALUE@316..327
PATH_TYPE@316..327
PATH_REF@316..327
PATH_SEGMENT_REF@316..327
IDENT@316..327 "integer_sum"
COMMA@327..328 ","
WHITESPACE@328..331 "\n "
ATTRIBUTE_OPTION@331..346
ATTRIBUTE_NAME@331..336
IDENT@331..336 "stype"
WHITESPACE@336..337 " "
EQ@337..338 "="
WHITESPACE@338..339 " "
ATTRIBUTE_VALUE@339..346
PATH_TYPE@339..346
PATH_REF@339..346
PATH_SEGMENT_REF@339..346
INTEGER_KW@339..346 "integer"
WHITESPACE@346..347 "\n"
R_PAREN@347..348 ")"
SEMICOLON@348..349 ";"
WHITESPACE@349..351 "\n\n"
CREATE_AGGREGATE@351..483
CREATE_KW@351..357 "create"
WHITESPACE@357..358 " "
AGGREGATE_KW@358..367 "aggregate"
WHITESPACE@367..368 " "
AGGREGATE_NAME@368..385
PATH@368..385
PATH_SEGMENT@368..385
IDENT@368..385 "ordered_aggregate"
PARAM_LIST@385..437
L_PAREN@385..386 "("
WHITESPACE@386..389 "\n "
PARAM@389..403
PARAM_NAME@389..395
IDENT@389..395 "direct"
WHITESPACE@395..396 " "
PATH_TYPE@396..403
PATH_REF@396..403
PATH_SEGMENT_REF@396..403
INTEGER_KW@396..403 "integer"
WHITESPACE@403..404 " "
AGGREGATE_ORDER_BY@404..435
ORDER_KW@404..409 "order"
WHITESPACE@409..410 " "
BY_KW@410..412 "by"
WHITESPACE@412..413 " "
PARAM@413..435
PARAM_NAME@413..423
IDENT@413..423 "aggregated"
WHITESPACE@423..424 " "
PATH_TYPE@424..431
PATH_REF@424..431
PATH_SEGMENT_REF@424..431
INTEGER_KW@424..431 "integer"
WHITESPACE@431..432 " "
PARAM_DEFAULT@432..435
EQ@432..433 "="
WHITESPACE@433..434 " "
LITERAL@434..435
INT_NUMBER@434..435 "1"
WHITESPACE@435..436 "\n"
R_PAREN@436..437 ")"
WHITESPACE@437..438 " "
ATTRIBUTE_LIST@438..482
L_PAREN@438..439 "("
WHITESPACE@439..442 "\n "
ATTRIBUTE_OPTION@442..461
ATTRIBUTE_NAME@442..447
IDENT@442..447 "sfunc"
WHITESPACE@447..448 " "
EQ@448..449 "="
WHITESPACE@449..450 " "
ATTRIBUTE_VALUE@450..461
PATH_TYPE@450..461
PATH_REF@450..461
PATH_SEGMENT_REF@450..461
IDENT@450..461 "integer_sum"
COMMA@461..462 ","
WHITESPACE@462..465 "\n "
ATTRIBUTE_OPTION@465..480
ATTRIBUTE_NAME@465..470
IDENT@465..470 "stype"
WHITESPACE@470..471 " "
EQ@471..472 "="
WHITESPACE@472..473 " "
ATTRIBUTE_VALUE@473..480
PATH_TYPE@473..480
PATH_REF@473..480
PATH_SEGMENT_REF@473..480
INTEGER_KW@473..480 "integer"
WHITESPACE@480..481 "\n"
R_PAREN@481..482 ")"
SEMICOLON@482..483 ";"
WHITESPACE@483..484 "\n"

error[syntax-error]: Out params are not allowed with aggregates.
╭▸
Expand All @@ -238,7 +307,11 @@ error[syntax-error]: Defaults are not allowed.
╭▸
7 │ create aggregate aggregate_with_default(value integer default 1) (
╰╴ ━━━━━━━━━
error[syntax-error]: VARIADIC param must be last input param.
╭▸
12 │ create aggregate invalid_variadic(variadic items int[], following int) (
╰╴ ━━━━━━━━━━━━━
error[syntax-error]: Defaults are not allowed.
╭▸
13 │ direct integer order by aggregated integer = 1
18 │ direct integer order by aggregated integer = 1
╰╴ ━━━
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/create_function_params.sql
---
SOURCE_FILE@0..271
CREATE_FUNCTION@0..102
CREATE_KW@0..6 "create"
WHITESPACE@6..7 " "
FUNCTION_KW@7..15 "function"
WHITESPACE@15..16 " "
FUNCTION_NAME@16..32
PATH@16..32
PATH_SEGMENT@16..32
IDENT@16..32 "invalid_variadic"
PARAM_LIST@32..69
L_PAREN@32..33 "("
PARAM@33..53
PARAM_VARIADIC@33..41
VARIADIC_KW@33..41 "variadic"
WHITESPACE@41..42 " "
PARAM_NAME@42..47
IDENT@42..47 "items"
WHITESPACE@47..48 " "
ARRAY_TYPE@48..53
PATH_TYPE@48..51
PATH_REF@48..51
PATH_SEGMENT_REF@48..51
INT_KW@48..51 "int"
ARRAY_BOUND@51..53
L_BRACK@51..52 "["
R_BRACK@52..53 "]"
COMMA@53..54 ","
WHITESPACE@54..55 " "
PARAM@55..68
PARAM_NAME@55..64
FOLLOWING_KW@55..64 "following"
WHITESPACE@64..65 " "
PATH_TYPE@65..68
PATH_REF@65..68
PATH_SEGMENT_REF@65..68
INT_KW@65..68 "int"
R_PAREN@68..69 ")"
WHITESPACE@69..70 "\n"
RET_TYPE@70..82
RETURNS_KW@70..77 "returns"
WHITESPACE@77..78 " "
PATH_TYPE@78..82
PATH_REF@78..82
PATH_SEGMENT_REF@78..82
IDENT@78..82 "void"
WHITESPACE@82..83 "\n"
FUNC_OPTION_LIST@83..101
LANGUAGE_FUNC_OPTION@83..95
LANGUAGE_KW@83..91 "language"
WHITESPACE@91..92 " "
LANGUAGE_REF@92..95
SQL_KW@92..95 "sql"
WHITESPACE@95..96 "\n"
AS_FUNC_OPTION@96..101
AS_KW@96..98 "as"
WHITESPACE@98..99 " "
AS_DEFINITION@99..101
LITERAL@99..101
STRING@99..101 "''"
SEMICOLON@101..102 ";"
WHITESPACE@102..104 "\n\n"
COMMENT@104..168 "-- Functions can have ..."
WHITESPACE@168..169 "\n"
CREATE_FUNCTION@169..270
CREATE_KW@169..175 "create"
WHITESPACE@175..176 " "
FUNCTION_KW@176..184 "function"
WHITESPACE@184..185 " "
FUNCTION_NAME@185..199
PATH@185..199
PATH_SEGMENT@185..199
IDENT@185..199 "valid_variadic"
PARAM_LIST@199..237
L_PAREN@199..200 "("
PARAM@200..220
PARAM_VARIADIC@200..208
VARIADIC_KW@200..208 "variadic"
WHITESPACE@208..209 " "
PARAM_NAME@209..214
IDENT@209..214 "items"
WHITESPACE@214..215 " "
ARRAY_TYPE@215..220
PATH_TYPE@215..218
PATH_REF@215..218
PATH_SEGMENT_REF@215..218
INT_KW@215..218 "int"
ARRAY_BOUND@218..220
L_BRACK@218..219 "["
R_BRACK@219..220 "]"
COMMA@220..221 ","
WHITESPACE@221..222 " "
PARAM@222..236
PARAM_OUT@222..225
OUT_KW@222..225 "out"
WHITESPACE@225..226 " "
PARAM_NAME@226..232
IDENT@226..232 "result"
WHITESPACE@232..233 " "
PATH_TYPE@233..236
PATH_REF@233..236
PATH_SEGMENT_REF@233..236
INT_KW@233..236 "int"
R_PAREN@236..237 ")"
WHITESPACE@237..238 "\n"
RET_TYPE@238..250
RETURNS_KW@238..245 "returns"
WHITESPACE@245..246 " "
PATH_TYPE@246..250
PATH_REF@246..250
PATH_SEGMENT_REF@246..250
IDENT@246..250 "void"
WHITESPACE@250..251 "\n"
FUNC_OPTION_LIST@251..269
LANGUAGE_FUNC_OPTION@251..263
LANGUAGE_KW@251..259 "language"
WHITESPACE@259..260 " "
LANGUAGE_REF@260..263
SQL_KW@260..263 "sql"
WHITESPACE@263..264 "\n"
AS_FUNC_OPTION@264..269
AS_KW@264..266 "as"
WHITESPACE@266..267 " "
AS_DEFINITION@267..269
LITERAL@267..269
STRING@267..269 "''"
SEMICOLON@269..270 ";"
WHITESPACE@270..271 "\n"

error[syntax-error]: VARIADIC param must be last input param.
╭▸
1 │ create function invalid_variadic(variadic items int[], following int)
╰╴ ━━━━━━━━━━━━━
Loading
Loading