---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/err/select_literal.sql
---
SOURCE_FILE
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "123abc"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0x0o"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "0.a"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "0.0a"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER ".0a"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "0.0e1a"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "0.0e"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
BIN_EXPR
LITERAL
NUMERIC_NUMBER "0.0e"
PLUS "+"
NAME_REF
IDENT "a"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
POSITIONAL_PARAM "$1a"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0b"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1b"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0b0x"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0o"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1o"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0o0x"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0x"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1x"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0x0y"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0o999"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0o7889"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0b234"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "0b101_010_"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "100_"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "100__000"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
IDENT "_1_000"
TARGET
LITERAL
NUMERIC_NUMBER ".5"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
INT_NUMBER "1_000_"
TARGET
LITERAL
NUMERIC_NUMBER ".5"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "1_000._5"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "1_000.5_"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
NUMERIC_NUMBER "1_000.5e_1"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
POSITIONAL_PARAM "$0_1"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
POSITIONAL_PARAM "$2147483648"
SEMICOLON ";"
WHITESPACE "\n"
COMMENT "-- empty placeholder"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
POSITIONAL_PARAM "$"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
LITERAL
POSITIONAL_PARAM "$0111111111111111111111111111111111111111111111111111"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
IDENT "\"\""
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "SELECT"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
IDENT "U&\"\""
SEMICOLON ";"
WHITESPACE "\n"
COMMENT "-- numeric field accesses used to panic in some cases"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
LITERAL
INT_NUMBER "0"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER "0e"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
NAME_REF
IDENT "t"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER "0e"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
LITERAL
INT_NUMBER "1"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER "2e"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
LITERAL
INT_NUMBER "0"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER "1e5"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
LITERAL
INT_NUMBER "0"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER ".5"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
FIELD_EXPR
LITERAL
INT_NUMBER "1"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
INT_NUMBER "2"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER "3e"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
PAREN_EXPR
L_PAREN "("
LITERAL
INT_NUMBER "1"
R_PAREN ")"
WHITESPACE " "
DOT "."
WHITESPACE " "
ERROR
NUMERIC_NUMBER "0e"
WHITESPACE " "
SEMICOLON ";"
WHITESPACE "\n"
---
error[syntax-error]: trailing junk after numeric literal
╭▸
1 │ SELECT 123abc;
╰╴ ━━━
error[syntax-error]: trailing junk after numeric literal
╭▸
2 │ SELECT 0x0o;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
3 │ SELECT 0.a;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
4 │ SELECT 0.0a;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
5 │ SELECT .0a;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
6 │ SELECT 0.0e1a;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
7 │ SELECT 0.0e;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
8 │ SELECT 0.0e+a;
╰╴ ━
error[syntax-error]: trailing junk after positional parameter
╭▸
9 │ SELECT $1a;
╰╴ ━
error[syntax-error]: Missing digits after the integer base prefix
╭▸
10 │ SELECT 0b;
╰╴ ━━
error[syntax-error]: trailing junk after numeric literal
╭▸
11 │ SELECT 1b;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
12 │ SELECT 0b0x;
╰╴ ━
error[syntax-error]: Missing digits after the integer base prefix
╭▸
13 │ SELECT 0o;
╰╴ ━━
error[syntax-error]: trailing junk after numeric literal
╭▸
14 │ SELECT 1o;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
15 │ SELECT 0o0x;
╰╴ ━
error[syntax-error]: Missing digits after the integer base prefix
╭▸
16 │ SELECT 0x;
╰╴ ━━
error[syntax-error]: trailing junk after numeric literal
╭▸
17 │ SELECT 1x;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
18 │ SELECT 0x0y;
╰╴ ━
error[syntax-error]: invalid digit for a base 8 literal
╭▸
19 │ SELECT 0o999;
╰╴ ━
error[syntax-error]: invalid digit for a base 8 literal
╭▸
19 │ SELECT 0o999;
╰╴ ━
error[syntax-error]: invalid digit for a base 8 literal
╭▸
19 │ SELECT 0o999;
╰╴ ━
error[syntax-error]: invalid digit for a base 8 literal
╭▸
20 │ SELECT 0o7889;
╰╴ ━
error[syntax-error]: invalid digit for a base 8 literal
╭▸
20 │ SELECT 0o7889;
╰╴ ━
error[syntax-error]: invalid digit for a base 8 literal
╭▸
20 │ SELECT 0o7889;
╰╴ ━
error[syntax-error]: invalid digit for a base 2 literal
╭▸
21 │ SELECT 0b234;
╰╴ ━
error[syntax-error]: invalid digit for a base 2 literal
╭▸
21 │ SELECT 0b234;
╰╴ ━
error[syntax-error]: invalid digit for a base 2 literal
╭▸
21 │ SELECT 0b234;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
22 │ SELECT 0b101_010_;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
23 │ SELECT 100_;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
24 │ SELECT 100__000;
╰╴ ━━━━━
error[syntax-error]: missing comma
╭▸
25 │ SELECT _1_000.5;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
26 │ SELECT 1_000_.5;
╰╴ ━
error[syntax-error]: missing comma
╭▸
26 │ SELECT 1_000_.5;
╰╴ ━
error[syntax-error]: trailing junk after numeric literal
╭▸
27 │ SELECT 1_000._5;
╰╴ ━━
error[syntax-error]: trailing junk after numeric literal
╭▸
28 │ SELECT 1_000.5_;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
29 │ SELECT 1_000.5e_1;
╰╴ ━
error[syntax-error]: trailing junk after positional parameter
╭▸
30 │ SELECT $0_1;
╰╴ ━━
error[syntax-error]: parameter number too large
╭▸
31 │ SELECT $2147483648;
╰╴ ━━━━━━━━━━━
error[syntax-error]: missing parameter number
╭▸
33 │ SELECT $;
╰╴ ━
error[syntax-error]: parameter number too large
╭▸
34 │ SELECT $0111111111111111111111111111111111111111111111111111;
╰╴ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
error[syntax-error]: empty delimited identifier
╭▸
35 │ SELECT "";
╰╴ ━━
error[syntax-error]: empty delimited identifier
╭▸
36 │ SELECT U&"";
╰╴ ━━━━
error[syntax-error]: expected field name
╭▸
38 │ select 0 . 0e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
38 │ select 0 . 0e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
39 │ select t . 0e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
39 │ select t . 0e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
40 │ select 1 . 2e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
40 │ select 1 . 2e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
41 │ select 0 . 1e5 ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
42 │ select 0 . .5 ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
43 │ select 1 . 2 . 3e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
43 │ select 1 . 2 . 3e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
43 │ select 1 . 2 . 3e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
44 │ select (1) . 0e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
44 │ select (1) . 0e ;
╰╴ ━