public interface OExecutionStepInternal extends OExecutionStep
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)
Modifier and Type | Method and Description |
---|---|
static void |
basicDeserialize(OResult serialized,
OExecutionStepInternal step) |
static OResultInternal |
basicSerialize(OExecutionStepInternal step) |
default boolean |
canBeCached() |
void |
close() |
default OExecutionStep |
copy(OCommandContext ctx) |
default void |
deserialize(OResult fromResult) |
default String |
getDescription() |
static String |
getIndent(int depth,
int indent) |
default String |
getName() |
default List<OExecutionPlan> |
getSubExecutionPlans() |
default List<OExecutionStep> |
getSubSteps() |
default String |
getTargetNode() |
default String |
getType() |
default String |
prettyPrint(int depth,
int indent) |
default void |
reset() |
void |
sendTimeout() |
default OResult |
serialize() |
void |
setNext(OExecutionStepInternal step) |
void |
setPrevious(OExecutionStepInternal step) |
OResultSet |
syncPull(OCommandContext ctx,
int nRecords) |
getCost, toResult
OResultSet syncPull(OCommandContext ctx, int nRecords) throws OTimeoutException
OTimeoutException
void sendTimeout()
void setPrevious(OExecutionStepInternal step)
void setNext(OExecutionStepInternal step)
void close()
static String getIndent(int depth, int indent)
default String prettyPrint(int depth, int indent)
default String getName()
getName
in interface OExecutionStep
default String getType()
getType
in interface OExecutionStep
default String getDescription()
getDescription
in interface OExecutionStep
default String getTargetNode()
getTargetNode
in interface OExecutionStep
default List<OExecutionStep> getSubSteps()
getSubSteps
in interface OExecutionStep
default List<OExecutionPlan> getSubExecutionPlans()
default void reset()
default OResult serialize()
default void deserialize(OResult fromResult)
static OResultInternal basicSerialize(OExecutionStepInternal step)
static void basicDeserialize(OResult serialized, OExecutionStepInternal step) throws ClassNotFoundException, IllegalAccessException, InstantiationException
default OExecutionStep copy(OCommandContext ctx)
default boolean canBeCached()
Copyright © 2009–2020 OrientDB. All rights reserved.