Class ParquetTableLocation
- All Implemented Interfaces:
LogOutputAppendable,DelegatingLivenessReferent,LivenessReferent,TableLocation,TableLocationState,PushdownFilterMatcher,RegionedPushdownFilterMatcher,NamedImplementation
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classNested classes/interfaces inherited from interface io.deephaven.engine.table.impl.locations.TableLocation
TableLocation.Listener -
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.locations.impl.SubscriptionAggregator
subscriptionsFields inherited from interface io.deephaven.engine.table.impl.locations.TableLocationState
NULL_SIZE, NULL_TIME -
Constructor Summary
ConstructorsConstructorDescriptionParquetTableLocation(@NotNull TableKey tableKey, @NotNull ParquetTableLocationKey tableLocationKey, @NotNull ParquetInstructions readInstructions) -
Method Summary
Modifier and TypeMethodDescriptionlongestimatePushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.EstimateContext estimateContext) Estimate the cost of the given pushdownaction.Get a list of the columns by which this location is indexedGet a name for the implementing class.@NotNull List<SortColumn> Get an ordered list of columns this location is sorted by.booleanhasDataIndex(@NotNull String... columns) Check if this TableLocation has a data index for the specified columns.protected final voidNo-op by default, can be overridden by subclasses to initialize state on first access.@Nullable BasicDataIndexloadDataIndex(@NotNull String... columns) Load the data index from the location implementation.makeActionContext(WhereFilter filter, PushdownFilterContext filterContext) Create a context for processing the given filter and filter context.protected @NotNull ColumnLocationmakeColumnLocation(@NotNull String columnName) makeEstimateContext(WhereFilter filter, PushdownFilterContext filterContext) Create a context for estimating the cost for the filter and filter context.performPushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, PushdownResult input, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.ActionContext actionContext) Perform the pushdown action for the given filter and filter context.static @NotNull PushdownResultpushdownDataIndex(RowSet selection, WhereFilter filter, Map<String, String> renameMap, BasicDataIndex dataIndex, PushdownResult result) Apply the filter to the data index table and return the result.voidrefresh()Initialize or run state information.Get the list of pushdown actions supported by this matcher.Methods inherited from class io.deephaven.engine.table.impl.locations.impl.AbstractTableLocation
asLivenessReferent, clearColumnLocations, deliverInitialSnapshot, destroy, estimatePushdownFilterCost, getColumnLocation, getDataIndex, getKey, getLastModifiedTimeMillis, getRowSet, getSize, getStateLock, getTableKey, handleUpdate, handleUpdate, handleUpdateInternal, handleUpdateInternal, hasAnyCachedDataIndex, hasCachedDataIndex, makePushdownFilterContext, pushdownFilter, toStringMethods inherited from class io.deephaven.engine.table.impl.locations.impl.SubscriptionAggregator
activateUnderlyingDataSource, activationFailed, activationSuccessful, checkHasSubscribers, deactivateUnderlyingDataSource, matchSubscriptionToken, postActivationHook, subscribe, supportsSubscriptions, unsubscribeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.liveness.DelegatingLivenessReferent
dropReference, getWeakReference, tryRetainReferenceMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
getReferentDescription, retainReferenceMethods inherited from interface io.deephaven.engine.table.impl.locations.TableLocation
append, subscribe, supportsSubscriptions, toGenericString, toStringDetailed, toStringHelper, unsubscribeMethods inherited from interface io.deephaven.engine.table.impl.locations.TableLocationState
copyStateValuesTo
-
Constructor Details
-
ParquetTableLocation
public ParquetTableLocation(@NotNull @NotNull TableKey tableKey, @NotNull @NotNull ParquetTableLocationKey tableLocationKey, @NotNull @NotNull ParquetInstructions readInstructions)
-
-
Method Details
-
getImplementationName
Description copied from interface:NamedImplementationGet a name for the implementing class. Useful for abstract classes that implement
LogOutputAppendableor overridetoString.The default implementation is correct, but not suitable for high-frequency usage.
- Returns:
- A name for the implementing class
-
refresh
public void refresh()Description copied from interface:TableLocationInitialize or run state information. -
getColumnTypes
-
getSortedColumns
Description copied from interface:TableLocationGet an ordered list of columns this location is sorted by.- Returns:
- A non-null ordered list of
SortColumns
-
initializeState
protected final void initializeState()Description copied from class:AbstractTableLocationNo-op by default, can be overridden by subclasses to initialize state on first access.The expectation for static locations that override this is to call
AbstractTableLocation.handleUpdateInternal(RowSet, long)instead ofAbstractTableLocation.handleUpdate(RowSet, long), andAbstractTableLocation.handleUpdateInternal(TableLocationState)instead ofAbstractTableLocation.handleUpdate(TableLocationState)from insideAbstractTableLocation.initializeState(). Otherwise, the initialization logic will recurse infinitely.- Overrides:
initializeStatein classAbstractTableLocation
-
makeColumnLocation
- Specified by:
makeColumnLocationin classAbstractTableLocation
-
getDataIndexColumns
Description copied from interface:TableLocationGet a list of the columns by which this location is indexed- Returns:
- A non-null list of
String[]arrays containing the key column names for each existing index
-
hasDataIndex
Check if this TableLocation has a data index for the specified columns.An index is trusted when this location's own file declares it and the index file exists; nothing else about the index is checked against the file it indexes, and
pushdownDataIndex(io.deephaven.engine.rowset.RowSet, io.deephaven.engine.table.impl.select.WhereFilter, java.util.Map<java.lang.String, java.lang.String>, io.deephaven.engine.table.BasicDataIndex, io.deephaven.engine.table.impl.PushdownResult)treats every row the index does not place under a matching key as not matching. Every index a file declares must therefore have been written for that file: a writer that replaces the file, or an index it declares, without the other makes filters silently drop rows. An index file that no current file declares, such as one left behind when a file is rewritten without indexes, is ignored. Deephaven's own writers commit a file and the indexes it declares together.- Parameters:
columns- The set of columns to check for- Returns:
- Whether the TableLocation has an index for the specified columns
-
loadDataIndex
Description copied from class:AbstractTableLocationLoad the data index from the location implementation. Implementations of this method should not perform any result caching.- Specified by:
loadDataIndexin classAbstractTableLocation- Parameters:
columns- The columns to load an index for- Returns:
- The data index, or
nullif none exists
-
supportedActions
Description copied from interface:RegionedPushdownFilterMatcherGet the list of pushdown actions supported by this matcher. Defaults to an empty list. -
makeEstimateContext
public RegionedPushdownAction.EstimateContext makeEstimateContext(WhereFilter filter, PushdownFilterContext filterContext) Description copied from interface:RegionedPushdownFilterMatcherCreate a context for estimating the cost for the filter and filter context. This context can be used to provide additional information to theRegionedPushdownFilterMatcher.estimatePushdownAction(io.deephaven.engine.table.impl.sources.regioned.RegionedPushdownAction, io.deephaven.engine.table.impl.select.WhereFilter, io.deephaven.engine.rowset.RowSet, boolean, io.deephaven.engine.table.impl.PushdownFilterContext, io.deephaven.engine.table.impl.sources.regioned.RegionedPushdownAction.EstimateContext)function -
estimatePushdownAction
public long estimatePushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.EstimateContext estimateContext) Description copied from interface:RegionedPushdownFilterMatcherEstimate the cost of the given pushdownaction. ReturnsLong.MAX_VALUEif the action is not supported by this matcher. -
makeActionContext
public RegionedPushdownAction.ActionContext makeActionContext(WhereFilter filter, PushdownFilterContext filterContext) Description copied from interface:RegionedPushdownFilterMatcherCreate a context for processing the given filter and filter context. This context can be used to provide additional information to theRegionedPushdownFilterMatcher.performPushdownAction(io.deephaven.engine.table.impl.sources.regioned.RegionedPushdownAction, io.deephaven.engine.table.impl.select.WhereFilter, io.deephaven.engine.rowset.RowSet, io.deephaven.engine.table.impl.PushdownResult, boolean, io.deephaven.engine.table.impl.PushdownFilterContext, io.deephaven.engine.table.impl.sources.regioned.RegionedPushdownAction.ActionContext)function -
performPushdownAction
public PushdownResult performPushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, PushdownResult input, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.ActionContext actionContext) Description copied from interface:RegionedPushdownFilterMatcherPerform the pushdown action for the given filter and filter context. -
pushdownDataIndex
@NotNull public static @NotNull PushdownResult pushdownDataIndex(RowSet selection, WhereFilter filter, Map<String, String> renameMap, BasicDataIndex dataIndex, PushdownResult result) Apply the filter to the data index table and return the result. When the index is applied, the result has no maybe matches: rows the index does not place under a matching key are treated as not matching, so the index must be complete and current for the rows it covers (seehasDataIndex(java.lang.String...)). When the selection is too small for the index, or filtering the index fails for a reason other than cancellation, the result is a copy ofresult.
-