should be it
This commit is contained in:
68
external/duckdb/test/sql/copy/parquet/multi_file/multi_file_filter_integer_types.test
vendored
Normal file
68
external/duckdb/test/sql/copy/parquet/multi_file/multi_file_filter_integer_types.test
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
# name: test/sql/copy/parquet/multi_file/multi_file_filter_integer_types.test
|
||||
# description: Test multi file filters
|
||||
# group: [multi_file]
|
||||
|
||||
require parquet
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
COPY (FROM (VALUES ('f1', 42::INT), ('f1', 8::INT), ('f1', NULL::INT)) t(f, i)) TO '__TEST_DIR__/multi_file_filter_f1.parquet'
|
||||
|
||||
statement ok
|
||||
COPY (FROM (VALUES (42::BIGINT, 'f2'), (124::BIGINT, 'f2'), (NULL::BIGINT, 'f2')) t(i, f)) TO '__TEST_DIR__/multi_file_filter_f2.parquet'
|
||||
|
||||
# the schema of the file depends on the first file read
|
||||
statement ok
|
||||
CREATE VIEW integer_file_first AS FROM read_parquet(['__TEST_DIR__/multi_file_filter_f1.parquet', '__TEST_DIR__/multi_file_filter_f2.parquet'])
|
||||
|
||||
statement ok
|
||||
CREATE VIEW bigint_file_first AS FROM read_parquet(['__TEST_DIR__/multi_file_filter_f2.parquet', '__TEST_DIR__/multi_file_filter_f1.parquet'])
|
||||
|
||||
# equality
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM integer_file_first
|
||||
WHERE i='042'
|
||||
----
|
||||
f1 42
|
||||
f2 42
|
||||
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM bigint_file_first
|
||||
WHERE i='042'
|
||||
ORDER BY ALL
|
||||
----
|
||||
f1 42
|
||||
f2 42
|
||||
|
||||
# greater than
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM integer_file_first
|
||||
WHERE i>10
|
||||
ORDER BY ALL
|
||||
----
|
||||
f1 42
|
||||
f2 42
|
||||
f2 124
|
||||
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM bigint_file_first
|
||||
WHERE i>'10'
|
||||
ORDER BY ALL
|
||||
----
|
||||
f1 42
|
||||
f2 42
|
||||
f2 124
|
||||
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM integer_file_first
|
||||
WHERE i IS NULL
|
||||
----
|
||||
f1 NULL
|
||||
f2 NULL
|
||||
69
external/duckdb/test/sql/copy/parquet/multi_file/multi_file_filter_mixed.test
vendored
Normal file
69
external/duckdb/test/sql/copy/parquet/multi_file/multi_file_filter_mixed.test
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
# name: test/sql/copy/parquet/multi_file/multi_file_filter_mixed.test
|
||||
# description: Test multi file filters
|
||||
# group: [multi_file]
|
||||
|
||||
require parquet
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
COPY (FROM (VALUES ('f1', 42), ('f1', 8), ('f1', NULL)) t(f, i)) TO '__TEST_DIR__/multi_file_filter_f1.parquet'
|
||||
|
||||
statement ok
|
||||
COPY (FROM (VALUES ('042', 'f2'), ('124', 'f2'), (NULL, 'f2')) t(i, f)) TO '__TEST_DIR__/multi_file_filter_f2.parquet'
|
||||
|
||||
# the schema of the file depends on the first file read
|
||||
statement ok
|
||||
CREATE VIEW integer_file_first AS FROM read_parquet(['__TEST_DIR__/multi_file_filter_f1.parquet', '__TEST_DIR__/multi_file_filter_f2.parquet'])
|
||||
|
||||
statement ok
|
||||
CREATE VIEW string_file_first AS FROM read_parquet(['__TEST_DIR__/multi_file_filter_f2.parquet', '__TEST_DIR__/multi_file_filter_f1.parquet'])
|
||||
|
||||
# equality
|
||||
# casting to integer - this works (since '042' = 42)
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM integer_file_first
|
||||
WHERE i='042'
|
||||
----
|
||||
f1 42
|
||||
f2 42
|
||||
|
||||
# casting to string - we only get '042' now
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM string_file_first
|
||||
WHERE i='042'
|
||||
----
|
||||
f2 042
|
||||
|
||||
# greater than
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM integer_file_first
|
||||
WHERE i>10
|
||||
ORDER BY ALL
|
||||
----
|
||||
f1 42
|
||||
f2 42
|
||||
f2 124
|
||||
|
||||
# for strings, '8' is bigger than '10' (since '8' is bigger than '1')
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM string_file_first
|
||||
WHERE i>'10'
|
||||
ORDER BY ALL
|
||||
----
|
||||
f1 42
|
||||
f1 8
|
||||
f2 124
|
||||
|
||||
query II
|
||||
SELECT f, i
|
||||
FROM integer_file_first
|
||||
WHERE i IS NULL
|
||||
----
|
||||
f1 NULL
|
||||
f2 NULL
|
||||
81
external/duckdb/test/sql/copy/parquet/multi_file/multi_file_filter_struct.test
vendored
Normal file
81
external/duckdb/test/sql/copy/parquet/multi_file/multi_file_filter_struct.test
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
# name: test/sql/copy/parquet/multi_file/multi_file_filter_struct.test
|
||||
# description: Test multi file filters on structs
|
||||
# group: [multi_file]
|
||||
|
||||
require parquet
|
||||
|
||||
# statement ok
|
||||
# PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
COPY (SELECT {'f': f, 'i': i} struct_val FROM (VALUES ('f1', 42::INT), ('f1', 8::INT), ('f1', NULL::INT)) t(f, i)) TO '__TEST_DIR__/multi_file_filter_f1.parquet'
|
||||
|
||||
statement ok
|
||||
COPY (SELECT {'i': i, 'f2': f} struct_val FROM (VALUES (42::BIGINT, 'f2'), (124::BIGINT, 'f2'), (NULL::BIGINT, 'f2')) t(i, f)) TO '__TEST_DIR__/multi_file_filter_f2.parquet'
|
||||
|
||||
# the schema of the file depends on the first file read
|
||||
statement ok
|
||||
CREATE VIEW integer_file_first AS FROM read_parquet(['__TEST_DIR__/multi_file_filter_f1.parquet', '__TEST_DIR__/multi_file_filter_f2.parquet'])
|
||||
|
||||
statement ok
|
||||
CREATE VIEW bigint_file_first AS FROM read_parquet(['__TEST_DIR__/multi_file_filter_f2.parquet', '__TEST_DIR__/multi_file_filter_f1.parquet'])
|
||||
|
||||
# projection pushdown
|
||||
query I
|
||||
SELECT struct_val.i
|
||||
FROM integer_file_first
|
||||
ORDER BY ALL
|
||||
----
|
||||
8
|
||||
42
|
||||
42
|
||||
124
|
||||
NULL
|
||||
NULL
|
||||
|
||||
# equality
|
||||
query II
|
||||
SELECT struct_val.f, struct_val.i
|
||||
FROM integer_file_first
|
||||
WHERE struct_val.i='042'
|
||||
----
|
||||
f1 42
|
||||
NULL 42
|
||||
|
||||
query I
|
||||
SELECT struct_val.i
|
||||
FROM bigint_file_first
|
||||
WHERE struct_val.i='042'
|
||||
ORDER BY ALL
|
||||
----
|
||||
42
|
||||
42
|
||||
|
||||
# greater than
|
||||
query II
|
||||
SELECT struct_val.f, struct_val.i
|
||||
FROM integer_file_first
|
||||
WHERE struct_val.i>10
|
||||
ORDER BY ALL
|
||||
----
|
||||
f1 42
|
||||
NULL 42
|
||||
NULL 124
|
||||
|
||||
query I
|
||||
SELECT struct_val.i
|
||||
FROM bigint_file_first
|
||||
WHERE struct_val.i>'10'
|
||||
ORDER BY ALL
|
||||
----
|
||||
42
|
||||
42
|
||||
124
|
||||
|
||||
query II
|
||||
SELECT struct_val.f, struct_val.i
|
||||
FROM integer_file_first
|
||||
WHERE struct_val.i IS NULL
|
||||
----
|
||||
f1 NULL
|
||||
NULL NULL
|
||||
Reference in New Issue
Block a user