ddn.columnar.batch
The structural storage carrier beneath DataFrame.
This module owns the structural half of a table: Field and Schema (the ordered shape) and ColumnBatch (equal-height, uniquely named columns). It is deliberately free of table semantics - no join, groupBy, expression, sort or IO logic enters here - and it never copies or rechunks its columns: independently chunked columns stay independently chunked, because physical batch alignment is a codec concern, not a carrier concern.
DataFrame wraps a ColumnBatch instead of keeping a second column store; the old ddn.df.frame spellings of Field and Schema remain available as re-exports. The query engine's ColumnSchema (nullability and cardinality facts) is a different contract and stays with the expression layer.
Copyright
Types 3
An ordered collection of fields: the shape a DataFrame conforms to. vstack requires schema equality; readCsv takes one as input.
private Field[] _fieldsA structural batch of equal-height, uniquely named columns: the storage carrier DataFrame wraps. ColumnBatch.init is the empty batch (no columns, height 0). A typed batch of zero rows keeps its schema.
private Series[] _columns