Skip to content

v0.3.0: Fix Qlik Sense compatibility

Choose a tag to compare

@bintocher bintocher released this 25 Mar 12:43
· 27 commits to main since this release

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 Type defaults to UNKNOWN (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 RecordBatch creation 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