---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_syntax/test_data/validation/default_ok.sql
---
SOURCE_FILE@0..492
UPDATE@0..27
UPDATE_KW@0..6 "UPDATE"
WHITESPACE@6..7 " "
RELATION_NAME@7..8
PATH@7..8
PATH_SEGMENT@7..8
NAME_REF@7..8
IDENT@7..8 "t"
WHITESPACE@8..9 " "
SET_CLAUSE@9..26
SET_KW@9..12 "SET"
WHITESPACE@12..13 " "
SET_COLUMN_LIST@13..26
SET_SINGLE_COLUMN@13..26
COLUMN@13..16
NAME_REF@13..16
IDENT@13..16 "col"
WHITESPACE@16..17 " "
EQ@17..18 "="
WHITESPACE@18..19 " "
SET_EXPR@19..26
DEFAULT_KW@19..26 "DEFAULT"
SEMICOLON@26..27 ";"
WHITESPACE@27..29 "\n\n"
UPDATE@29..63
UPDATE_KW@29..35 "UPDATE"
WHITESPACE@35..36 " "
RELATION_NAME@36..37
PATH@36..37
PATH_SEGMENT@36..37
NAME_REF@36..37
IDENT@36..37 "t"
WHITESPACE@37..38 " "
SET_CLAUSE@38..62
SET_KW@38..41 "SET"
WHITESPACE@41..42 " "
SET_COLUMN_LIST@42..62
SET_MULTIPLE_COLUMNS@42..62
COLUMN_LIST@42..47
L_PAREN@42..43 "("
COLUMN@43..44
NAME_REF@43..44
IDENT@43..44 "a"
COMMA@44..45 ","
COLUMN@45..46
NAME_REF@45..46
IDENT@45..46 "b"
R_PAREN@46..47 ")"
WHITESPACE@47..48 " "
EQ@48..49 "="
WHITESPACE@49..50 " "
SET_EXPR_LIST@50..62
L_PAREN@50..51 "("
SET_EXPR@51..58
DEFAULT_KW@51..58 "DEFAULT"
COMMA@58..59 ","
WHITESPACE@59..60 " "
SET_EXPR@60..61
LITERAL@60..61
INT_NUMBER@60..61 "1"
R_PAREN@61..62 ")"
SEMICOLON@62..63 ";"
WHITESPACE@63..65 "\n\n"
INSERT@65..96
INSERT_KW@65..71 "INSERT"
WHITESPACE@71..72 " "
INTO_KW@72..76 "into"
WHITESPACE@76..77 " "
PATH@77..78
PATH_SEGMENT@77..78
NAME_REF@77..78
IDENT@77..78 "t"
WHITESPACE@78..79 " "
VALUES@79..95
VALUES_KW@79..85 "VALUES"
WHITESPACE@85..86 " "
ROW_LIST@86..95
ROW@86..95
L_PAREN@86..87 "("
LITERAL@87..94
DEFAULT_KW@87..94 "DEFAULT"
R_PAREN@94..95 ")"
SEMICOLON@95..96 ";"
WHITESPACE@96..98 "\n\n"
MERGE@98..240
MERGE_KW@98..103 "MERGE"
WHITESPACE@103..104 " "
INTO_KW@104..108 "INTO"
WHITESPACE@108..109 " "
RELATION_NAME@109..115
PATH@109..115
PATH_SEGMENT@109..115
NAME_REF@109..115
TARGET_KW@109..115 "target"
WHITESPACE@115..116 " "
ALIAS@116..117
NAME@116..117
IDENT@116..117 "t"
WHITESPACE@117..120 "\n "
USING_ON_CLAUSE@120..154
USING_KW@120..125 "USING"
WHITESPACE@125..126 " "
FROM_ITEM@126..134
NAME_REF@126..132
SOURCE_KW@126..132 "source"
WHITESPACE@132..133 " "
ALIAS@133..134
NAME@133..134
IDENT@133..134 "s"
WHITESPACE@134..140 "\n "
ON_CLAUSE@140..154
ON_KW@140..142 "ON"
WHITESPACE@142..143 " "
BIN_EXPR@143..154
FIELD_EXPR@143..147
NAME_REF@143..144
IDENT@143..144 "t"
DOT@144..145 "."
NAME_REF@145..147
IDENT@145..147 "id"
WHITESPACE@147..148 " "
EQ@148..149 "="
WHITESPACE@149..150 " "
FIELD_EXPR@150..154
NAME_REF@150..151
IDENT@150..151 "s"
DOT@151..152 "."
NAME_REF@152..154
IDENT@152..154 "id"
WHITESPACE@154..157 "\n "
MERGE_WHEN_NOT_MATCHED_TARGET@157..239
WHEN_KW@157..161 "WHEN"
WHITESPACE@161..162 " "
NOT_KW@162..165 "NOT"
WHITESPACE@165..166 " "
MATCHED_KW@166..173 "MATCHED"
WHITESPACE@173..174 " "
THEN_KW@174..178 "THEN"
WHITESPACE@178..185 "\n "
MERGE_INSERT@185..239
INSERT_KW@185..191 "INSERT"
WHITESPACE@191..192 " "
COLUMN_LIST@192..207
L_PAREN@192..193 "("
COLUMN@193..195
NAME_REF@193..195
IDENT@193..195 "id"
COMMA@195..196 ","
WHITESPACE@196..197 " "
COLUMN@197..201
NAME_REF@197..201
NAME_KW@197..201 "name"
COMMA@201..202 ","
WHITESPACE@202..203 " "
COLUMN@203..206
NAME_REF@203..206
IDENT@203..206 "qty"
R_PAREN@206..207 ")"
WHITESPACE@207..208 " "
VALUES@208..239
VALUES_KW@208..214 "VALUES"
WHITESPACE@214..215 " "
ROW_LIST@215..239
ROW@215..239
L_PAREN@215..216 "("
FIELD_EXPR@216..220
NAME_REF@216..217
IDENT@216..217 "s"
DOT@217..218 "."
NAME_REF@218..220
IDENT@218..220 "id"
COMMA@220..221 ","
WHITESPACE@221..222 " "
LITERAL@222..229
DEFAULT_KW@222..229 "DEFAULT"
COMMA@229..230 ","
WHITESPACE@230..231 " "
LITERAL@231..238
DEFAULT_KW@231..238 "DEFAULT"
R_PAREN@238..239 ")"
SEMICOLON@239..240 ";"
WHITESPACE@240..242 "\n\n"
MERGE@242..351
MERGE_KW@242..247 "MERGE"
WHITESPACE@247..248 " "
INTO_KW@248..252 "INTO"
WHITESPACE@252..253 " "
RELATION_NAME@253..259
PATH@253..259
PATH_SEGMENT@253..259
NAME_REF@253..259
TARGET_KW@253..259 "target"
WHITESPACE@259..260 " "
ALIAS@260..261
NAME@260..261
IDENT@260..261 "t"
WHITESPACE@261..264 "\n "
USING_ON_CLAUSE@264..298
USING_KW@264..269 "USING"
WHITESPACE@269..270 " "
FROM_ITEM@270..278
NAME_REF@270..276
SOURCE_KW@270..276 "source"
WHITESPACE@276..277 " "
ALIAS@277..278
NAME@277..278
IDENT@277..278 "s"
WHITESPACE@278..284 "\n "
ON_CLAUSE@284..298
ON_KW@284..286 "ON"
WHITESPACE@286..287 " "
BIN_EXPR@287..298
FIELD_EXPR@287..291
NAME_REF@287..288
IDENT@287..288 "t"
DOT@288..289 "."
NAME_REF@289..291
IDENT@289..291 "id"
WHITESPACE@291..292 " "
EQ@292..293 "="
WHITESPACE@293..294 " "
FIELD_EXPR@294..298
NAME_REF@294..295
IDENT@294..295 "s"
DOT@295..296 "."
NAME_REF@296..298
IDENT@296..298 "id"
WHITESPACE@298..301 "\n "
MERGE_WHEN_MATCHED@301..350
WHEN_KW@301..305 "WHEN"
WHITESPACE@305..306 " "
MATCHED_KW@306..313 "MATCHED"
WHITESPACE@313..314 " "
THEN_KW@314..318 "THEN"
WHITESPACE@318..325 "\n "
MERGE_UPDATE@325..350
UPDATE_KW@325..331 "UPDATE"
WHITESPACE@331..332 " "
SET_CLAUSE@332..350
SET_KW@332..335 "SET"
WHITESPACE@335..336 " "
SET_COLUMN_LIST@336..350
SET_SINGLE_COLUMN@336..350
COLUMN@336..340
NAME_REF@336..340
IDENT@336..340 "qty2"
WHITESPACE@340..341 " "
EQ@341..342 "="
WHITESPACE@342..343 " "
SET_EXPR@343..350
DEFAULT_KW@343..350 "DEFAULT"
SEMICOLON@350..351 ";"
WHITESPACE@351..353 "\n\n"
UPDATE@353..382
UPDATE_KW@353..359 "UPDATE"
WHITESPACE@359..360 " "
RELATION_NAME@360..361
PATH@360..361
PATH_SEGMENT@360..361
NAME_REF@360..361
IDENT@360..361 "t"
WHITESPACE@361..362 " "
SET_CLAUSE@362..381
SET_KW@362..365 "SET"
WHITESPACE@365..366 " "
SET_COLUMN_LIST@366..381
SET_SINGLE_COLUMN@366..381
COLUMN@366..369
NAME_REF@366..369
IDENT@366..369 "col"
WHITESPACE@369..370 " "
EQ@370..371 "="
WHITESPACE@371..372 " "
SET_EXPR@372..381
PAREN_EXPR@372..381
L_PAREN@372..373 "("
LITERAL@373..380
DEFAULT_KW@373..380 "DEFAULT"
R_PAREN@380..381 ")"
SEMICOLON@381..382 ";"
WHITESPACE@382..384 "\n\n"
UPDATE@384..417
UPDATE_KW@384..390 "UPDATE"
WHITESPACE@390..391 " "
RELATION_NAME@391..392
PATH@391..392
PATH_SEGMENT@391..392
NAME_REF@391..392
IDENT@391..392 "t"
WHITESPACE@392..393 " "
SET_CLAUSE@393..416
SET_KW@393..396 "SET"
WHITESPACE@396..397 " "
SET_COLUMN_LIST@397..416
SET_SINGLE_COLUMN@397..416
COLUMN@397..400
NAME_REF@397..400
IDENT@397..400 "col"
WHITESPACE@400..401 " "
EQ@401..402 "="
WHITESPACE@402..403 " "
SET_EXPR@403..416
PAREN_EXPR@403..416
L_PAREN@403..404 "("
PAREN_EXPR@404..415
L_PAREN@404..405 "("
PAREN_EXPR@405..414
L_PAREN@405..406 "("
LITERAL@406..413
DEFAULT_KW@406..413 "DEFAULT"
R_PAREN@413..414 ")"
R_PAREN@414..415 ")"
R_PAREN@415..416 ")"
SEMICOLON@416..417 ";"
WHITESPACE@417..419 "\n\n"
UPDATE@419..456
UPDATE_KW@419..425 "UPDATE"
WHITESPACE@425..426 " "
RELATION_NAME@426..427
PATH@426..427
PATH_SEGMENT@426..427
NAME_REF@426..427
IDENT@426..427 "t"
WHITESPACE@427..428 " "
SET_CLAUSE@428..455
SET_KW@428..431 "SET"
WHITESPACE@431..432 " "
SET_COLUMN_LIST@432..455
SET_MULTIPLE_COLUMNS@432..455
COLUMN_LIST@432..438
L_PAREN@432..433 "("
COLUMN@433..434
NAME_REF@433..434
IDENT@433..434 "a"
COMMA@434..435 ","
WHITESPACE@435..436 " "
COLUMN@436..437
NAME_REF@436..437
IDENT@436..437 "b"
R_PAREN@437..438 ")"
WHITESPACE@438..439 " "
EQ@439..440 "="
WHITESPACE@440..441 " "
SET_EXPR_LIST@441..455
L_PAREN@441..442 "("
SET_EXPR@442..451
PAREN_EXPR@442..451
L_PAREN@442..443 "("
LITERAL@443..450
DEFAULT_KW@443..450 "DEFAULT"
R_PAREN@450..451 ")"
COMMA@451..452 ","
WHITESPACE@452..453 " "
SET_EXPR@453..454
LITERAL@453..454
INT_NUMBER@453..454 "1"
R_PAREN@454..455 ")"
SEMICOLON@455..456 ";"
WHITESPACE@456..458 "\n\n"
INSERT@458..491
INSERT_KW@458..464 "INSERT"
WHITESPACE@464..465 " "
INTO_KW@465..469 "INTO"
WHITESPACE@469..470 " "
PATH@470..471
PATH_SEGMENT@470..471
NAME_REF@470..471
IDENT@470..471 "t"
WHITESPACE@471..472 " "
VALUES@472..490
VALUES_KW@472..478 "VALUES"
WHITESPACE@478..479 " "
ROW_LIST@479..490
ROW@479..490
L_PAREN@479..480 "("
PAREN_EXPR@480..489
L_PAREN@480..481 "("
LITERAL@481..488
DEFAULT_KW@481..488 "DEFAULT"
R_PAREN@488..489 ")"
R_PAREN@489..490 ")"
SEMICOLON@490..491 ";"
WHITESPACE@491..492 "\n"