Skip to content

oid column type not supported — archiver fails at bulk export phase with Unsupported PostgreSQL type Oid=26 #51

Description

@imtiazqa

ColdFront archiver fails to export partitions containing an oid column to Iceberg. The TC expected oid to widen to bigint in Iceberg (as pg_duckdb internally widens other types), but pg_duckdb does not handle oid (internal PostgreSQL type, Oid=26) during the bulk export phase. This is a hard failure — the archiver exits non-zero and the partition is never archived.

Test Data:

CREATE TABLE public.oid_test (
    id     bigint,
    ts     timestamptz NOT NULL,
    col_oid oid,
    PRIMARY KEY (id, ts)
) PARTITION BY RANGE (ts);

CREATE TABLE public.oid_test_p_2026_04
    PARTITION OF public.oid_test
    FOR VALUES FROM ('2026-04-01') TO ('2026-05-01');

INSERT INTO public.oid_test VALUES (1, '2026-04-15 00:00:00+00', 12345);

Steps to Reproduce:

Step 1 — Register table

./bin/archiver register --config cf.yaml
--table oid_test --schema public
--period monthly --hot-period "1 month" --retention "5 years"

Step 2 — Run archiver

./bin/archiver --config cf.yaml
echo "Exit code: $?"

Expected Result:

archived oid_test_p_2026_04
Exit code: 0
(oid widened to bigint in Iceberg)

Actual Result:

[oid_test] archive cycle: archive oid_test_p_2026_04: phase 2 (bulk export): stage:
ERROR: (PGDuckDB/CreatePlan) Prepared query returned an error:
Not implemented Error: Unsupported PostgreSQL type found in query: Oid=26
Exit code: 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions