Package org.apache.druid.frame.util
Class SettableLongVirtualColumn
- java.lang.Object
-
- org.apache.druid.frame.util.SettableLongVirtualColumn
-
- All Implemented Interfaces:
Cacheable
,VirtualColumn
public class SettableLongVirtualColumn extends Object implements VirtualColumn
Virtual column that returns a changeable value, viasetValue(long)
. Useful for injecting synthetic values into a cursor, such as row numbers.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.druid.segment.VirtualColumn
VirtualColumn.EquivalenceKey
-
-
Constructor Summary
Constructors Constructor Description SettableLongVirtualColumn(String columnName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ColumnCapabilities
capabilities(String columnName)
This method is deprecated in favor ofVirtualColumn.capabilities(ColumnInspector, String)
, which should be used whenever possible and can support virtual column implementations that need to inspect other columns as inputs.byte[]
getCacheKey()
Get a byte array used as a cache key.String
getOutputName()
Output name of this column.long
getValue()
ColumnValueSelector<?>
makeColumnValueSelector(String columnName, ColumnSelectorFactory factory)
Build aColumnValueSelector
corresponding to this virtual column.DimensionSelector
makeDimensionSelector(DimensionSpec dimensionSpec, ColumnSelectorFactory factory)
Build a selector corresponding to this virtual column.List<String>
requiredColumns()
Returns a list of columns that this virtual column will access.void
setValue(long theValue)
boolean
usesDotNotation()
Indicates that this virtual column can be referenced with dot notation.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.segment.VirtualColumn
canVectorize, capabilities, getEquivalanceKey, getIndexSupplier, makeColumnValueSelector, makeDimensionSelector, makeGroupByVectorColumnSelector, makeMultiValueVectorDimensionSelector, makeMultiValueVectorDimensionSelector, makeSingleValueVectorDimensionSelector, makeSingleValueVectorDimensionSelector, makeVectorObjectSelector, makeVectorObjectSelector, makeVectorValueSelector, makeVectorValueSelector
-
-
-
-
Constructor Detail
-
SettableLongVirtualColumn
public SettableLongVirtualColumn(String columnName)
-
-
Method Detail
-
getOutputName
public String getOutputName()
Description copied from interface:VirtualColumn
Output name of this column.- Specified by:
getOutputName
in interfaceVirtualColumn
- Returns:
- name
-
makeDimensionSelector
public DimensionSelector makeDimensionSelector(DimensionSpec dimensionSpec, ColumnSelectorFactory factory)
Description copied from interface:VirtualColumn
Build a selector corresponding to this virtual column. Also provides the name that the virtual column was referenced with (throughDimensionSpec.getDimension()
, which is useful if this column uses dot notation. The virtual column is expected to apply any necessary decoration from the dimensionSpec.- Specified by:
makeDimensionSelector
in interfaceVirtualColumn
-
makeColumnValueSelector
public ColumnValueSelector<?> makeColumnValueSelector(String columnName, ColumnSelectorFactory factory)
Description copied from interface:VirtualColumn
Build aColumnValueSelector
corresponding to this virtual column. Also provides the name that the virtual column was referenced with, which is useful if this column uses dot notation.- Specified by:
makeColumnValueSelector
in interfaceVirtualColumn
-
capabilities
public ColumnCapabilities capabilities(String columnName)
Description copied from interface:VirtualColumn
This method is deprecated in favor ofVirtualColumn.capabilities(ColumnInspector, String)
, which should be used whenever possible and can support virtual column implementations that need to inspect other columns as inputs. This is a fallback implementation to return the capabilities of this virtual column, which includes a type that corresponds to the best performing base selector supertype (e. g.BaseLongColumnValueSelector
) of the object, returned fromVirtualColumn.makeColumnValueSelector(String, ColumnSelectorFactory)
. May vary based on columnName if this column uses dot notation.- Specified by:
capabilities
in interfaceVirtualColumn
- Parameters:
columnName
- the name this virtual column was referenced with- Returns:
- capabilities, must not be null
-
requiredColumns
public List<String> requiredColumns()
Description copied from interface:VirtualColumn
Returns a list of columns that this virtual column will access. This may include the names of other virtual columns. May be empty if a virtual column doesn't access any underlying columns. Does not pass columnName because there is an assumption that the list of columns needed by a dot-notation supporting virtual column will not vary based on the columnName.- Specified by:
requiredColumns
in interfaceVirtualColumn
- Returns:
- column names
-
usesDotNotation
public boolean usesDotNotation()
Description copied from interface:VirtualColumn
Indicates that this virtual column can be referenced with dot notation. For example, a virtual column named "foo" could be referred to as "foo.bar" with the Cursor it is registered with. In that case, init will be called with columnName "foo.bar" rather than "foo".- Specified by:
usesDotNotation
in interfaceVirtualColumn
- Returns:
- whether to use dot notation
-
getCacheKey
public byte[] getCacheKey()
Description copied from interface:Cacheable
Get a byte array used as a cache key.- Specified by:
getCacheKey
in interfaceCacheable
- Returns:
- a cache key
-
getValue
public long getValue()
-
setValue
public void setValue(long theValue)
-
-