Skip to content

feat: treat character arrays as strings - #6

Merged
Michael-F-Bryan merged 1 commit into
mainfrom
feat/character-array-strings
Aug 12, 2026
Merged

feat: treat character arrays as strings#6
Michael-F-Bryan merged 1 commit into
mainfrom
feat/character-array-strings

Conversation

@Michael-F-Bryan

Copy link
Copy Markdown
Contributor

ULog char[N] fields are currently flattened as one numeric column per byte, which loses the schema's distinction between text and arbitrary uint8_t[N] data. In the Zoda log, values such as com.vimdrones.esc_s50#M3 therefore become 24 separate CSV columns.

This keeps scalar char byte-valued but treats char[N] as one string across dynamic records, datasets, CSV, Arrow, and Parquet. Trailing NUL padding is removed, embedded NULs are preserved, and malformed UTF-8 is rejected only at the Arrow boundary where a UTF-8 string is required. Typed Go adapters declare the fixed wire width explicitly:

Name string `ulog:"name,char[80]"`

This deliberately changes the pre-release dataset schema: character arrays now produce name rather than name[0] through name[N-1]; ordinary numeric arrays retain their existing flattened shape.

The captured Zoda log remains outside the repository. It still produces 99 datasets and 3,598 records, with all 99 datasets readable through CSV, Arrow, and Parquet.

@Michael-F-Bryan
Michael-F-Bryan force-pushed the feat/character-array-strings branch from 6cf1038 to 9d9d9c0 Compare August 12, 2026 06:55
@Michael-F-Bryan
Michael-F-Bryan marked this pull request as ready for review August 12, 2026 07:02
@Michael-F-Bryan
Michael-F-Bryan merged commit 6ce8428 into main Aug 12, 2026
4 checks passed
@Michael-F-Bryan
Michael-F-Bryan deleted the feat/character-array-strings branch August 12, 2026 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant