Package org.apache.druid.segment
Class RestrictedCursorFactory
java.lang.Object
org.apache.druid.segment.RestrictedCursorFactory
- All Implemented Interfaces:
Expr.InputBindingInspector,ColumnInspector,CursorFactory
A factory class for creating
Cursor instances with strict adherence to Policy restrictions. Created
by RestrictedSegment.as(Class), and applies policies transparently.
The CursorFactory simplifies the process of initializing and retrieving Cursor objects while ensuring
that any cursor created complies with the Policy restrictions.
Policy enforcement in makeCursorHolder(org.apache.druid.segment.CursorBuildSpec):
- Row-level restrictions are enforced by adding filters to
CursorBuildSpec, which is then passed to delegate for execution. This ensures that only relevant data are accessible by the client.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetColumnCapabilities(String column) Returns capabilities of a particular column, if known.Returns theRowSignatureof the data available from this cursor factory.Creates aCursorHolderfor a givenCursorBuildSpecwhich describes how the reader is going to scan, filter, transform, group and aggregate, and/or order the data.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.druid.segment.ColumnInspector
getTypeMethods inherited from interface org.apache.druid.math.expr.Expr.InputBindingInspector
areNumeric, areNumeric, areSameTypes, areSameTypes, areScalar, areScalar, canVectorize, canVectorize
-
Constructor Details
-
RestrictedCursorFactory
-
-
Method Details
-
makeCursorHolder
Description copied from interface:CursorFactoryCreates aCursorHolderfor a givenCursorBuildSpecwhich describes how the reader is going to scan, filter, transform, group and aggregate, and/or order the data.- Specified by:
makeCursorHolderin interfaceCursorFactory
-
getRowSignature
Description copied from interface:CursorFactoryReturns theRowSignatureof the data available from this cursor factory. For mutable segments, even though the signature may evolve over time, any particular object returned by this method is an immutable snapshot.- Specified by:
getRowSignaturein interfaceCursorFactory
-
getColumnCapabilities
Description copied from interface:CursorFactoryReturns capabilities of a particular column, if known. May be null if the column doesn't exist, or if the column does exist but the capabilities are unknown. The latter is possible with dynamically discovered columns. Note that CursorFactory are representations of "real" segments, so they are not aware of any virtual columns that may be involved in a query. In general, query engines should instead use the methodColumnSelectorFactory.getColumnCapabilities(String), which returns capabilities for virtual columns as well.- Specified by:
getColumnCapabilitiesin interfaceColumnInspector- Specified by:
getColumnCapabilitiesin interfaceCursorFactory- Parameters:
column- column name- Returns:
- capabilities, or null
-