Files
email-tracker/external/duckdb/test/sql/function/autocomplete/expressions.test
2025-10-24 19:21:19 -05:00

102 lines
1.9 KiB
SQL

# name: test/sql/function/autocomplete/expressions.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
# literal
query II
FROM sql_auto_complete('SELECT NULL FR') LIMIT 1;
----
FROM 12
# cast
query II
FROM sql_auto_complete('SELECT CAST(a AS INTE') LIMIT 1;
----
INTEGER 17
query II
FROM sql_auto_complete('SELECT a::INTE') LIMIT 1;
----
INTEGER 10
# distinct
query II
FROM sql_auto_complete('SELECT col IS DIST') LIMIT 1;
----
DISTINCT 14
query II
FROM sql_auto_complete('SELECT col IS DISTINCT FRO') LIMIT 1;
----
FROM 23
# collate
query II
FROM sql_auto_complete('SELECT col COLL') LIMIT 1;
----
COLLATE 11
# between
query II
FROM sql_auto_complete('SELECT col BETW') LIMIT 1;
----
BETWEEN 11
# case
query II
FROM sql_auto_complete('SELECT CASE WH') LIMIT 1;
----
WHEN 12
# functions
query II
FROM sql_auto_complete('SELECT sum(42) IS NOT NUL') LIMIT 1;
----
NULL 22
query II
FROM sql_auto_complete('SELECT sum(disti') LIMIT 1;
----
distinct 11
query II
FROM sql_auto_complete('SELECT sum(a, b orde') LIMIT 1;
----
order 16
query II
FROM sql_auto_complete('SELECT sum(a) filt') LIMIT 1;
----
filter 14
query II
FROM sql_auto_complete('SELECT CASE WHEN a=1 THEN 1 WHEN a=2 THEN 2 WHEN a=3 THEN 3 END FR') LIMIT 1;
----
FROM 64
# slice
query II
FROM sql_auto_complete('SELECT col[1:2] FR') LIMIT 1;
----
FROM 16
# test parsing of many expressions
query II
FROM sql_auto_complete('SELECT col BETWEEN 1 AND 2, col > col2, col AND (col2 OR col3), col4 IS NOT DISTINCT FROM col5, col6 IN (SELECT * FROM tbl) FR') LIMIT 1;
----
FROM 124
# literals
query II
FROM sql_auto_complete('SELECT 42, 83.5, -125, 1.25e375, [1, 2, 3, 4], {''name'': 42}, ARRAY[col, col2 + 1] FR') LIMIT 1;
----
FROM 82
# complex types
query II
FROM sql_auto_complete('SELECT a::DECIMAL(42), b::INT[3], []::INT[][][], d::ROW(i INT[], c ROW(d INTE') LIMIT 1;
----
INTEGER 73