Interface for retrieving and/or creating metadata given a vector.
Common interface to access a tuple backed by a vector container or a map vector.
Common interface to access a column vector, its metadata, and its tuple definition (for maps.) Provides a visitor interface for common vector tasks.
Tuple-model interface for the top-level row (tuple) structure.
Base implementation for a tuple model which is common to the "single" and "hyper" cases.
Row set index base class used when indexing rows within a row set for a row set reader.
ColumnMetadata, with allocation hints that goes beyond the
MaterializedFieldused by value vectors.
In an ideal world, this structure would not be necessary; the vectors could, by themselves, provide the needed structure. However, vectors are used in many places, in many ways, and are hard to evolve. Further, Drill may eventually choose to move to Arrow, which would not have the structure provided here.
A set of visitor classes provide the logic to traverse the vector structure, avoiding the need for multiple implementations of vector traversal. (Traversal is needed because maps contain vectors, some of which can be maps, resulting in a tree structure. Further, the API provided by containers (a top-level tuple) differs from that of a map vector (nested tuple.) This structure provides a uniform API for both cases.
Three primary tasks provided by this structure are:
Drill supports two kinds of batches, reflected by two implementations of the structure:
Copyright © 1970 The Apache Software Foundation. All rights reserved.