Aglet

Investigate How Imports Identify Duplicate Headers

Investigation should distinguish a display label from the stable identity of a source column. A parser may preserve both positions while a later dictionary keyed by heading collapses them. Follow two deliberately different values through the pipeline so the first loss of identity is observable and reproducible.

Build a useful investigation brief

  1. Build a repeated-label fixture

    Create a small file with two identical headings and unmistakably different values. Add a case where labels become equal after trimming or case normalization. Specify source positions and intended destinations independently, then compare the parsed representation before any preview decoration or automatically added suffix changes the display.

  2. Trace mapping keys through confirmation

    Inspect the identifiers used for preview columns, selected mappings, and execution inputs. Determine whether keys preserve position or another distinct source identity. Check whether generated labels are only visual, and compare the confirmed mapping with what the importer actually resolves when reading each repeated heading.

  3. Test disambiguation without reshuffling

    Evaluate the implicated identity change with repeated headings in different positions and a normal unique-header control. Keep intended mappings explicit when columns move. A suffix-based display fix is insufficient if execution still looks up the original label or silently reuses a position from a different source revision.

What to carry forward

Produce a brief naming the first collapsing representation, two tracked values, and the expected mapping contract. Separate visual disambiguation from stable identity. A supported correction lets the user distinguish columns and preserves that choice through execution, or clearly rejects an unsupported ambiguous layout before values can be assigned incorrectly.

Technical background: DuckDB documentation.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow