Files
email-tracker/external/duckdb/test/sql/copy/parquet/parquet_glob.test
2025-10-24 19:21:19 -05:00

100 lines
1.9 KiB
SQL

# name: test/sql/copy/parquet/parquet_glob.test
# description: Test basic globbing of parquet files
# group: [parquet]
require parquet
statement ok
PRAGMA enable_verification
query II
select * from parquet_scan('data/parquet-testing/glob*/t?.parquet') order by i
----
1 a
2 b
3 c
query II
select * from parquet_scan('data/parquet-testing/glob/t[0-9].parquet') order by i
----
1 a
2 b
query II
select * from parquet_scan('data/parquet-testing/glob/*') order by i
----
1 a
2 b
query II
select * from parquet_scan('data/parquet-testing/glob/*.parquet') order by i
----
1 a
2 b
query II
select * from parquet_scan('data/parquet-testing/g*/*.parquet') order by i
----
1 a
2 b
3 c
query II
select * from parquet_scan('data/parquet-testing/g*/t1.parquet') order by i
----
1 a
3 c
# abs path
query II
select * from parquet_scan('__WORKING_DIRECTORY__/data/parquet-testing/g*/t1.parquet') order by i
----
1 a
3 c
# forward slashes
query II
select * from parquet_scan('data\parquet-testing\g*\t1.parquet') order by i
----
1 a
3 c
# Double partial matches
query II rowsort
FROM parquet_scan('data/parquet-testing/glob3/*/dir/*.parquet');
----
1 a
3 c
statement error
select count(*) from parquet_scan('')
----
<REGEX>:.*IO Error.*can only be set for.*
# schema mismatch in parquet glob
statement error
select * from parquet_scan('data/parquet-testing/*.parquet')
----
<REGEX>:.*Invalid Input Error: Failed to read file.*
# parquet glob with COPY FROM
statement ok
CREATE TABLE vals (i INTEGER, j BLOB)
statement ok
COPY vals FROM 'data/parquet-testing/glob/t?.parquet' (FORMAT PARQUET);
query II
SELECT * FROM vals ORDER BY 1
----
1 a
2 b
# failed to copy: incorrect types found in parquet file
statement ok
CREATE TABLE vals2 (i INTEGER, j INTEGER)
statement error
COPY vals2 FROM '*/sql/*/parquet/*/glob/t?.parquet' (FORMAT PARQUET);
----
<REGEX>:.*IO Error: No files found that match the pattern.*