Class ReaderLevelProjection
- Direct Known Subclasses:
ExplicitSchemaProjection
,SmoothingProjection
,WildcardProjection
,WildcardSchemaProjection
A "resolved" projection list is a list of concrete columns: table columns, nulls, file metadata or partition metadata. An unresolved list has either table column names, but no match, or a wildcard column.
The idea is that the projection list moves through stages of resolution depending on which information is available. An "early schema" table provides schema information up front, and so allows fully resolving the projection list on table open. A "late schema" table allows only a partially resolved projection list, with the remainder of resolution happening on the first (or perhaps every) batch.
Data source (table) schema can be of two forms:
- Early schema: the schema is known before reading data. A JDBC data source is an example, as is a CSV reader for a file with headers.
- Late schema: the schema is not known until data is read, and is discovered on the fly. Example: JSON, which declares values as maps without an up-front schema.
The final result of the projection is a set of "output" columns: a set of columns that, taken together, defines the row (bundle of vectors) that the scan operator produces. Columns are ordered: the order specified here must match the order that columns appear in the result set loader and the vector container so that code can access columns by index as well as name.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Reader-level projection is customizable. -
Field Summary
Modifier and TypeFieldDescriptionprotected final List<ReaderLevelProjection.ReaderProjectionResolver>
-
Constructor Summary
ModifierConstructorDescriptionprotected
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
resolveSpecial
(ResolvedTuple rootOutputTuple, ColumnProjection col, TupleMetadata tableSchema)
-
Field Details
-
resolvers
-
-
Constructor Details
-
ReaderLevelProjection
-
-
Method Details
-
resolveSpecial
protected void resolveSpecial(ResolvedTuple rootOutputTuple, ColumnProjection col, TupleMetadata tableSchema)
-