---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/declare.sql
---
SOURCE_FILE
COMMENT "-- pg_docs"
WHITESPACE "\n"
DECLARE
DECLARE_KW "DECLARE"
WHITESPACE " "
CURSOR
IDENT "cursor_name"
WHITESPACE " "
CURSOR_KW "CURSOR"
WHITESPACE " "
FOR_KW "FOR"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
STAR "*"
WHITESPACE " "
FROM_CLAUSE
FROM_KW "FROM"
WHITESPACE " "
RELATION_FROM_ITEM
RELATION_NAME_REF
PATH_REF
PATH_SEGMENT_REF
NAME_REF
IDENT "t"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- full"
WHITESPACE "\n"
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
CURSOR
IDENT "c"
WHITESPACE " "
BINARY_KW "binary"
WHITESPACE " "
INSENSITIVE_KW "insensitive"
WHITESPACE " "
NO_KW "no"
WHITESPACE " "
SCROLL_KW "scroll"
WHITESPACE " "
CURSOR_KW "cursor"
WHITESPACE " "
WITHOUT_KW "without"
WHITESPACE " "
HOLD_KW "hold"
WHITESPACE " "
FOR_KW "for"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
SEMICOLON ";"
WHITESPACE "\n\n"
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
CURSOR
IDENT "c"
WHITESPACE " \n"
BINARY_KW "binary"
WHITESPACE " \n"
ASENSITIVE_KW "asensitive"
WHITESPACE " \n"
SCROLL_KW "scroll"
WHITESPACE " \n"
CURSOR_KW "cursor"
WHITESPACE " \n "
WITH_KW "with"
WHITESPACE " "
HOLD_KW "hold"
WHITESPACE " \n "
FOR_KW "for"
WHITESPACE " "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "2"
SEMICOLON ";"
WHITESPACE "\n\n"
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
CURSOR
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 "-- parenthesized / compound queries"
WHITESPACE "\n"
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
CURSOR
IDENT "c"
WHITESPACE " "
CURSOR_KW "cursor"
WHITESPACE " "
FOR_KW "for"
WHITESPACE " "
PAREN_SELECT
L_PAREN "("
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
CURSOR
IDENT "c"
WHITESPACE " "
CURSOR_KW "cursor"
WHITESPACE " "
FOR_KW "for"
WHITESPACE " "
PAREN_SELECT
L_PAREN "("
COMPOUND_SELECT
VALUES
VALUES_KW "values"
WHITESPACE " "
ROW_LIST
ROW
L_PAREN "("
LITERAL
INT_NUMBER "1"
R_PAREN ")"
WHITESPACE " "
UNION_KW "union"
WHITESPACE " "
VALUES
VALUES_KW "values"
WHITESPACE " "
ROW_LIST
ROW
L_PAREN "("
LITERAL
INT_NUMBER "2"
R_PAREN ")"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
DECLARE
DECLARE_KW "declare"
WHITESPACE " "
CURSOR
IDENT "c"
WHITESPACE " "
CURSOR_KW "cursor"
WHITESPACE " "
FOR_KW "for"
WHITESPACE " "
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 ")"
SEMICOLON ";"
WHITESPACE "\n\n"