---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/create_aggregate_params.sql
---
SOURCE_FILE@0..484
COMMENT@0..38 "-- can't have out par ..."
WHITESPACE@38..39 "\n"
CREATE_AGGREGATE@39..119
CREATE_KW@39..45 "create"
WHITESPACE@45..46 " "
AGGREGATE_KW@46..55 "aggregate"
WHITESPACE@55..56 " "
AGGREGATE_NAME@56..57
PATH@56..57
PATH_SEGMENT@56..57
IDENT@56..57 "a"
PARAM_LIST@57..89
L_PAREN@57..58 "("
PARAM@58..62
PARAM_IN@58..60
IN_KW@58..60 "in"
WHITESPACE@60..61 " "
PATH_TYPE@61..62
PATH_REF@61..62
PATH_SEGMENT_REF@61..62
IDENT@61..62 "x"
COMMA@62..63 ","
WHITESPACE@63..64 " "
PARAM@64..69
PARAM_OUT@64..67
OUT_KW@64..67 "out"
WHITESPACE@67..68 " "
PATH_TYPE@68..69
PATH_REF@68..69
PATH_SEGMENT_REF@68..69
IDENT@68..69 "y"
COMMA@69..70 ","
WHITESPACE@70..71 " "
PARAM@71..78
PARAM_IN_OUT@71..76
INOUT_KW@71..76 "inout"
WHITESPACE@76..77 " "
PATH_TYPE@77..78
PATH_REF@77..78
PATH_SEGMENT_REF@77..78
IDENT@77..78 "z"
COMMA@78..79 ","
WHITESPACE@79..80 " "
PARAM@80..88
PARAM_IN_OUT@80..86
IN_KW@80..82 "in"
WHITESPACE@82..83 " "
OUT_KW@83..86 "out"
WHITESPACE@86..87 " "
PATH_TYPE@87..88
PATH_REF@87..88
PATH_SEGMENT_REF@87..88
IDENT@87..88 "w"
R_PAREN@88..89 ")"
WHITESPACE@89..90 " "
ATTRIBUTE_LIST@90..118
L_PAREN@90..91 "("
WHITESPACE@91..94 "\n "
ATTRIBUTE_OPTION@94..103
ATTRIBUTE_NAME@94..99
IDENT@94..99 "sfunc"
WHITESPACE@99..100 " "
EQ@100..101 "="
WHITESPACE@101..102 " "
ATTRIBUTE_VALUE@102..103
PATH_TYPE@102..103
PATH_REF@102..103
PATH_SEGMENT_REF@102..103
IDENT@102..103 "f"
COMMA@103..104 ","
WHITESPACE@104..107 "\n "
ATTRIBUTE_OPTION@107..116
ATTRIBUTE_NAME@107..112
IDENT@107..112 "stype"
WHITESPACE@112..113 " "
EQ@113..114 "="
WHITESPACE@114..115 " "
ATTRIBUTE_VALUE@115..116
PATH_TYPE@115..116
PATH_REF@115..116
PATH_SEGMENT_REF@115..116
IDENT@115..116 "t"
WHITESPACE@116..117 "\n"
R_PAREN@117..118 ")"
SEMICOLON@118..119 ";"
WHITESPACE@119..121 "\n\n"
CREATE_AGGREGATE@121..231
CREATE_KW@121..127 "create"
WHITESPACE@127..128 " "
AGGREGATE_KW@128..137 "aggregate"
WHITESPACE@137..138 " "
AGGREGATE_NAME@138..160
PATH@138..160
PATH_SEGMENT@138..160
IDENT@138..160 "aggregate_with_default"
PARAM_LIST@160..185
L_PAREN@160..161 "("
PARAM@161..184
PARAM_NAME@161..166
VALUE_KW@161..166 "value"
WHITESPACE@166..167 " "
PATH_TYPE@167..174
PATH_REF@167..174
PATH_SEGMENT_REF@167..174
INTEGER_KW@167..174 "integer"
WHITESPACE@174..175 " "
PARAM_DEFAULT@175..184
DEFAULT_KW@175..182 "default"
WHITESPACE@182..183 " "
LITERAL@183..184
INT_NUMBER@183..184 "1"
R_PAREN@184..185 ")"
WHITESPACE@185..186 " "
ATTRIBUTE_LIST@186..230
L_PAREN@186..187 "("
WHITESPACE@187..190 "\n "
ATTRIBUTE_OPTION@190..209
ATTRIBUTE_NAME@190..195
IDENT@190..195 "sfunc"
WHITESPACE@195..196 " "
EQ@196..197 "="
WHITESPACE@197..198 " "
ATTRIBUTE_VALUE@198..209
PATH_TYPE@198..209
PATH_REF@198..209
PATH_SEGMENT_REF@198..209
IDENT@198..209 "integer_sum"
COMMA@209..210 ","
WHITESPACE@210..213 "\n "
ATTRIBUTE_OPTION@213..228
ATTRIBUTE_NAME@213..218
IDENT@213..218 "stype"
WHITESPACE@218..219 " "
EQ@219..220 "="
WHITESPACE@220..221 " "
ATTRIBUTE_VALUE@221..228
PATH_TYPE@221..228
PATH_REF@221..228
PATH_SEGMENT_REF@221..228
INTEGER_KW@221..228 "integer"
WHITESPACE@228..229 "\n"
R_PAREN@229..230 ")"
SEMICOLON@230..231 ";"
WHITESPACE@231..233 "\n\n"
CREATE_AGGREGATE@233..349
CREATE_KW@233..239 "create"
WHITESPACE@239..240 " "
AGGREGATE_KW@240..249 "aggregate"
WHITESPACE@249..250 " "
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.
╭▸
2 │ create aggregate a(in x, out y, inout z, in out w) (
╰╴ ━━━
error[syntax-error]: In Out params are not allowed with aggregates.
╭▸
2 │ create aggregate a(in x, out y, inout z, in out w) (
╰╴ ━━━━━
error[syntax-error]: In Out params are not allowed with aggregates.
╭▸
2 │ create aggregate a(in x, out y, inout z, in out w) (
╰╴ ━━━━━━
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.
╭▸
18 │ direct integer order by aggregated integer = 1
╰╴ ━━━