should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
# name: test/sql/function/autocomplete/alter_table.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
statement ok
CREATE TABLE my_table(first_column bigint);
query II
FROM sql_auto_complete('ALTER TABLE my_table DROP COLUMN fi') LIMIT 1;
----
first_column 33
query II
FROM sql_auto_complete('ALTER TABLE my_table ALTER COLUMN fi') LIMIT 1;
----
first_column 34
query II
FROM sql_auto_complete('ALTER TABLE my_table RENAME COLUMN fi') LIMIT 1;
----
first_column 35

View File

@@ -0,0 +1,28 @@
# name: test/sql/function/autocomplete/copy.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('COP') LIMIT 1;
----
COPY 0
query II
FROM sql_auto_complete('COPY tbl FRO') LIMIT 1;
----
FROM 9
query II
FROM sql_auto_complete('COPY tbl FROM ''file.csv'' HEAD') LIMIT 1;
----
HEADER 25
statement ok
CREATE TABLE my_table(my_column INTEGER);
query II
FROM sql_auto_complete('COPY my_') LIMIT 1;
----
my_table 5

View File

@@ -0,0 +1,35 @@
# name: test/sql/function/autocomplete/create_function.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('CREATE MA') LIMIT 1;
----
MACRO 7
query II
FROM sql_auto_complete('CREATE F') LIMIT 1;
----
FUNCTION 7
query II
FROM sql_auto_complete('CREATE MACRO name(a) A') LIMIT 1;
----
AS 21
query II
FROM sql_auto_complete('CREATE MACRO name(a) AS a+1, (b) A') LIMIT 1;
----
AS 33
query II
FROM sql_auto_complete('CREATE MACRO name (a) AS TA') LIMIT 1;
----
TABLE 25
query II
FROM sql_auto_complete('CREATE MACRO name (a) AS TABLE SEL') LIMIT 1;
----
SELECT 31

View File

@@ -0,0 +1,35 @@
# name: test/sql/function/autocomplete/create_schema.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('CREATE SCH') LIMIT 1;
----
SCHEMA 7
query II
FROM sql_auto_complete('CREATE SCHEMA I') LIMIT 1;
----
IF 14
query II
FROM sql_auto_complete('CREATE SCHEMA IF NO') LIMIT 1;
----
NOT 17
query II
FROM sql_auto_complete('CREATE SCHEMA IF NOT EX') LIMIT 1;
----
EXISTS 21
# attached database
# suggest a catalog
statement ok
ATTACH ':memory:' AS attached_in_memory;
query II
FROM sql_auto_complete('CREATE SCHEMA attac') LIMIT 1;
----
attached_in_memory. 14

View File

@@ -0,0 +1,3 @@
# name: test/sql/function/autocomplete/create_secret.test
# group: [autocomplete]

View File

@@ -0,0 +1,20 @@
# name: test/sql/function/autocomplete/create_sequence.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('CREATE SEQ') LIMIT 1;
----
SEQUENCE 7
query II
FROM sql_auto_complete('CREATE SEQUENCE seq CYC') LIMIT 1;
----
CYCLE 20
query II
FROM sql_auto_complete('CREATE SEQUENCE seq INC') LIMIT 1;
----
INCREMENT 20

View File

@@ -0,0 +1,129 @@
# name: test/sql/function/autocomplete/create_table.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
# CREATE
query II
FROM sql_auto_complete('CR') LIMIT 1;
----
CREATE 0
# match case
query II
FROM sql_auto_complete('cr') LIMIT 1;
----
create 0
query II
FROM sql_auto_complete('CREATE TA') LIMIT 1;
----
TABLE 7
query II
FROM sql_auto_complete('CREATE T') LIMIT 1;
----
TABLE 7
query II
FROM sql_auto_complete('CREATE OR RE') LIMIT 1;
----
REPLACE 10
query II
FROM sql_auto_complete('create ta') LIMIT 1;
----
table 7
# suggest a type
query II
FROM sql_auto_complete('create table tbl(i INTE') LIMIT 1;
----
INTEGER 19
# suggest a type in a list
query II
FROM sql_auto_complete('create table tbl(i INTEGER, j INTE') LIMIT 1;
----
INTEGER 30
# suggest a constraint
query II
FROM sql_auto_complete('create table tbl(i INTEGER PRI') LIMIT 1;
----
PRIMARY 27
query II
FROM sql_auto_complete('create table tbl(i INTEGER PRIMARY KE') LIMIT 1;
----
KEY 35
query II
FROM sql_auto_complete('create table tbl(i INTEGER UNIQ') LIMIT 1;
----
UNIQUE 27
query II
FROM sql_auto_complete('create table tbl(i INTEGER UNIQUE NO') LIMIT 1;
----
NOT 34
query II
FROM sql_auto_complete('create table tbl(i INTEGER UNIQUE NOT N') LIMIT 1;
----
NULL 38
# top-level constraints
query II
FROM sql_auto_complete('create table tbl(i INTEGER, PRI') LIMIT 1;
----
PRIMARY 28
statement ok
CREATE SCHEMA abcdefgh;
# suggest a schema name
query II
FROM sql_auto_complete('CREATE TABLE abcd') LIMIT 1;
----
abcdefgh. 13
query II
FROM sql_auto_complete('CREATE TABLE abcdefgh.') LIMIT 1;
----
. 21
# we suggest the original schema
query II
FROM sql_auto_complete('CREATE TABLE ABCD') LIMIT 1;
----
abcdefgh. 13
# what if the schema is a keyword?
statement ok
CREATE SCHEMA "SCHEMA";
query II
FROM sql_auto_complete('CREATE TABLE SC') LIMIT 1;
----
"SCHEMA". 13
# suggest a catalog
statement ok
ATTACH ':memory:' AS attached_in_memory;
query II
FROM sql_auto_complete('CREATE TABLE attac') LIMIT 1;
----
attached_in_memory. 13
query II
FROM sql_auto_complete('CREATE TABLE attached_in_memory.a') LIMIT 1;
----
abcdefgh. 32
statement error
FROM sql_auto_complete(NULL);
----
Binder Error: sql_auto_complete first parameter cannot be NULL

View File

@@ -0,0 +1,25 @@
# name: test/sql/function/autocomplete/create_type.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('CREATE TY') LIMIT 1;
----
TYPE 7
query II
FROM sql_auto_complete('CREATE TYPE my_type AS ENU') LIMIT 1;
----
ENUM 23
query II
FROM sql_auto_complete('CREATE TYPE my_type AS TIME WITH TI') LIMIT 1;
----
TIME 33
query II
FROM sql_auto_complete('CREATE TYPE my_type AS ROW(ts TIMESTAMP WITH TIME ZON') LIMIT 1;
----
ZONE 50

View File

@@ -0,0 +1,54 @@
# name: test/sql/function/autocomplete/drop.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('DRO') LIMIT 1;
----
DROP 0
query II
FROM sql_auto_complete('DROP TA') LIMIT 1;
----
TABLE 5
query II
FROM sql_auto_complete('DROP VI') LIMIT 1;
----
VIEW 5
query II
FROM sql_auto_complete('DROP TABLE IF EX') LIMIT 1;
----
EXISTS 14
query II
FROM sql_auto_complete('DROP TABLE tbl CAS') LIMIT 1;
----
CASCADE 15
statement ok
CREATE TABLE my_table(my_column INTEGER);
query II
FROM sql_auto_complete('DROP TABLE my_') LIMIT 1;
----
my_table 11
statement ok
CREATE SCHEMA my_schema;
statement ok
CREATE TABLE my_schema.table_in_schema(my_column INTEGER)
query II
FROM sql_auto_complete('DROP TABLE my_s') LIMIT 1;
----
my_schema. 11
query II
FROM sql_auto_complete('DROP TABLE my_schema.t') LIMIT 1;
----
table_in_schema 21

View File

@@ -0,0 +1,101 @@
# 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

View File

@@ -0,0 +1,16 @@
# name: test/sql/function/autocomplete/identical_schema_table.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
statement ok
CREATE SCHEMA my_catalog_entry;
statement ok
CREATE TABLE my_catalog_entry(i INT);
query II
FROM sql_auto_complete('FROM my_c') LIMIT 1;
----
my_catalog_entry 5

View File

@@ -0,0 +1,41 @@
# name: test/sql/function/autocomplete/insert_into.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('INS') LIMIT 1;
----
INSERT 0
query II
FROM sql_auto_complete('INSERT IN') LIMIT 1;
----
INTO 7
query II
FROM sql_auto_complete('INSERT INTO tbl VAL') LIMIT 1;
----
VALUES 16
query II
FROM sql_auto_complete('INSERT INTO tbl(c1, c2) VAL') LIMIT 1;
----
VALUES 24
query II
FROM sql_auto_complete('INSERT INTO tbl(c1, c2) SEL') LIMIT 1;
----
SELECT 24
# on conflict actions
query II
FROM sql_auto_complete('INSERT OR IG') LIMIT 1;
----
IGNORE 10
query II
FROM sql_auto_complete('INSERT OR REP') LIMIT 1;
----
REPLACE 10

View File

@@ -0,0 +1,29 @@
# name: test/sql/function/autocomplete/pragma.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
# main keywords
query II
FROM sql_auto_complete('PRAGMA show_t') LIMIT 1;
----
show_tables 7
# main keywords
query II
FROM sql_auto_complete('PRAGMA enable_che') LIMIT 1;
----
enable_checkpoint_on_shutdown 7
# main keywords
query II
FROM sql_auto_complete('PRAGMA disable_che') LIMIT 1;
----
disable_checkpoint_on_shutdown 7
# main keywords
query II
FROM sql_auto_complete('PRAGMA thre') LIMIT 1;
----
threads 7

View File

@@ -0,0 +1,20 @@
# name: test/sql/function/autocomplete/scalar_functions.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('select gam') LIMIT 1;
----
gamma 7
query II
FROM sql_auto_complete('select nexta') LIMIT 1;
----
nextafter 7
query II
FROM sql_auto_complete('select bit_l') LIMIT 1;
----
bit_length 7

View File

@@ -0,0 +1,255 @@
# name: test/sql/function/autocomplete/select.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
# main keywords
query II
FROM sql_auto_complete('SEL') LIMIT 1;
----
SELECT 0
query II
FROM sql_auto_complete('WI') LIMIT 1;
----
WITH 0
query II
FROM sql_auto_complete('SELECT * FR') LIMIT 1;
----
FROM 9
query II
FROM sql_auto_complete('SELECT * FROM tbl WH') LIMIT 1;
----
WHERE 18
query II
FROM sql_auto_complete('SELECT * FROM tbl A') LIMIT 1;
----
AS 18
query II
FROM sql_auto_complete('SELECT * FROM tbl OR') LIMIT 1;
----
ORDER 18
query II
FROM sql_auto_complete('SELECT * FROM tbl ORDER B') LIMIT 1;
----
BY 24
query II
FROM sql_auto_complete('SELECT * FROM tbl ORDER BY AL') LIMIT 1;
----
ALL 27
query II
FROM sql_auto_complete('SELECT * FROM tbl GR') LIMIT 1;
----
GROUP 18
query II
FROM sql_auto_complete('SELECT * FROM tbl GROUP B') LIMIT 1;
----
BY 24
query II
FROM sql_auto_complete('SELECT * FROM tbl GROUP BY AL') LIMIT 1;
----
ALL 27
query II
FROM sql_auto_complete('SELECT * FROM tbl GROUP BY ALL HAV') LIMIT 1;
----
HAVING 31
query II
FROM sql_auto_complete('SELECT * FROM tbl LIM') LIMIT 1;
----
LIMIT 18
query II
FROM sql_auto_complete('SELECT * FROM tbl LIMIT 5 OF') LIMIT 1;
----
OFFSET 26
# joins
query II
FROM sql_auto_complete('SELECT * FROM tbl INN') LIMIT 1;
----
INNER 18
query II
FROM sql_auto_complete('SELECT * FROM tbl INNER JO') LIMIT 1;
----
JOIN 24
query II
FROM sql_auto_complete('SELECT * FROM tbl JOIN tbl2 USING (i) WH') LIMIT 1;
----
WHERE 38
query II
FROM sql_auto_complete('SELECT * FROM tbl LEF') LIMIT 1;
----
LEFT 18
query II
FROM sql_auto_complete('SELECT * FROM tbl LEFT OUT') LIMIT 1;
----
OUTER 23
query II
FROM sql_auto_complete('SELECT * FROM tbl NAT') LIMIT 1;
----
NATURAL 18
query II
FROM sql_auto_complete('SELECT * FROM tbl NATURAL FU') LIMIT 1;
----
FULL 26
query II
FROM sql_auto_complete('SELECT * FROM tbl NATURAL FULL OUT') LIMIT 1;
----
OUTER 31
query II
FROM sql_auto_complete('SELECT * FROM tbl POS') LIMIT 1;
----
POSITIONAL 18
query II
FROM sql_auto_complete('SELECT * FROM tbl NATURAL JOIN tbl2 WH') LIMIT 1;
----
WHERE 36
query II
FROM sql_auto_complete('SELECT * FROM tbl NATURAL JOIN tbl2 NAT') LIMIT 1;
----
NATURAL 36
query II
FROM sql_auto_complete('SELECT * FROM tbl JOIN tbl2 US') LIMIT 1;
----
USING 28
# cross product
query II
FROM sql_auto_complete('SELECT * FROM tbl, tbl2 WH') LIMIT 1;
----
WHERE 24
query II
FROM sql_auto_complete('SELECT * FROM tbl, tbl2 LEFT OUT') LIMIT 1;
----
OUTER 29
# from first
query II
FROM sql_auto_complete('FR') LIMIT 1;
----
FROM 0
query II
FROM sql_auto_complete('FROM tbl SEL') LIMIT 1;
----
SELECT 9
query II
FROM sql_auto_complete('FROM tbl OR') LIMIT 1;
----
ORDER 9
# set ops
query II
FROM sql_auto_complete('SELECT * FROM tbl UN') LIMIT 1;
----
UNION 18
query II
FROM sql_auto_complete('SELECT * FROM tbl UNION AL') LIMIT 1;
----
ALL 24
query II
FROM sql_auto_complete('SELECT * FROM tbl EX') LIMIT 1;
----
EXCEPT 18
query II
FROM sql_auto_complete('SELECT * FROM tbl INT') LIMIT 1;
----
INTERSECT 18
query II
FROM sql_auto_complete('SELECT * FROM tbl UNION ALL SEL') LIMIT 1;
----
SELECT 28
# qualify
query II
FROM sql_auto_complete('SELECT * FROM tbl QUAL') LIMIT 1;
----
QUALIFY 18
query II
FROM sql_auto_complete('SELECT * FROM tbl QUALIFY row_number() OVER () ORD') LIMIT 1;
----
ORDER 47
# operators with quotes
query II
FROM sql_auto_complete('SELECT col=''world'' FR') LIMIT 1;
----
FROM 19
query II
FROM sql_auto_complete('SELECT col="quoted col2" FR') LIMIT 1;
----
FROM 25
query II
FROM sql_auto_complete('SELECT "quoted col1"="quoted col2" + "quoted col3" FR') LIMIT 1;
----
FROM 51
# quoted identifiers
query II
FROM sql_auto_complete('SELECT ''ORDER'' "WHERE" FR') LIMIT 1;
----
FROM 23
# escaped quoted identifiers
query II
FROM sql_auto_complete('SELECT ''OR''''DER'' "WHE""RE" FR') LIMIT 1;
----
FROM 27
statement ok
CREATE TABLE my_table(my_column INTEGER);
query II
SELECT * FROM sql_auto_complete('SELECT my_') LIMIT 1;
----
my_column 7
query II
SELECT * FROM sql_auto_complete('UP') LIMIT 1;
----
UPDATE 0
query II
SELECT * FROM sql_auto_complete('UPDATE my_table SET m') LIMIT 1;
----
my_column 20
statement ok
CREATE TABLE MyTable(MyColumn Varchar);
query II
SELECT * FROM sql_auto_complete('SELECT My') LIMIT 1;
----
MyColumn 7

View File

@@ -0,0 +1,39 @@
# name: test/sql/function/autocomplete/setting.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
require icu
require no_extension_autoloading "FIXME: ICU is not autoloaded on 'Set timez'"
query II
FROM sql_auto_complete('SET e_directory') LIMIT 1;
----
home_directory 4
query II
from sql_auto_complete('SET timez') LIMIT 1;
----
TimeZone 4
query II
FROM sql_auto_complete('SET memory') LIMIT 1;
----
memory_limit 4
# main keywords
query II
FROM sql_auto_complete('set thr') LIMIT 1;
----
threads 4
# main keywords
query II
FROM sql_auto_complete('set allowe') LIMIT 1;
----
allowed_paths 4

View File

@@ -0,0 +1,34 @@
# name: test/sql/function/autocomplete/show.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('DESCR') LIMIT 1;
----
DESCRIBE 0
statement ok
CREATE TABLE my_table(my_column INTEGER);
query II
FROM sql_auto_complete('SHOW my_') LIMIT 1;
----
my_table 5
statement ok
CREATE SCHEMA my_schema;
statement ok
CREATE TABLE my_schema.table_in_schema(my_column INTEGER)
query II
FROM sql_auto_complete('SHOW my_s') LIMIT 1;
----
my_schema. 5
query II
FROM sql_auto_complete('DESCRIBE my_schema.t') LIMIT 1;
----
table_in_schema 19

View File

@@ -0,0 +1,18 @@
# name: test/sql/function/autocomplete/suggest_file.test
# description: Test sql_auto_complete
# group: [autocomplete]
require notwindows
require autocomplete
# test file auto complete
query II
FROM sql_auto_complete('COPY tbl FROM ''data/parq') LIMIT 1;
----
parquet-testing/ 20
query II
FROM sql_auto_complete('COPY tbl FROM ''data/csv/all_quote') LIMIT 1;
----
all_quotes.csv' 24

View File

@@ -0,0 +1,50 @@
# name: test/sql/function/autocomplete/table_functions.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
query II
FROM sql_auto_complete('call histo') LIMIT 1;
----
histogram 5
query II
FROM sql_auto_complete('call histogram_') LIMIT 1;
----
histogram_values 5
query II
FROM sql_auto_complete('call duckdb_t') LIMIT 1;
----
duckdb_types 5
query II
FROM sql_auto_complete('FROM duckdb_c') LIMIT 1;
----
duckdb_columns 5
query II
FROM sql_auto_complete('call read_cs') LIMIT 1;
----
read_csv 5
query II
FROM sql_auto_complete('FROM read_csv_a') LIMIT 1;
----
read_csv_auto 5
query II
FROM sql_auto_complete('call unnes') LIMIT 1;
----
unnest 5
query II
FROM sql_auto_complete('CALL glo') LIMIT 1;
----
"glob" 5
query II
FROM sql_auto_complete('from ran') LIMIT 1;
----
"range" 5

View File

@@ -0,0 +1,158 @@
# name: test/sql/function/autocomplete/tpch.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
require tpch
# column names
statement ok
CALL dbgen(sf=0);
query II
FROM sql_auto_complete('SELECT l_ord') LIMIT 1;
----
l_orderkey 7
# arithmetic
query II
FROM sql_auto_complete('SELECT 1 + l_ord') LIMIT 1;
----
l_orderkey 11
# function calls
query II
FROM sql_auto_complete('SELECT min(l_ord') LIMIT 1;
----
l_orderkey 11
query II
FROM sql_auto_complete('SELECT min(42, l_ord') LIMIT 1;
----
l_orderkey 15
# like
query II
FROM sql_auto_complete('SELECT ''test_string'' LIKE l_c') LIMIT 1;
----
l_comment 26
query II
FROM sql_auto_complete('SELECT l_orderkey FROM lin') LIMIT 1;
----
lineitem 23
query II
FROM sql_auto_complete('SELECT l_orderkey FROM lineitem, ord') LIMIT 1;
----
orders 33
query II
FROM sql_auto_complete('SELECT l_orderkey FROM lineitem JOIN ord') LIMIT 1;
----
orders 37
query II
FROM sql_auto_complete('SELECT (SELECT SUM(l_orderkey) FROM lineit') LIMIT 1;
----
lineitem 36
query II
FROM sql_auto_complete('SELECT * FROM (FROM lineit') LIMIT 1;
----
lineitem 20
query II
FROM sql_auto_complete('INSERT INTO lin') LIMIT 1;
----
lineitem 12
query II
FROM sql_auto_complete('DROP TABLE lin') LIMIT 1;
----
lineitem 11
query II
FROM sql_auto_complete('COPY lin') LIMIT 1;
----
lineitem 5
query II
FROM sql_auto_complete('DROP TABLE na') LIMIT 1;
----
nation 11
query II
SELECT * FROM sql_auto_complete('SELECT * FROM partsupp JOIN supplier USING (ps_su') LIMIT 1;
----
ps_suppkey 44
# more complex queries
query II
FROM sql_auto_complete($$
SELECT
nation,
o_year,
sum(amount) AS sum_profit
FROM (
SELECT
n_name AS nation,
extract(year FROM o_orderdate) AS o_year,
l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity AS amount
FROM
part,
supplier,
lineitem,
partsupp,
orders,
nation
WHERE
s_suppkey = l_suppkey
AND ps_suppkey = l_suppkey
AND ps_partkey = l_partkey
AND p_partkey = l_partkey
AND o_orderkey = l_orderkey
AND s_nationkey = n_nat$$) LIMIT 1;
----
n_nationkey 552
query II
FROM sql_auto_complete($$
SELECT
l_returnflag,
l_linestatus,
sum(l_quantity) AS sum_qty,
sum(l_extendedprice) AS sum_base_price,
sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
avg(l_quantity) AS avg_qty,
avg(l_extendedprice) AS avg_price,
avg(l_discount) AS avg_disc,
count(*) AS count_order
FROM
lineitem
WHERE
l_shipdate <= CAST('1998-09-02' AS date)
GROUP BY
l_ret$$) LIMIT 1;
----
l_returnflag 470
query II
FROM sql_auto_complete($$
SELECT
nation,
o_year,
sum(amount) AS sum_profit
FROM (
SELECT
n_name AS nation,
extract(year FROM o_orderdate) AS o_year,
l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity AS amount
FROM
part,
supplier,
line$$) LIMIT 1;
----
lineitem 287

View File

@@ -0,0 +1,57 @@
# name: test/sql/function/autocomplete/window.test
# description: Test sql_auto_complete
# group: [autocomplete]
require autocomplete
# literal
query II
FROM sql_auto_complete('SELECT row_number() OVER (RANG') LIMIT 1;
----
RANGE 26
query II
FROM sql_auto_complete('SELECT row_number() OVER (RANGE BETWE') LIMIT 1;
----
BETWEEN 32
query II
FROM sql_auto_complete('SELECT row_number() OVER (RANGE BETWEEN UNBOU') LIMIT 1;
----
UNBOUNDED 40
query II
FROM sql_auto_complete('SELECT row_number() OVER (RANGE BETWEEN UNBOUNDED PREC') LIMIT 1;
----
PRECEDING 50
query II
FROM sql_auto_complete('SELECT row_number() OVER (RANGE BETWEEN CURRENT ROW AND 5 PREC') LIMIT 1;
----
PRECEDING 58
query II
FROM sql_auto_complete('SELECT row_number() OVER (PART') LIMIT 1;
----
PARTITION 26
query II
FROM sql_auto_complete('SELECT lag(col1) OVER (PARTITION BY col1, col2 ORD') LIMIT 1;
----
ORDER 47
query II
FROM sql_auto_complete('SELECT sum(42) OVER (PARTITION BY col1, col2 ORDER BY col3 ROW') LIMIT 1;
----
ROWS 59
# window clause
query II
FROM sql_auto_complete('SELECT lead(l_orderkey) OVER win FR') LIMIT 1;
----
FROM 33
query II
FROM sql_auto_complete('SELECT lead(l_orderkey) OVER (win) FROM tbl WINDOW win AS (PART') LIMIT 1;
----
PARTITION 59