public SubordinateQueryPlanDescForge(
     SubordTableLookupStrategyFactoryForge lookupStrategyFactory,
     SubordinateQueryIndexDescForge[] indexDescs)
 {
     LookupStrategyFactory = lookupStrategyFactory;
     IndexDescs = indexDescs;
 }
        public static void QueryPlanLogOnExpr(
            bool queryPlanLogging,
            ILog queryPlanLog,
            SubordinateWMatchExprQueryPlanForge strategy,
            Attribute[] annotations,
            ImportService importService)
        {
            QueryPlanIndexHook hook = QueryPlanIndexHookUtil.GetHook(annotations, importService);
            if (queryPlanLogging && (queryPlanLog.IsInfoEnabled || hook != null)) {
                var prefix = "On-Expr ";
                queryPlanLog.Info(prefix + "strategy " + strategy.Strategy.ToQueryPlan());
                if (strategy.Indexes == null) {
                    queryPlanLog.Info(prefix + "full table scan");
                }
                else {
                    for (var i = 0; i < strategy.Indexes.Length; i++) {
                        string indexName = strategy.Indexes[i].IndexName;
                        var indexText = indexName != null ? "index " + indexName + " " : "(implicit) (" + i + ")";
                        queryPlanLog.Info(prefix + indexText);
                    }
                }

                if (hook != null) {
                    var pairs = GetPairs(strategy.Indexes);
                    SubordTableLookupStrategyFactoryForge inner = strategy.Strategy.OptionalInnerStrategy;
                    hook.InfraOnExpr(
                        new QueryPlanIndexDescOnExpr(
                            pairs,
                            strategy.Strategy.GetType().GetSimpleName(),
                            inner == null ? null : inner.GetType().GetSimpleName()));
                }
            }
        }
 public SubordWMatchExprLookupStrategyIndexedFilteredForge(
     ExprForge exprForge,
     SubordTableLookupStrategyFactoryForge lookupStrategyFactory)
 {
     this.exprForge = exprForge;
     OptionalInnerStrategy = lookupStrategyFactory;
 }
示例#4
0
 public SubqueryIndexForgeDesc(
     EventTableFactoryFactoryForge tableForge,
     SubordTableLookupStrategyFactoryForge lookupForge,
     IList<StmtClassForgeableFactory> additionalForgeables)
 {
     TableForge = tableForge;
     LookupForge = lookupForge;
     AdditionalForgeables = additionalForgeables;
 }
 public SubordWMatchExprLookupStrategyIndexedUnfilteredForge(
     SubordTableLookupStrategyFactoryForge lookupStrategyFactory)
 {
     OptionalInnerStrategy = lookupStrategyFactory;
 }