Interface ExecutionStepInternal
-
- All Superinterfaces:
ExecutionStep
- All Known Implementing Classes:
AbstractExecutionStep
,AbstractTraverseStep
,AbstractUnrollStep
,AccumulatingTimeoutStep
,AggregateProjectionCalculationStep
,BreadthFirstTraverseStep
,CartesianProductStep
,CastToEdgeStep
,CastToVertexStep
,CheckClassTypeStep
,CheckClusterTypeStep
,CheckIsEdgeTypeStep
,CheckIsVertexTypeStep
,CheckRecordTypeStep
,CheckSafeDeleteStep
,ConvertToResultInternalStep
,ConvertToUpdatableResultStep
,CopyDocumentStep
,CopyRecordContentBeforeUpdateStep
,CountFromClassStep
,CountFromIndexStep
,CountStep
,CreateEdgesStep
,CreateRecordStep
,DeleteFromIndexStep
,DeleteStep
,DepthFirstTraverseStep
,DistinctExecutionStep
,DistributedExecutionStep
,EmptyDataGeneratorStep
,EmptyStep
,ExpandStep
,FetchEdgesFromToVerticesStep
,FetchEdgesToVerticesStep
,FetchFromClassExecutionStep
,FetchFromClusterExecutionStep
,FetchFromClustersExecutionStep
,FetchFromIndexedFunctionStep
,FetchFromIndexStep
,FetchFromIndexValuesStep
,FetchFromRidsStep
,FetchFromSchemaDatabaseStep
,FetchFromSchemaIndexesStep
,FetchFromSchemaTypesStep
,FilterByClassStep
,FilterByClustersStep
,FilterNotMatchPatternStep
,FilterStep
,ForEachStep
,GetValueFromIndexEntryStep
,GlobalLetExpressionStep
,GlobalLetQueryStep
,GuaranteeEmptyCountStep
,IfStep
,InsertIntoIndexStep
,InsertValuesStep
,LetExpressionStep
,LetQueryStep
,LimitExecutionStep
,MatchFirstStep
,MatchPrefetchStep
,MatchStep
,OptionalMatchStep
,OrderByStep
,ParallelExecStep
,ProjectionCalculationStep
,RemoveEdgePointersStep
,RemoveEmptyOptionalsStep
,ReturnMatchElementsStep
,ReturnMatchPathElementsStep
,ReturnMatchPathsStep
,ReturnMatchPatternsStep
,ReturnStep
,SaveElementStep
,ScriptLineStep
,SetDocumentClassStep
,SkipExecutionStep
,SubQueryStep
,TimeoutStep
,UnwindStep
,UnwrapPreviousValueStep
,UpdateContentStep
,UpdateMergeStep
,UpdateRemoveStep
,UpdateSetStep
,UpsertStep
,WhileMatchStep
,WhileStep
public interface ExecutionStepInternal extends ExecutionStep
Execution Steps are the building blocks of a query execution plan
Typically an execution plan is made of a chain of steps. The execution is pull-based, meaning that the result set that the client iterates is conceptually the one returned by last step of the execution plan
At each `next()` invocation, the step typically fetches a record from the previous (upstream) step, does its elaboration (eg. for a filtering step, it can discard the record and fetch another one if it doesn't match the conditions) and returns the elaborated step
The invocation of syncPull(ctx, nResults) has to return a result set of at most nResults records. If the upstream (the previous steps) return more records, they have to be returned by next call of syncPull(). The returned result set can have less than nResults records ONLY if current step cannot produce any more records (eg. the upstream does not have any more records)
- Author:
- Luigi Dell'Aquila luigi.dellaquila-(at)-gmail.com
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static void
basicDeserialize(Result serialized, ExecutionStepInternal step)
static ResultInternal
basicSerialize(ExecutionStepInternal step)
default boolean
canBeCached()
void
close()
default ExecutionStep
copy(CommandContext ctx)
default void
deserialize(Result fromResult)
default String
getDescription()
static String
getIndent(int depth, int indent)
default String
getName()
default List<ExecutionPlan>
getSubExecutionPlans()
default List<ExecutionStep>
getSubSteps()
default String
getTargetNode()
default String
getType()
boolean
isTimedOut()
default String
prettyPrint(int depth, int indent)
default void
reset()
void
sendTimeout()
default Result
serialize()
void
setNext(ExecutionStepInternal step)
void
setPrevious(ExecutionStepInternal step)
ResultSet
syncPull(CommandContext ctx, int nRecords)
-
Methods inherited from interface com.arcadedb.query.sql.executor.ExecutionStep
getCost, toResult
-
-
-
-
Method Detail
-
getIndent
static String getIndent(int depth, int indent)
-
basicSerialize
static ResultInternal basicSerialize(ExecutionStepInternal step)
-
basicDeserialize
static void basicDeserialize(Result serialized, ExecutionStepInternal step) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException
-
syncPull
ResultSet syncPull(CommandContext ctx, int nRecords) throws TimeoutException
- Throws:
TimeoutException
-
sendTimeout
void sendTimeout()
-
isTimedOut
boolean isTimedOut()
-
setPrevious
void setPrevious(ExecutionStepInternal step)
-
setNext
void setNext(ExecutionStepInternal step)
-
close
void close()
-
prettyPrint
default String prettyPrint(int depth, int indent)
-
getName
default String getName()
- Specified by:
getName
in interfaceExecutionStep
-
getType
default String getType()
- Specified by:
getType
in interfaceExecutionStep
-
getDescription
default String getDescription()
- Specified by:
getDescription
in interfaceExecutionStep
-
getTargetNode
default String getTargetNode()
- Specified by:
getTargetNode
in interfaceExecutionStep
-
getSubSteps
default List<ExecutionStep> getSubSteps()
- Specified by:
getSubSteps
in interfaceExecutionStep
-
getSubExecutionPlans
default List<ExecutionPlan> getSubExecutionPlans()
-
reset
default void reset()
-
serialize
default Result serialize()
-
deserialize
default void deserialize(Result fromResult)
-
copy
default ExecutionStep copy(CommandContext ctx)
-
canBeCached
default boolean canBeCached()
-
-