---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/explain.sql
---
SOURCE_FILE
COMMENT "-- simple"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "from"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "t"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- explain_analyze"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
ANALYZE_KW "analyze"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
IDENT "a"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "from"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "t"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- all_options"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
L_PAREN "("
WHITESPACE "\n "
ANALYZE_KW "analyze"
COMMA ","
WHITESPACE "\n "
VERBOSE_KW "verbose"
COMMA ","
WHITESPACE "\n "
IDENT "costs"
COMMA ","
WHITESPACE "\n "
IDENT "costs"
WHITESPACE " "
LITERAL
TRUE_KW "true"
COMMA ","
WHITESPACE "\n "
IDENT "costs"
WHITESPACE " "
LITERAL
FALSE_KW "false"
COMMA ","
WHITESPACE "\n "
IDENT "settings"
COMMA ","
WHITESPACE "\n "
IDENT "generic_plan"
COMMA ","
WHITESPACE "\n "
IDENT "buffers"
COMMA ","
WHITESPACE "\n "
IDENT "serialize"
COMMA ","
WHITESPACE "\n "
IDENT "serialize"
WHITESPACE " "
NONE_KW "none"
COMMA ","
WHITESPACE "\n "
IDENT "serialize"
WHITESPACE " "
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
IDENT "serialize"
WHITESPACE " "
BINARY_KW "binary"
COMMA ","
WHITESPACE "\n "
IDENT "wal"
COMMA ","
WHITESPACE "\n "
IDENT "timing"
COMMA ","
WHITESPACE "\n "
IDENT "summary"
COMMA ","
WHITESPACE "\n "
IDENT "memory"
COMMA ","
WHITESPACE "\n "
FORMAT_KW "format"
WHITESPACE " "
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
FORMAT_KW "format"
WHITESPACE " "
XML_KW "xml"
COMMA ","
WHITESPACE "\n "
FORMAT_KW "format"
WHITESPACE " "
JSON_KW "json"
COMMA ","
WHITESPACE "\n "
FORMAT_KW "format"
WHITESPACE " "
IDENT "yaml"
WHITESPACE "\n"
R_PAREN ")"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_1"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
FORMAT_KW "FORMAT"
WHITESPACE " "
JSON_KW "JSON"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_2"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
EQ "="
WHITESPACE " "
LITERAL
INT_NUMBER "4"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_3"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
FORMAT_KW "FORMAT"
WHITESPACE " "
IDENT "YAML"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
EQ "="
LITERAL
STRING "'4'"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_4"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "COSTS"
WHITESPACE " "
LITERAL
FALSE_KW "FALSE"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
EQ "="
WHITESPACE " "
LITERAL
INT_NUMBER "4"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_5"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
CALL_EXPR
NAME_REF
IDENT "sum"
ARG_LIST
L_PAREN "("
NAME_REF
IDENT "i"
R_PAREN ")"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
L_ANGLE "<"
WHITESPACE " "
LITERAL
INT_NUMBER "10"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_6"
WHITESPACE "\n"
PREPARE
PREPARE_KW "PREPARE"
WHITESPACE " "
NAME
IDENT "query"
PARAM_LIST
L_PAREN "("
PARAM
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INT_KW "int"
COMMA ","
WHITESPACE " "
PARAM
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INT_KW "int"
R_PAREN ")"
WHITESPACE " "
AS_KW "AS"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
CALL_EXPR
NAME_REF
IDENT "sum"
ARG_LIST
L_PAREN "("
NAME_REF
IDENT "bar"
R_PAREN ")"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "test"
WHITESPACE "\n "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
BIN_EXPR
NAME_REF
IDENT "id"
WHITESPACE " "
R_ANGLE ">"
WHITESPACE " "
LITERAL
POSITIONAL_PARAM "$1"
WHITESPACE " "
AND_KW "AND"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "id"
WHITESPACE " "
L_ANGLE "<"
WHITESPACE " "
LITERAL
POSITIONAL_PARAM "$2"
WHITESPACE "\n "
GROUP_BY_CLAUSE
GROUP_KW "GROUP"
WHITESPACE " "
BY_KW "BY"
WHITESPACE " "
GROUP_BY_LIST
GROUPING_EXPR
NAME_REF
IDENT "foo"
SEMICOLON ";"
WHITESPACE "\n\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
ANALYZE_KW "ANALYZE"
WHITESPACE " "
EXECUTE
EXECUTE_KW "EXECUTE"
WHITESPACE " "
NAME_REF
IDENT "query"
ARG_LIST
L_PAREN "("
LITERAL
INT_NUMBER "100"
COMMA ","
WHITESPACE " "
LITERAL
INT_NUMBER "200"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_7"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "GENERIC_PLAN"
R_PAREN ")"
WHITESPACE "\n "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
CALL_EXPR
NAME_REF
IDENT "sum"
ARG_LIST
L_PAREN "("
NAME_REF
IDENT "bar"
R_PAREN ")"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "test"
WHITESPACE "\n "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
BIN_EXPR
NAME_REF
IDENT "id"
WHITESPACE " "
R_ANGLE ">"
WHITESPACE " "
LITERAL
POSITIONAL_PARAM "$1"
WHITESPACE " "
AND_KW "AND"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "id"
WHITESPACE " "
L_ANGLE "<"
WHITESPACE " "
LITERAL
POSITIONAL_PARAM "$2"
WHITESPACE "\n "
GROUP_BY_CLAUSE
GROUP_KW "GROUP"
WHITESPACE " "
BY_KW "BY"
WHITESPACE " "
GROUP_BY_LIST
GROUPING_EXPR
NAME_REF
IDENT "foo"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- doc_example_8"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "GENERIC_PLAN"
R_PAREN ")"
WHITESPACE "\n "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
CALL_EXPR
NAME_REF
IDENT "sum"
ARG_LIST
L_PAREN "("
NAME_REF
IDENT "bar"
R_PAREN ")"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "test"
WHITESPACE "\n "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
BIN_EXPR
NAME_REF
IDENT "id"
WHITESPACE " "
R_ANGLE ">"
WHITESPACE " "
CAST_EXPR
LITERAL
POSITIONAL_PARAM "$1"
COLON_COLON
COLON ":"
COLON ":"
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INTEGER_KW "integer"
WHITESPACE " "
AND_KW "AND"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "id"
WHITESPACE " "
L_ANGLE "<"
WHITESPACE " "
CAST_EXPR
LITERAL
POSITIONAL_PARAM "$2"
COLON_COLON
COLON ":"
COLON ":"
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INTEGER_KW "integer"
WHITESPACE "\n "
GROUP_BY_CLAUSE
GROUP_KW "GROUP"
WHITESPACE " "
BY_KW "BY"
WHITESPACE " "
GROUP_BY_LIST
GROUPING_EXPR
NAME_REF
IDENT "foo"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- parens_select"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
ANALYZE_KW "analyze"
WHITESPACE " "
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- parens_values"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
ANALYZE_KW "analyze"
WHITESPACE " "
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
PAREN_SELECT
L_PAREN "("
VALUES
VALUES_KW "values"
WHITESPACE " "
ROW_LIST
ROW
L_PAREN "("
LITERAL
INT_NUMBER "1"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- boolean off"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "COSTS"
WHITESPACE " "
LITERAL
OFF_KW "OFF"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
EQ "="
WHITESPACE " "
LITERAL
INT_NUMBER "4"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- boolean on"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "COSTS"
WHITESPACE " "
LITERAL
ON_KW "ON"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
EQ "="
WHITESPACE " "
LITERAL
INT_NUMBER "4"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- boolean 1"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "COSTS"
WHITESPACE " "
LITERAL
INT_NUMBER "1"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
EQ "="
WHITESPACE " "
LITERAL
INT_NUMBER "4"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- boolean 0"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "EXPLAIN"
WHITESPACE " "
L_PAREN "("
IDENT "COSTS"
WHITESPACE " "
LITERAL
INT_NUMBER "0"
R_PAREN ")"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "foo"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "WHERE"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "i"
WHITESPACE " "
EQ "="
WHITESPACE " "
LITERAL
INT_NUMBER "4"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- compound select"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
COMPOUND_SELECT
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
WHITESPACE " "
UNION_KW "union"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "2"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- select into"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
SELECT_INTO
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
IDENT "a"
COMMA ","
WHITESPACE " "
TARGET
NAME_REF
IDENT "b"
COMMA ","
WHITESPACE " "
TARGET
NAME_REF
IDENT "c"
WHITESPACE " "
INTO_CLAUSE
INTO_KW "into"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "t"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "from"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "t2"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- paren select"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
PAREN_SELECT
L_PAREN "("
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- table"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
TABLE
TABLE_KW "table"
WHITESPACE " "
RELATION_NAME
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- values"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
VALUES
VALUES_KW "values"
WHITESPACE " "
ROW_LIST
ROW
L_PAREN "("
LITERAL
INT_NUMBER "1"
R_PAREN ")"
COMMA ","
WHITESPACE " "
ROW
L_PAREN "("
LITERAL
INT_NUMBER "2"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- insert"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
INSERT
INSERT_KW "insert"
WHITESPACE " "
INTO_KW "into"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
WHITESPACE " "
VALUES
VALUES_KW "values"
WHITESPACE " "
ROW_LIST
ROW
L_PAREN "("
LITERAL
INT_NUMBER "1"
COMMA ","
WHITESPACE " "
LITERAL
INT_NUMBER "2"
R_PAREN ")"
COMMA ","
WHITESPACE " "
ROW
L_PAREN "("
LITERAL
INT_NUMBER "3"
COMMA ","
WHITESPACE " "
LITERAL
INT_NUMBER "4"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- update"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
UPDATE
UPDATE_KW "update"
WHITESPACE " "
RELATION_NAME
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
WHITESPACE " "
SET_CLAUSE
SET_KW "set"
WHITESPACE " "
SET_COLUMN_LIST
SET_SINGLE_COLUMN
COLUMN
NAME_REF
IDENT "a"
WHITESPACE " "
EQ "="
WHITESPACE " "
SET_EXPR
LITERAL
INT_NUMBER "1"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "where"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "a"
WHITESPACE " "
R_ANGLE ">"
WHITESPACE " "
LITERAL
INT_NUMBER "10"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- delete"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
DELETE
DELETE_KW "delete"
WHITESPACE " "
FROM_KW "from"
WHITESPACE " "
RELATION_NAME
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "where"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "x"
WHITESPACE " "
R_ANGLE ">"
WHITESPACE " "
LITERAL
INT_NUMBER "1"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- merge"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
MERGE
MERGE_KW "merge"
WHITESPACE " "
INTO_KW "into"
WHITESPACE " "
RELATION_NAME
PATH
PATH_SEGMENT
NAME_REF
IDENT "t"
WHITESPACE "\n "
USING_ON_CLAUSE
USING_KW "using"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "u"
WHITESPACE "\n "
ON_CLAUSE
ON_KW "on"
WHITESPACE " "
BIN_EXPR
FIELD_EXPR
NAME_REF
IDENT "t"
DOT "."
NAME_REF
IDENT "id"
WHITESPACE " "
EQ "="
WHITESPACE " "
FIELD_EXPR
NAME_REF
IDENT "u"
DOT "."
NAME_REF
IDENT "id"
WHITESPACE "\n "
MERGE_WHEN_MATCHED
WHEN_KW "when"
WHITESPACE " "
MATCHED_KW "matched"
WHITESPACE " "
THEN_KW "then"
WHITESPACE " \n "
MERGE_DO_NOTHING
DO_KW "do"
WHITESPACE " "
NOTHING_KW "nothing"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- execute"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
EXECUTE
EXECUTE_KW "execute"
WHITESPACE " "
NAME_REF
IDENT "foo"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- declare"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
NAME
IDENT "c"
WHITESPACE " "
CURSOR_KW "cursor"
WHITESPACE " "
FOR_KW "for"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- create table as"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
CREATE_TABLE_AS
CREATE_KW "create"
WHITESPACE " "
TABLE_KW "table"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "t"
WHITESPACE " "
AS_KW "as"
WHITESPACE "\n "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "from"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "u"
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "where"
WHITESPACE " "
BIN_EXPR
NAME_REF
IDENT "c"
WHITESPACE " "
GTEQ ">="
WHITESPACE " "
NAME_REF
IDENT "b"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- create materialized view"
WHITESPACE "\n"
EXPLAIN
EXPLAIN_KW "explain"
WHITESPACE " "
CREATE_MATERIALIZED_VIEW
CREATE_KW "create"
WHITESPACE " "
MATERIALIZED_KW "materialized"
WHITESPACE " "
VIEW_KW "view"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "t"
WHITESPACE "\n "
AS_KW "as"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
SEMICOLON ";"
WHITESPACE "\n"