Aglet

Investigate Blank-Line and Empty-Record Imports

Investigation should separate physical whitespace from logical CSV records. A preprocessing step that drops blank lines may differ from a parser that emits an empty-field record. Build a small matrix of those structures and follow both record identity and source location through each stage of the import.

Build a useful investigation brief

  1. Build distinct blank structures

    Create empty lines, whitespace-only lines, delimiter-only records, quoted empty fields, and a blank line inside a quoted multiline value. Place a recognizable valid record after each. Specify expected handling independently so the investigation does not define success by copying whichever rows the current parser happens to emit.

  2. Trace skip and validation decisions

    Inspect preprocessing, parser output, blank-record classification, validation, and accepted-row counting. Record where each structure is dropped or retained. Compare first, middle, and trailing positions because end-of-file handling may differ from an identical blank-looking input between two real records in the same source file.

  3. Check location preservation

    Follow the recognizable record and any controlled error after a skipped input. Compare reported source positions with the independent fixture references. A fix that makes counts look right may still misnumber later errors or alter quoted content if it removes physical lines before the parser establishes logical record boundaries.

What to carry forward

Deliver a structure matrix, first inconsistent skip rule, and its effect on records and coordinates. Propose a bounded change that matches the documented blank-handling contract. Keep quoted multiline content and meaningful empty-field records distinct from ignorable spacer lines, and record any undecided semantics as an explicit product question.

Technical background: PostgreSQL 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