Skip to content

PostscriptParser rejects blank column names on read path #255

Description

@dfa1

Problem

uci-electricityloaddiagrams20112014 in the Raincloud corpus has a blank column name at field index 0. The Java reader throws a VortexException on open:

VortexException: invalid field name in file schema (field index 0):
  blank field name (wire-legal, but a footgun vortex-java refuses to write)
  — likely a bug in the pipeline that produced this file

The restriction comes from PostscriptParser.convertDType (the FbsStruct_ branch) calling ColumnName.violation(name).ifPresent(...) and throwing for any name that violates the write-side naming policy. The Rust reference implementation accepts these files.

Root cause

ColumnName.violation() rejects blank names. The check is applied on the read path in PostscriptParser, rejecting files that the reference writer produced.

Fix

The write-side naming policy ("vortex-java refuses to write blank names") should not block the read path. The compact constructor of ColumnName should only enforce non-null; the ColumnName.of() factory enforces the full policy and is the boundary guard for user-provided names on the write side. The PostscriptParser can then use new ColumnName(name) directly (bypassing the of() factory's policy check) and remove the violation() check it currently calls.

After fixing, flip uci-electricityloaddiagrams20112014 from gap:255 to ok in expected-status.csv.

Files

  • core/src/main/java/io/github/dfa1/vortex/core/model/ColumnName.java — compact constructor vs of() factory
  • reader/src/main/java/io/github/dfa1/vortex/reader/PostscriptParser.javaconvertDType, FbsStruct_ branch (approx. line 286)
  • integration/src/test/resources/raincloud/expected-status.csv — flip uci-electricityloaddiagrams20112014

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions