---
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 "-- field selection can't be applied directly to a literal"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
FIELD_EXPR
LITERAL
INT_NUMBER "1"
WHITESPACE " "
DOT "."
NAME_REF
IDENT "x"
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"
COMMENT "-- operators cannot be field names"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
BIN_EXPR
FIELD_EXPR
NAME_REF
IDENT "x"
DOT "."
L_ANGLE "<"
WHITESPACE " "
ERROR
FROM_KW "from"
WHITESPACE " "
AS_NAME
COLUMN_NAME
IDENT "t"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- type modifiers require a string literal"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
TIMESTAMP_KW "timestamp"
WHITESPACE " "
WITH_TIMEZONE
WITH_KW "with"
WHITESPACE " "
TIME_KW "time"
WHITESPACE " "
ZONE_KW "zone"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
CALL_EXPR
NAME_REF
TIME_KW "time"
WHITESPACE " "
WITH_TIMEZONE
WITH_KW "with"
WHITESPACE " "
TIME_KW "time"
WHITESPACE " "
ZONE_KW "zone"
WHITESPACE " "
ARG_LIST
L_PAREN "("
ARG
LITERAL
STRING "'04:05:06+08'"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
INTERVAL_KW "interval"
WHITESPACE " "
INTERVAL_MONTH
MONTH_KW "month"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
BIT_KW "bit"
WHITESPACE " "
VARYING_KW "varying"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
NATIONAL_KW "national"
WHITESPACE " "
CHARACTER_KW "character"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
DOUBLE_KW "double"
WHITESPACE " "
PRECISION_KW "precision"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
CHARACTER_KW "character"
WHITESPACE " "
VARYING_KW "varying"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- timestamp and time precision requires an unsigned integer"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
CAST_EXPR
LITERAL
STRING "''"
COLON_COLON
COLON ":"
COLON ":"
TIMESTAMP_TYPE
TIMESTAMP_KW "timestamp"
L_PAREN "("
ERROR
LITERAL
NUMERIC_NUMBER "1.5"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
CAST_EXPR
LITERAL
STRING "''"
COLON_COLON
COLON ":"
COLON ":"
TIME_TYPE
TIME_KW "time"
L_PAREN "("
ERROR
PREFIX_EXPR
MINUS "-"
LITERAL
INT_NUMBER "1"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
CAST_EXPR
TIMESTAMP_TYPE
TIMESTAMP_KW "timestamp"
L_PAREN "("
ERROR
NAME_REF
IDENT "foo"
R_PAREN ")"
WHITESPACE " "
LITERAL
STRING "''"
SEMICOLON ";"
WHITESPACE "\n"
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
TARGET_LIST
TARGET
CAST_EXPR
TIME_TYPE
TIME_KW "time"
L_PAREN "("
ERROR
R_PAREN ")"
WHITESPACE " "
LITERAL
STRING "''"
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]: field selection requires a parenthesized expression
╭▸
38 │ select 1 .x;
╰╴ ━
error[syntax-error]: expected field name
╭▸
40 │ select 0 . 0e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
40 │ select 0 . 0e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
41 │ select t . 0e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
41 │ select t . 0e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
42 │ select 1 . 2e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
42 │ select 1 . 2e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
43 │ select 0 . 1e5 ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
44 │ select 0 . .5 ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
45 │ select 1 . 2 . 3e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
45 │ select 1 . 2 . 3e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
45 │ select 1 . 2 . 3e ;
╰╴ ━
error[syntax-error]: expected field name
╭▸
46 │ select (1) . 0e ;
╰╴ ━
error[syntax-error]: Missing digits after the exponent symbol
╭▸
46 │ select (1) . 0e ;
╰╴ ━
error[syntax-error]: expected field name, got L_ANGLE
╭▸
48 │ select x.< from t;
╰╴ ━
error[syntax-error]: expected an expression, found FROM_KW
╭▸
48 │ select x.< from t;
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
51 │ select timestamp with time zone;
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
52 │ select time with time zone ('04:05:06+08');
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
53 │ select interval month;
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
54 │ select bit varying;
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
55 │ select national character;
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
56 │ select double precision;
╰╴ ━
error[syntax-error]: type modifiers require a string literal
╭▸
57 │ select character varying;
╰╴ ━
error[syntax-error]: expected unsigned integer literal
╭▸
60 │ select ''::timestamp(1.5);
╰╴ ━
error[syntax-error]: expected unsigned integer literal
╭▸
61 │ select ''::time(-1);
╰╴ ━
error[syntax-error]: expected unsigned integer literal
╭▸
62 │ select timestamp(foo) '';
╰╴ ━
error[syntax-error]: expected unsigned integer literal
╭▸
63 │ select time() '';
╰╴ ━
error[syntax-error]: expected an expression, found R_PAREN
╭▸
63 │ select time() '';
╰╴ ━