---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/create_table_pg17.sql
---
SOURCE_FILE
CREATE_TABLE
COMMENT "-- match partial not implemented yet"
WHITESPACE "\n"
CREATE_KW "create"
WHITESPACE " "
TABLE_KW "table"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "t"
WHITESPACE " "
TABLE_ARG_LIST
L_PAREN "("
WHITESPACE "\n "
COLUMN
NAME
IDENT "a"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INT_KW "int"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "b"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INT_KW "int"
WHITESPACE " "
REFERENCES_CONSTRAINT
REFERENCES_KW "references"
WHITESPACE " "
PATH
PATH
PATH_SEGMENT
NAME_REF
IDENT "foo"
DOT "."
PATH_SEGMENT
NAME_REF
IDENT "bar"
WHITESPACE " "
L_PAREN "("
WHITESPACE " "
NAME_REF
IDENT "bar"
WHITESPACE " "
R_PAREN ")"
WHITESPACE " "
MATCH_PARTIAL
MATCH_KW "match"
WHITESPACE " "
PARTIAL_KW "partial"
WHITESPACE "\n "
ON_DELETE_ACTION
ON_KW "on"
WHITESPACE " "
DELETE_KW "delete"
WHITESPACE " "
NO_ACTION
NO_KW "no"
WHITESPACE " "
ACTION_KW "action"
WHITESPACE "\n "
ON_UPDATE_ACTION
ON_KW "on"
WHITESPACE " "
UPDATE_KW "update"
WHITESPACE " "
SET_NULL_COLUMNS
SET_KW "set"
WHITESPACE " "
NULL_KW "null"
WHITESPACE " "
COLUMN_LIST
L_PAREN "("
WHITESPACE " "
COLUMN
NAME_REF
IDENT "a"
COMMA ","
WHITESPACE " "
COLUMN
NAME_REF
IDENT "b"
WHITESPACE " "
R_PAREN ")"
WHITESPACE "\n"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n\n"
CREATE_TABLE
COMMENT "-- temporal_foreign_key"
WHITESPACE "\n"
CREATE_KW "CREATE"
WHITESPACE " "
TABLE_KW "TABLE"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "orders"
WHITESPACE " "
TABLE_ARG_LIST
L_PAREN "("
WHITESPACE "\n "
COLUMN
NAME
IDENT "id"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "int8"
WHITESPACE " "
GENERATED_CONSTRAINT
GENERATED_KW "generated"
WHITESPACE " "
BY_KW "BY"
WHITESPACE " "
DEFAULT_KW "DEFAULT"
WHITESPACE " "
AS_KW "AS"
WHITESPACE " "
IDENTITY_KW "IDENTITY"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "address_id"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "int8"
WHITESPACE " "
NOT_NULL_CONSTRAINT
NOT_KW "NOT"
WHITESPACE " "
NULL_KW "NULL"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "address_valid_at"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "tstzrange"
WHITESPACE " "
NOT_NULL_CONSTRAINT
NOT_KW "NOT"
WHITESPACE " "
NULL_KW "NULL"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
CONTENT_KW "content"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
FOREIGN_KEY_CONSTRAINT
CONSTRAINT_NAME
CONSTRAINT_KW "CONSTRAINT"
WHITESPACE " "
NAME
IDENT "order_address"
WHITESPACE " "
FOREIGN_KW "FOREIGN"
WHITESPACE " "
KEY_KW "KEY"
WHITESPACE " "
COLUMN_LIST
L_PAREN "("
WHITESPACE " "
COLUMN
NAME_REF
IDENT "address_id"
COMMA ","
WHITESPACE " "
COLUMN
PERIOD_KW "PERIOD"
WHITESPACE " "
NAME_REF
IDENT "address_valid_at"
WHITESPACE " "
R_PAREN ")"
WHITESPACE " "
REFERENCES_KW "REFERENCES"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME_REF
IDENT "addresses"
WHITESPACE " "
COLUMN_LIST
L_PAREN "("
WHITESPACE " "
COLUMN
NAME_REF
IDENT "id"
COMMA ","
WHITESPACE " "
COLUMN
PERIOD_KW "PERIOD"
WHITESPACE " "
NAME_REF
IDENT "valid_range"
WHITESPACE " "
R_PAREN ")"
WHITESPACE "\n"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
CREATE_TABLE
COMMENT "-- unique_constraint_without_overlaps"
WHITESPACE "\n"
CREATE_KW "create"
WHITESPACE " "
TABLE_KW "table"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "t"
WHITESPACE " "
TABLE_ARG_LIST
L_PAREN "("
WHITESPACE "\n "
COLUMN
NAME
IDENT "a"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
INT_KW "int"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "b"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
UNIQUE_CONSTRAINT
UNIQUE_KW "unique"
WHITESPACE " "
COLUMN_LIST
L_PAREN "("
COLUMN
NAME_REF
IDENT "a"
WHITESPACE " "
WITHOUT_KW "without"
WHITESPACE " "
OVERLAPS_KW "overlaps"
R_PAREN ")"
WHITESPACE "\n"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n\n"
CREATE_TABLE
COMMENT "-- primary key without overlaps"
WHITESPACE "\n"
CREATE_KW "create"
WHITESPACE " "
TABLE_KW "table"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "t"
WHITESPACE " "
TABLE_ARG_LIST
L_PAREN "("
WHITESPACE "\n "
COLUMN
NAME
IDENT "a"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "b"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "c"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
TEXT_KW "text"
COMMA ","
WHITESPACE "\n "
PRIMARY_KEY_CONSTRAINT
CONSTRAINT_NAME
CONSTRAINT_KW "constraint"
WHITESPACE " "
NAME
IDENT "pk"
WHITESPACE " \n "
PRIMARY_KW "primary"
WHITESPACE " "
KEY_KW "key"
WHITESPACE " "
COLUMN_LIST
L_PAREN "("
COLUMN
NAME_REF
IDENT "a"
COMMA ","
WHITESPACE " "
COLUMN
NAME_REF
IDENT "b"
COMMA ","
WHITESPACE " "
COLUMN
NAME_REF
IDENT "c"
WHITESPACE " "
WITHOUT_KW "without"
WHITESPACE " "
OVERLAPS_KW "overlaps"
R_PAREN ")"
WHITESPACE "\n"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
CREATE_TABLE
COMMENT "-- temporal_primary_key"
WHITESPACE "\n"
CREATE_KW "CREATE"
WHITESPACE " "
TABLE_KW "TABLE"
WHITESPACE " "
PATH
PATH_SEGMENT
NAME
IDENT "addresses"
WHITESPACE " "
TABLE_ARG_LIST
L_PAREN "("
WHITESPACE "\n "
COLUMN
NAME
IDENT "id"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "int8"
WHITESPACE " "
GENERATED_CONSTRAINT
GENERATED_KW "generated"
WHITESPACE " "
BY_KW "BY"
WHITESPACE " "
DEFAULT_KW "DEFAULT"
WHITESPACE " "
AS_KW "AS"
WHITESPACE " "
IDENTITY_KW "IDENTITY"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "valid_range"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "tstzrange"
WHITESPACE " "
NOT_NULL_CONSTRAINT
NOT_KW "NOT"
WHITESPACE " "
NULL_KW "NULL"
WHITESPACE " "
DEFAULT_CONSTRAINT
DEFAULT_KW "DEFAULT"
WHITESPACE " "
CALL_EXPR
NAME_REF
IDENT "tstzrange"
ARG_LIST
L_PAREN "("
CALL_EXPR
NAME_REF
IDENT "now"
ARG_LIST
L_PAREN "("
R_PAREN ")"
COMMA ","
WHITESPACE " "
LITERAL
STRING "'infinity'"
COMMA ","
WHITESPACE " "
LITERAL
STRING "'[)'"
R_PAREN ")"
COMMA ","
WHITESPACE "\n "
COLUMN
NAME
IDENT "recipient"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
TEXT_KW "text"
WHITESPACE " "
NOT_NULL_CONSTRAINT
NOT_KW "NOT"
WHITESPACE " "
NULL_KW "NULL"
COMMA ","
WHITESPACE "\n "
PRIMARY_KEY_CONSTRAINT
PRIMARY_KW "PRIMARY"
WHITESPACE " "
KEY_KW "KEY"
WHITESPACE " "
COLUMN_LIST
L_PAREN "("
COLUMN
NAME_REF
IDENT "id"
COMMA ","
WHITESPACE " "
COLUMN
NAME_REF
IDENT "valid_range"
WHITESPACE " "
WITHOUT_KW "WITHOUT"
WHITESPACE " "
OVERLAPS_KW "OVERLAPS"
R_PAREN ")"
WHITESPACE "\n"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"