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

79 lines
1.6 KiB
SQL

# name: test/sql/copy/parquet/parquet_3896.test
# description: Issue #3896: Error reading parquet file: Struct child row count mismatch
# group: [parquet]
require parquet
statement ok
PRAGMA enable_verification
# single struct with map and scalar key
statement ok
CREATE VIEW v1 AS
SELECT map([2], [{'key1': map([3,4],[1,2]), 'key2':2}]) AS x
query I nosort mapres1
SELECT * FROM v1;
----
statement ok
COPY v1
TO '__TEST_DIR__/map.parquet' (FORMAT 'parquet');
query I nosort mapres1
SELECT * FROM '__TEST_DIR__/map.parquet';
----
# multiple struct with map and scalar key
statement ok
CREATE VIEW v2 AS
SELECT map([2], [{'key1': map([3,4],[1,2]), 'key2':2}]) AS x
UNION ALL
SELECT map([2], [{'key1': map([3,4],[1,2]), 'key2':2}])
query I nosort mapres2
SELECT * FROM v2;
----
statement ok
COPY v2
TO '__TEST_DIR__/map.parquet' (FORMAT 'parquet');
query I nosort mapres2
SELECT * FROM '__TEST_DIR__/map.parquet';
----
# struct with struct of lists and scalar key
statement ok
CREATE VIEW v3 AS
SELECT {'key': [2], 'val': [{'key1': {'key': [3,4], 'val': [1,2]}, 'key2':2}]} AS x
query I nosort structres1
SELECT * FROM v3;
----
statement ok
COPY v3
TO '__TEST_DIR__/map.parquet' (FORMAT 'parquet');
query I nosort structres1
SELECT * FROM '__TEST_DIR__/map.parquet';
----
# struct with struct of lists and scalar list key
statement ok
CREATE VIEW v4 AS
SELECT {'key': [2], 'val': [{'key1': {'key': [3,4], 'val': [1,2]}, 'key2':[2]}]} AS x
query I nosort structres2
SELECT * FROM v4;
----
statement ok
COPY v4
TO '__TEST_DIR__/map.parquet' (FORMAT 'parquet');
query I nosort structres2
SELECT * FROM '__TEST_DIR__/map.parquet';
----