public virtual FieldIndexProcessorResult Run()
        {
            IIndexedNode bestIndex = SelectBestIndex();

            if (null == bestIndex)
            {
                return(FieldIndexProcessorResult.NoIndexFound);
            }
            IIndexedNode resolved = ResolveFully(bestIndex);

            if (!bestIndex.IsEmpty())
            {
                bestIndex.MarkAsBestIndex(_candidates);
                return(new FieldIndexProcessorResult(resolved));
            }
            return(FieldIndexProcessorResult.FoundIndexButNoMatch);
        }
        public virtual FieldIndexProcessorResult Run()
        {
            IIndexedNode bestIndex = SelectBestIndex();

            if (null == bestIndex)
            {
                return(FieldIndexProcessorResult.NoIndexFound);
            }
            if (bestIndex.ResultSize() > 0)
            {
                IIndexedNode resolved = ResolveFully(bestIndex);
                if (null == resolved)
                {
                    return(FieldIndexProcessorResult.NoIndexFound);
                }
                resolved.MarkAsBestIndex();
                return(new FieldIndexProcessorResult(resolved));
            }
            return(FieldIndexProcessorResult.FoundIndexButNoMatch);
        }
Ejemplo n.º 3
0
 public override void MarkAsBestIndex()
 {
     _constraint.SetProcessedByIndex();
     _next.MarkAsBestIndex();
 }
Ejemplo n.º 4
0
 public override void MarkAsBestIndex(QCandidates candidates)
 {
     _constraint.SetProcessedByIndex(candidates);
     _next.MarkAsBestIndex(candidates);
 }