Private. Construct via stringColumnDictEncoded,
stringColumnFallback, or the higher-level
stringColumnFromArray. Validates that exactly one of the two
storage modes is populated.
Optional ReadonlydictionaryOptional ReadonlyfallbackOptional ReadonlyindicesReadonlykindReadonlylengthReadonlystorageOptional ReadonlyvalidityTrue if this column uses dictionary encoding.
Linear scan with callback. Matches the shared ColumnBase scan
contract:
skipInvalid: true (default): callback fired only for
rows the validity bitmap marks as defined.skipInvalid: false: callback fired for every row in
[0, length), mirroring Float64Column and BooleanColumn.
Invalid rows whose effective value would otherwise be
undefined receive the empty-string sentinel '', the
string equivalent of the numeric columns' buffer-default
sentinel (0 for Float64Column, false for
BooleanColumn). Callers who must distinguish a real ''
from a sentinel '' consult column.validity directly —
identical pattern to the numeric columns' 0 sentinel.Optionaloptions: ScanOptionsReturns a column whose row i is this column's row
indices[i]. Dict-encoded: gathers Int32 indices, dictionary
shared. Fallback: gathers strings into a new array.
Dictionary retention. The output keeps the full source
dictionary even if some entries are no longer referenced. A
future compactDictionary op (deferred until a use case
justifies it) trims unused entries.
Returns a column covering rows [start, end). Dict-encoded:
indices becomes an Int32Array.subarray view and the
dictionary is shared by reference. Fallback: slices the array.
Single class covering both dictionary-encoded and fallback string columns.
dictionary/indicespopulated iff dict-encoded;fallbackpopulated otherwise. Exactly one mode is active per instance.