Aglet

Keep Blank-Row Import Rules Consistent

The lasting lesson is the difference between a blank physical line and a meaningful empty record. Make that distinction explicit in the import contract and preserve the source form that exposed the defect. Avoid a cleanup rule whose apparent simplicity depends on discarding information before logical records are parsed.

Keep the lesson for the next incident

  1. Document blank handling by structure

    State which empty lines, whitespace, and empty-field records are ignored, retained, or rejected. Explain how ignored rows affect displayed counts and source locations. Keep quoted multiline content outside physical-line cleanup assumptions so future preview or performance work does not change legitimate text while trying to simplify row processing.

  2. Retain a neighboring-record fixture

    Keep each relevant blank form next to a distinct valid record and a controlled error. Record expected final identities, text, counts, and locations. Include the original placement condition, such as a trailing blank or quoted newline, so the fixture remains discriminating when the importer’s streaming or preprocessing path changes.

  3. Review new skip and count rules

    Assign review when preprocessing, blank classification, progress totals, or error numbering changes. Compare the source matrix across preview and execution. Track confirmed lost-record or unwanted-empty-record outcomes separately from harmless ignored spacers so the team can recognize a recurrence without treating all whitespace-related feedback as equivalent.

What to carry forward

Close with a clear structure-aware contract, readable neighboring-record fixtures, and an owner for skip-rule changes. Preserve any unresolved source form in guidance. The next maintainer should be able to explain exactly why a blank-looking input is ignored or retained and how that choice affects the records that follow it.

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