v0.3.0: Fix Qlik Sense compatibility
Fix: Generated QVD files now readable by Qlik Sense
Problem
QvdTable.from_arrow() + save() and convert_parquet_to_qvd() generated QVD files that qvdrs could read back, but Qlik Sense showed 0 rows (columns visible, data missing).
Root Cause
XML header format incompatible with Qlik Sense parser:
<Type></Type>instead of<Type>UNKNOWN</Type>in NumberFormat- Missing
<Comment></Comment>in field headers - Missing
<EncryptionInfo></EncryptionInfo>tag
Fixes
- NumberFormat
Typedefaults toUNKNOWN(matches all Qlik-generated QVDs) <Comment>always written in field headers, even when empty<EncryptionInfo>tag added to XML output- Raw roundtrip now byte-identical for empty tables (0 records)
- Arrow columns always nullable (fixes
RecordBatchcreation error for columns with unexpected NULLs)
Verified
- 418 QVD files × 4 transformation paths (regenerate, Parquet, Arrow, double conversion) — 0 errors
- MD5 raw roundtrip on 399 files — 0 failures
- Binary data encoding confirmed identical to Qlik-generated reference files