private void RunAssertionDocSample(EPServiceProvider epService)
        {
            epService.EPAdministrator.Configuration.AddEventType(typeof(AEvent));
            epService.EPAdministrator.Configuration.AddEventType(typeof(BEvent));

            var hints = new string[] {
                "@Hint('Exclude_plan(true)')",
                "@Hint('Exclude_plan(opname=\"equals\")')",
                "@Hint('Exclude_plan(opname=\"equals\" and from_streamname=\"a\")')",
                "@Hint('Exclude_plan(opname=\"equals\" and from_streamname=\"b\")')",
                "@Hint('Exclude_plan(exprs[0]=\"aprop\")')"
            };

            foreach (string hint in hints)
            {
                epService.EPAdministrator.CreateEPL("@Audit " + hint +
                                                    "select * from AEvent#keepall as a, BEvent#keepall as b where aprop = bprop");
            }

            // test subquery
            SupportQueryPlanIndexHook.Reset();
            epService.EPAdministrator.CreateEPL(INDEX_CALLBACK_HOOK + "@Hint('Exclude_plan(true)') select (select * from S0#unique(p00) as s0 where s1.p10 = p00) from S1 as s1");
            QueryPlanIndexDescSubquery subq = SupportQueryPlanIndexHook.GetAndResetSubqueries()[0];

            Assert.AreEqual(typeof(SubordFullTableScanLookupStrategyFactory).Name, subq.TableLookupStrategy);

            // test named window
            epService.EPAdministrator.CreateEPL("create window S0Window#keepall as S0");
            epService.EPAdministrator.CreateEPL(INDEX_CALLBACK_HOOK + "@Hint('Exclude_plan(true)') on S1 as s1 select * from S0Window as s0 where s1.p10 = s0.p00");
            QueryPlanIndexDescOnExpr onExpr = SupportQueryPlanIndexHook.GetAndResetOnExpr();

            Assert.AreEqual(typeof(SubordWMatchExprLookupStrategyFactoryAllFiltered).Name, onExpr.StrategyName);

            epService.EPAdministrator.DestroyAllStatements();
        }
        public static QueryPlanIndexDescSubquery AssertSubqueryAndReset()
        {
            Assert.IsTrue(Subqueries.Count == 1);
            QueryPlanIndexDescSubquery subquery = Subqueries[0];

            Reset();
            return(subquery);
        }
        public static void AssertSubqueryBackingAndReset(int subqueryNum, string tableName, string indexBackingClass)
        {
            Assert.IsTrue(Subqueries.Count == 1);
            QueryPlanIndexDescSubquery subquery = Subqueries[0];

            AssertSubquery(subquery, subqueryNum, tableName, indexBackingClass);
            Reset();
        }
 public static void AssertSubquery(
     QueryPlanIndexDescSubquery subquery,
     int subqueryNum,
     string tableName,
     string indexBackingClass)
 {
     if (indexBackingClass == null)
     {
         Assert.AreEqual(0, subquery.Tables.Length);
         return;
     }
     Assert.AreEqual(tableName, subquery.Tables[0].IndexName);
     Assert.AreEqual(subqueryNum, subquery.SubqueryNum);
     Assert.AreEqual(indexBackingClass, subquery.Tables[0].IndexDesc);
 }
 public void Subquery(QueryPlanIndexDescSubquery subquery)
 {
     Subqueries.Add(subquery);
 }
 public void Subquery(QueryPlanIndexDescSubquery subquery)
 {
     SUBQUERIES.Add(subquery);
 }