Aglet

Prevent Numeric Coercion of Imported Identifiers

The lasting lesson is that a field’s meaning determines its treatment, not whether its current examples contain only digits. Document which imported values are identities and preserve the cases that exposed numeric coercion. Keep historical reconciliation separate from preventing the next changed identifier during import.

Keep the lesson for the next incident

  1. Make the identity contract explicit

    Identify the fields whose exact characters must survive, including leading zeros and long digit sequences. Explain where users can choose or confirm a text type. Link the contract to matching behavior so a later convenience normalization is reviewed for its effect on distinct source identities.

  2. Retain fixtures that expose precision loss

    Keep a small set of strings that differ only in the places a lossy conversion changed. Include early short rows and a later long value if sampling mattered. Store the expected values as text and describe why numeric equality is not an adequate comparison for the fixture.

  3. Review inference and export changes

    Assign a review trigger for new export tools, parser type inference, or mapping defaults. Include a source-file inspection in troubleshooting guidance so support can distinguish an already damaged export from importer coercion. Keep unresolved historical references visible without implying the new preservation rule has repaired them.

What to carry forward

Close follow-up with the identity contract, exact-string fixtures, and a named owner for inference changes. Record the boundaries of any historical repair separately. The next maintainer should be able to explain why a numeric-looking field stays textual and recognize evidence that a producer changed its representation.

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