What happens?
Using a DuckDB catalog database, error Can't convert VARIANT DECIMAL(4, 2) to Parquet VARIANT occurs when flushing inlined variants, when those variants contain floating-point numbers with varying numbers of decimal places for the same object property.
When all floating-point values have the same number of decimal places, the flush operation succeeds.
As far as I can determine, this does not appear to happen with DuckDB itself, for a similar set-up.
To Reproduce
Set-up:
install ducklake;
load ducklake;
attach 'ducklake:test.duckdb' as my_ducklake (data_path 'test-storage', data_inlining_row_limit 2048);
use my_ducklake;
create table my_table (data variant);
insert into my_table (data) values ('{"temperature": 21.69, "humidity": 51.97, "pressure": 1007.57}'::json);
insert into my_table (data) values ('{"temperature": 22.1, "humidity": 47.5, "pressure": 1013.52}'::json);
Note the varying number of decimal places between the first and second insertions.
Executing:
call ducklake_flush_inlined_data('my_ducklake', table_name => 'my_table');
... produces the following error:
Invalid Input Error:
Can't convert VARIANT DECIMAL(4, 2) to Parquet VARIANT
OS:
Windows x86_64
DuckDB Version:
1.5.2
DuckLake Version:
1.0
DuckDB Client:
CLI
Hardware:
No response
Full Name:
Jay Furness
Affiliation:
Cognex
What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.
I have tested with a stable release
Did you include all relevant data sets for reproducing the issue?
Yes
Did you include all code required to reproduce the issue?
Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?
What happens?
Using a DuckDB catalog database, error
Can't convert VARIANT DECIMAL(4, 2) to Parquet VARIANToccurs when flushing inlined variants, when those variants contain floating-point numbers with varying numbers of decimal places for the same object property.When all floating-point values have the same number of decimal places, the flush operation succeeds.
As far as I can determine, this does not appear to happen with DuckDB itself, for a similar set-up.
To Reproduce
Set-up:
Note the varying number of decimal places between the first and second insertions.
Executing:
... produces the following error:
OS:
Windows x86_64
DuckDB Version:
1.5.2
DuckLake Version:
1.0
DuckDB Client:
CLI
Hardware:
No response
Full Name:
Jay Furness
Affiliation:
Cognex
What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.
I have tested with a stable release
Did you include all relevant data sets for reproducing the issue?
Yes
Did you include all code required to reproduce the issue?
Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?