Skip to content

Problem updating Postgres ENUM from DuckDB #379

@ruidc

Description

@ruidc

What happens?

I'm on DuckDB 1.4.1 experiencing difficulty updating a Postgres 17.6 ENUM field status:

Not implemented Error Enums in Postgres must be named - unnamed enums are not supported. Use CREATE TYPE to create a named enum.

All of the following give me the above error:

update mypg.mytable set status=ddb.status where ddb.id=mypg.mytable.id;
update mypg.mytable set status=ddb.status::varchar where ddb.id=mypg.mytable.id;
update mypg.mytable set status=ddb.status::text where ddb.id=mypg.mytable.id;
update mypg.mytable set status=ddb.status::mypg.mystatus_enum where ddb.id=mypg.mytable.id;

Both for DuckDB sources and PG sources, e.g.:

update mypg.mytable set status=mypg.mytable2.status where mypg.mytable2.id=mypg.mytable.id;

and as above but with PG sources.

Making a similar update from within Postgres withough DuckDB is not a problem.

I've also tried using an equivalent ENUM declared in DuckDB.

To Reproduce

CREATE TYPE mystatus_enum AS ENUM (
    'IN_STOCK', 'OUT_OF_STOCK', 'NOT_FOUND', 'NOT_A_PRODUCT'
);

CREATE TABLE mytable
(
    id INTEGER primary key,
    status mystatus_enum
);

OS:

Linux

PostgreSQL Version:

17.6

DuckDB Version:

1.4.1

DuckDB Client:

Python

Full Name:

Rui Da Costa

Affiliation:

startup

Have you tried this on the latest main branch?

  • I agree

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

  • I agree

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions