Class OCommandExecutorSQLTraverse
java.lang.Object
com.orientechnologies.common.parser.OBaseParser
com.orientechnologies.orient.core.command.OCommandExecutorAbstract
com.orientechnologies.orient.core.sql.OCommandExecutorSQLAbstract
com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract
com.orientechnologies.orient.core.sql.OCommandExecutorSQLTraverse
- All Implemented Interfaces:
OCommandDistributedReplicateRequest,OCommandExecutor,OIterableRecordSource,Iterable<OIdentifiable>
Executes a TRAVERSE crossing records. Returns a List containing all the traversed
records that match the WHERE condition.
SYNTAX: TRAVERSE
In the command context you've access to the variable $depth containing the depth level from
the root node. This is useful to limit the traverse up to a level. For example to consider from
the first depth level (0 is root node) to the third use:
TRAVERSE children FROM #5:23 WHERE $depth BETWEEN 1 AND 3. To filter traversed records use
it combined with a SELECT statement:
SELECT FROM (TRAVERSE children FROM #5:23 WHERE $depth BETWEEN 1 AND 3) WHERE city.name = 'Rome'
- Author:
- Luca Garulli (l.garulli--(at)--orientdb.com)
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.orientechnologies.orient.core.command.OCommandDistributedReplicateRequest
OCommandDistributedReplicateRequest.DISTRIBUTED_EXECUTION_MODE, OCommandDistributedReplicateRequest.DISTRIBUTED_RESULT_MGMT, OCommandDistributedReplicateRequest.QUORUM_TYPE -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract
compiledFilter, KEYWORD_FROM_2FIND, KEYWORD_LET_2FIND, lazyIteration, let, parsedTarget, request, resultCount, serialTempRID, skip, target, tempResultFields inherited from class com.orientechnologies.orient.core.sql.OCommandExecutorSQLAbstract
CLASS_PREFIX, CLUSTER_PREFIX, DEFAULT_PARAM_USER, DICTIONARY_PREFIX, INDEX_PREFIX, INDEX_VALUES_ASC_PREFIX, INDEX_VALUES_DESC_PREFIX, INDEX_VALUES_PREFIX, KEYWORD_FROM, KEYWORD_KEY, KEYWORD_LET, KEYWORD_LIMIT, KEYWORD_LOCK, KEYWORD_OFFSET, KEYWORD_RETURN, KEYWORD_RID, KEYWORD_SKIP, KEYWORD_TIMEOUT, KEYWORD_UNSAFE, KEYWORD_WHERE, METADATA_DATABASE, METADATA_DISTRIBUTED, METADATA_INDEXMGR, METADATA_PREFIX, METADATA_SCHEMA, METADATA_STORAGE, preParsedStatement, timeoutMs, timeoutStrategyFields inherited from class com.orientechnologies.orient.core.command.OCommandExecutorAbstract
context, limit, parameters, progressListenerFields inherited from class com.orientechnologies.common.parser.OBaseParser
parserText, parserTextUpperCase -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanassignTarget(Map<Object, Object> iArgs) Assign the right TARGET if found.Execute the requested command parsed previously.Returns the quorum type for the command: NONE: no quorum READ: configured Read quorum WRITE: configured Write quorum ALL: all nodesiterator()parse(OCommandRequest iRequest) Compile the filter conditions only the first time.protected intprotected booleanprotected booleanParses the strategy keyword if found.protected voidMethods inherited from class com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract
applyLimitAndSkip, assignLetClauses, evaluateRecord, filter, getDistributedExecutionMode, getDistributedResultManagement, getRange, getResult, getResultInstance, getTarget, handleResult, isCacheable, isIdempotent, isLazyIteration, isUseCache, mergeResults, optimize, optimizeBranch, optimizeFunction, parseLet, parseLimit, parseSkip, pushResult, searchInClasses, searchInClasses, searchInClasses, searchInClusters, setCompiledFilter, setLazyIteration, setParsedTarget, setRequest, setTargetMethods inherited from class com.orientechnologies.orient.core.sql.OCommandExecutorSQLAbstract
bindDefaultContextVariables, checkClusterAccess, decodeClassName, getInvolvedClustersOfClasses, getInvolvedClustersOfClusters, getInvolvedClustersOfIndex, parseLock, parseTimeout, preParse, throwParsingException, throwParsingException, throwSyntaxErrorExceptionMethods inherited from class com.orientechnologies.orient.core.command.OCommandExecutorAbstract
checkInterruption, checkInterruption, getDatabase, getDistributedTimeout, getFetchPlan, getInvolvedClusters, getLimit, getParameters, getProgressListener, getSecurityOperationType, getUndoCommand, init, involveSchema, isDistributedExecutingOnLocalNodeFirst, isLocalExecution, setContext, setLimit, setProgressListener, toStringMethods inherited from class com.orientechnologies.common.parser.OBaseParser
getLastWordLength, getWordStatic, nextWord, nextWord, parseOptionalWord, parserGetCurrentChar, parserGetCurrentPosition, parserGetLastSeparator, parserGetLastWord, parserGetPreviousPosition, parserGoBack, parserIsEnded, parserMoveCurrentPosition, parserNextChars, parserNextWord, parserNextWord, parserNextWord, parserOptionalKeyword, parserOptionalWord, parserRequiredKeyword, parserRequiredWord, parserRequiredWord, parserRequiredWord, parserSetCurrentPosition, parserSetEndOfText, parserSetLastSeparator, parserSkipWhiteSpacesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface com.orientechnologies.orient.core.command.OCommandDistributedReplicateRequest
getDistributedTimeout, getUndoCommand, isDistributedExecutingOnLocalNodeFirst
-
Field Details
-
KEYWORD_WHILE
- See Also:
-
KEYWORD_TRAVERSE
- See Also:
-
KEYWORD_STRATEGY
- See Also:
-
KEYWORD_MAXDEPTH
- See Also:
-
-
Constructor Details
-
OCommandExecutorSQLTraverse
public OCommandExecutorSQLTraverse()
-
-
Method Details
-
parse
Compile the filter conditions only the first time.- Specified by:
parsein interfaceOCommandExecutor- Overrides:
parsein classOCommandExecutorSQLResultsetAbstract- Parameters:
iRequest- Command request implementation.- Returns:
- See Also:
-
#execute(Map<Object, Object>...)
-
parseMaxDepth
- Throws:
OCommandSQLParsingException
-
execute
Description copied from interface:OCommandExecutorExecute the requested command parsed previously.- Parameters:
iArgs- Optional variable arguments to pass to the command.- Returns:
- See Also:
-
getContext
- Specified by:
getContextin interfaceOCommandExecutor- Overrides:
getContextin classOCommandExecutorAbstract
-
iterator
-
iterator
-
getSyntax
- Specified by:
getSyntaxin interfaceOCommandExecutor- Overrides:
getSyntaxin classOBaseParser
-
warnDeprecatedWhere
protected void warnDeprecatedWhere() -
assignTarget
Description copied from class:OCommandExecutorSQLResultsetAbstractAssign the right TARGET if found.- Overrides:
assignTargetin classOCommandExecutorSQLResultsetAbstract- Parameters:
iArgs- Parameters to bind- Returns:
- true if the target has been recognized, otherwise false
-
parseFields
protected int parseFields() -
parseStrategy
Parses the strategy keyword if found.- Throws:
OCommandSQLParsingException
-
getQuorumType
Description copied from interface:OCommandDistributedReplicateRequestReturns the quorum type for the command:- NONE: no quorum
- READ: configured Read quorum
- WRITE: configured Write quorum
- ALL: all nodes
-