Skip to content

MERGE INTO crashes on tables partitioned by year, month, day or hour #451

@lukz0

Description

@lukz0

What happens?

DuckDB crashes with this error when running the MERGE INTO statement on a table partitioned by year, month, day or hour:

INTERNAL Error:
Attempted to access index 2 within vector of size 2

Stack Trace:

/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xaf6086) [0x7f77d9ef6086]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xaf6134) [0x7f77d9ef6134]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xaf8191) [0x7f77d9ef8191]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0x48f397) [0x7f77d988f397]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0x2ac7c5) [0x7f77d96ac7c5]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xb38d23) [0x7f77d9f38d23]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xa28bad) [0x7f77d9e28bad]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xca8e5a) [0x7f77da0a8e5a]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(_ZNK6duckdb19DuckLakeMergeInsert4SinkERNS_16ExecutionContextERNS_9DataChunkERNS_17OperatorSinkInputE+0x3e) [0x7f77d991312e]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xc9c695) [0x7f77da09c695]
/home/lmrozik/.duckdb/extensions/v1.4.0/linux_amd64/ducklake.duckdb_extension(+0xc9f581) [0x7f77da09f581]
/home/lmrozik/duckdb() [0xd0e071]
/home/lmrozik/duckdb() [0xd0e1bf]
/home/lmrozik/duckdb() [0xd129cd]
/home/lmrozik/duckdb() [0xd12bca]
/home/lmrozik/duckdb() [0xd0b391]
/home/lmrozik/duckdb() [0xd139e4]
/home/lmrozik/duckdb() [0xcbea90]
/home/lmrozik/duckdb() [0xcbeccc]
/home/lmrozik/duckdb() [0xcbee64]
/home/lmrozik/duckdb() [0x826435]
/home/lmrozik/duckdb() [0x80b0f9]
/home/lmrozik/duckdb() [0x80b6b7]
/home/lmrozik/duckdb() [0x80c1eb]
/home/lmrozik/duckdb() [0x80c863]
/home/lmrozik/duckdb() [0x7fde3b]
/lib64/libc.so.6(+0x295d0) [0x7f77e56295d0]
/lib64/libc.so.6(__libc_start_main+0x80) [0x7f77e5629680]
/home/lmrozik/duckdb() [0x8022be]

To Reproduce

ATTACH 'ducklake:test_ducklake.ducklake' AS test_ducklake;

CREATE TABLE test_ducklake.my_timeseries (ts TIMESTAMPTZ, x DOUBLE PRECISION);
ALTER TABLE test_ducklake.my_timeseries SET PARTITIONED BY (year(ts));

MERGE INTO test_ducklake.my_timeseries
    USING (
        SELECT
            '2025-09-17'::TIMESTAMPTZ as ts,
            42::DOUBLE PRECISION as x
    ) AS timeseries_updates
    ON test_ducklake.my_timeseries.ts = timeseries_updates.ts
    WHEN NOT MATCHED THEN INSERT;

OS:

rocky linux 9 x86_64

DuckDB Version:

DuckDB v1.4.0 (Andium) b8a06e4a22

DuckLake Version:

Tested on 45788f0 AND d186463

DuckDB Client:

CLI

Hardware:

No response

Full Name:

Lukasz Filip Mrozik

Affiliation:

Lawo Lab AS

What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a nightly build

Did you include all relevant data sets for reproducing the issue?

Not applicable - the reproduction does not require a data set

Did you include all code required to reproduce the issue?

  • Yes, I have

Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions