You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix DICTIONARY array handling in CSV, ORC, Paimon, Iceberg writers
Arrow dict8<int8, utf8> arrays (used for low-cardinality TPC-H columns
since Phase 3.3) were not handled in non-Lance writers:
- csv_writer: fell back to array->ToString() producing corrupt column
representation per cell; fix does index→value lookup via GetString()
- orc_writer: arrow_type_to_orc_type_name() threw "Unsupported type" on
DICTIONARY; copy_array_to_orc_column() also threw; fix maps DICTIONARY
to ORC "string" and expands indices via GetView() into dict buffer
- paimon_writer: arrow_type_to_paimon_type() threw on DICTIONARY; fix
maps to "string" (data path via parquet::arrow::WriteTable is fine)
- iceberg_writer: arrow_type_to_iceberg_type() threw on DICTIONARY; fix
maps to "string" (data path via parquet::arrow::WriteTable is fine)
Parquet and Lance handle DICTIONARY natively through Arrow — no changes
needed. ORC fix tested via code review only (requires -DTPCH_ENABLE_ORC).
CSV fix verified: l_returnflag/linestatus/shipinstruct/shipmode output
correct string values ("N", "O", "DELIVER IN PERSON", "TRUCK").
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments