#657

fix(csv): preserve xan cells and support explicit string conversion

Openasafyishwants to merge intofrom

CSV parsing currently infers types before xan operates on cells, so xan select turns 00123 into 123 and a join treats those distinct keys as equal. Preserve source cells for CSV operations and convert numeric operands in Moonblade where they are used. Existing numeric filters, arithmetic, aggregation, array indexing and empty-column statistics keep working.

JSON conversion retains its default inference. Add the native xan to json --strings COLUMNS control for identifiers that must stay strings, using the existing column selector, argument parser and PapaParse paths.

Validation: 504 xan/yq tests pass; seven new regression cases fail on the base commit. Typecheck, scoped Biome and banned-pattern checks pass. Includes coverage for exact joins, selection, deduplication, numeric filtering/arithmetic/aggregation, and explicit string columns. Review follow-ups exclude empty cells in the shared aggregation owner (retaining zero) and convert substring offsets before arithmetic. Both regressions fail on the preceding PR head and pass after the fix.

Native yq intentionally infers scalar types even with --csv-auto-parse=false; its behavior remains unchanged.

Activity

5
vercel[bot]9d ago

@asafyish is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

vercel[bot]reviewed9d ago