Class DynamicColumn
java.lang.Object
org.apache.drill.exec.record.metadata.AbstractPropertied
org.apache.drill.exec.record.metadata.AbstractColumnMetadata
org.apache.drill.exec.record.metadata.DynamicColumn
- All Implemented Interfaces:
ColumnMetadata
,Propertied
- Direct Known Subclasses:
ProjectedColumn
A dynamic column has a name but not a type. The column may be
a map, array or scalar: we don't yet know. A dynamic column is
the equivalent of an item in a name-only project list. This type
can also represent a wildcard. A dynamic column is not a concrete
data description: it must be resolved to an actual type before
it can be used to create vectors, readers, writers, etc. The
dynamic column allows the tuple metadata to be used to represent
all phases of a schema lifecycle, including Drill's "dynamic"
schema before a reader resolves the column to some actual
type.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.drill.exec.record.metadata.ColumnMetadata
ColumnMetadata.StructureType
-
Field Summary
Fields inherited from class org.apache.drill.exec.record.metadata.AbstractColumnMetadata
mode, name, precision, scale, type
Fields inherited from interface org.apache.drill.exec.record.metadata.ColumnMetadata
BLANK_AS_NULL, BLANK_AS_PROP, BLANK_AS_ZERO, DEFAULT_ARRAY_SIZE, DEFAULT_VALUE_PROP, EXCLUDE_FROM_WILDCARD, EXPECTED_CARDINALITY_PROP, EXPECTED_WIDTH_PROP, FORMAT_PROP, IMPLICIT_COL_TYPE, IMPLICIT_FILENAME, IMPLICIT_FILEPATH, IMPLICIT_FQN, IMPLICIT_PARTITION_PREFIX, IMPLICIT_SUFFIX
Fields inherited from interface org.apache.drill.exec.record.metadata.Propertied
DRILL_PROP_PREFIX
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionCreate an empty version of this column.Converts column metadata into string representation accepted by the table schema parser.copy()
boolean
Reports if the column is dynamic.boolean
Report whether one column is equivalent to another.schema()
Converts type metadata into string representation accepted by the table schema parser.Methods inherited from class org.apache.drill.exec.record.metadata.AbstractColumnMetadata
appendContents, bind, childSchema, createColumnMetadata, dateTimeFormatter, decodeDefaultValue, defaultValue, dimensions, equals, equalsWithProperties, equalsWithProperties, escapeSpecialSymbols, expectedElementCount, expectedWidth, format, isArray, isDict, isMap, isMultiList, isNullable, isScalar, isVariableWidth, isVariant, majorType, mode, name, precision, properties, scale, setDefaultValue, setExpectedElementCount, setExpectedWidth, setFormat, toString, tupleSchema, type, valueFromString, valueToString, variantSchema
Methods inherited from class org.apache.drill.exec.record.metadata.AbstractPropertied
booleanProperty, booleanProperty, hashCode, hasProperties, intProperty, intProperty, property, property, removeProperty, setBooleanProperty, setIntProperty, setProperties, setProperty
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.drill.exec.record.metadata.Propertied
booleanProperty, booleanProperty, hasProperties, intProperty, intProperty, property, property, removeProperty, setBooleanProperty, setIntProperty, setProperties, setProperty
-
Field Details
-
WILDCARD
- See Also:
-
WILDCARD_COLUMN
-
-
Constructor Details
-
DynamicColumn
-
-
Method Details
-
structureType
-
isDynamic
public boolean isDynamic()Description copied from interface:ColumnMetadata
Reports if the column is dynamic. A dynamic column is one with a "type to be named later." It is valid for describing a dynamic schema, but not for creating vectors; to create a vector the column must be resolved to a concrete type. The context should make it clear if any columns can be dynamic.- Specified by:
isDynamic
in interfaceColumnMetadata
- Overrides:
isDynamic
in classAbstractColumnMetadata
- Returns:
true
if the column does not yet have a concrete type,false
if the column type is concrete
-
schema
-
emptySchema
-
cloneEmpty
Description copied from interface:ColumnMetadata
Create an empty version of this column. If the column is a scalar, produces a simple copy. If a map, produces a clone without child columns.- Returns:
- empty clone of this column
-
copy
-
isEquivalent
Description copied from interface:ColumnMetadata
Report whether one column is equivalent to another. Columns are equivalent if they have the same name, type and structure (ignoring internal structure such as properties.)- Specified by:
isEquivalent
in interfaceColumnMetadata
- Overrides:
isEquivalent
in classAbstractColumnMetadata
-
columnString
Description copied from interface:ColumnMetadata
Converts column metadata into string representation accepted by the table schema parser.- Specified by:
columnString
in interfaceColumnMetadata
- Overrides:
columnString
in classAbstractColumnMetadata
- Returns:
- column metadata string representation
-
typeString
Description copied from interface:ColumnMetadata
Converts type metadata into string representation accepted by the table schema parser.- Specified by:
typeString
in interfaceColumnMetadata
- Specified by:
typeString
in classAbstractColumnMetadata
- Returns:
- type metadata string representation
-