protected NodeSequence createNodeSequenceForSource ( QueryCommand originalQuery , QueryContext context , PlanNode sourceNode , Columns columns , QuerySources sources ) { // The indexes should already be in the correct order, from lowest cost to highest cost ... for ( PlanNode indexNode : sourceNode . getChildren ( ) ) { if ( indexNode . getType ( ) != Type . INDEX ) continue ; IndexPlan index = indexNode . getProperty ( Property . INDEX_SPECIFICATION , IndexPlan . class ) ; NodeSequence sequence = createNodeSequenceForSource ( originalQuery , context , sourceNode , index , columns , sources ) ; if ( sequence != null ) { // Mark the index as being used ... indexNode . setProperty ( Property . INDEX_USED , Boolean . TRUE ) ; return sequence ; } // Otherwise, keep looking for an index ... LOGGER . debug ( "Skipping disabled index '{0}' from provider '{1}' in workspace(s) {2} for query: {3}" , index . getName ( ) , index . getProviderName ( ) , context . getWorkspaceNames ( ) , originalQuery ) ; } // Grab all of the nodes ... return sources . allNodes ( 1.0f , - 1 ) ; }
Create a node sequence for the given source .