private void RunAssertionStatementOM(EPServiceProvider epService)
        {
            var model = new EPStatementObjectModel();

            model.SelectClause = SelectClause.Create("symbol", "price")
                                 .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH)
                                 .Add(Expressions.Avg("price"), "avgPrice");
            model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportMarketDataBean).FullName)
                                                 .AddView("length", Expressions.Constant(5)));
            model.HavingClause = Expressions.Lt(Expressions.Property("price"), Expressions.Avg("price"));
            model = (EPStatementObjectModel)SerializableObjectCopier.Copy(epService.Container, model);

            string epl = "select irstream symbol, price, avg(price) as avgPrice " +
                         "from " + typeof(SupportMarketDataBean).FullName + "#length(5) " +
                         "having price<avg(price)";

            Assert.AreEqual(epl, model.ToEPL());

            EPStatement stmt     = epService.EPAdministrator.Create(model);
            var         listener = new SupportUpdateListener();

            stmt.Events += listener.Update;

            TryAssertion(epService, listener, stmt);

            stmt.Dispose();
        }
Exemple #2
0
        public void TestCreateFromOMComplete()
        {
            var model = new EPStatementObjectModel();

            model.InsertInto   = InsertIntoClause.Create("ReadyStreamAvg", "line", "avgAge");
            model.SelectClause = SelectClause.Create()
                                 .Add("line")
                                 .Add(Expressions.Avg("age"), "avgAge");
            var filter = Filter.Create(typeof(SupportBean).FullName, Expressions.In("line", 1, 8, 10));

            model.FromClause        = FromClause.Create(FilterStream.Create(filter, "RS").AddView("win", "time", Expressions.Constant(10)));
            model.WhereClause       = Expressions.IsNotNull("waverId");
            model.GroupByClause     = GroupByClause.Create("line");
            model.HavingClause      = Expressions.Lt(Expressions.Avg("age"), Expressions.Constant(0));
            model.OutputLimitClause = OutputLimitClause.Create(Expressions.TimePeriod(null, null, null, 10, null));
            model.OrderByClause     = OrderByClause.Create("line");

            Assert.AreEqual("insert into ReadyStreamAvg(line, avgAge) select line, avg(age) as avgAge from com.espertech.esper.support.bean.SupportBean(line in (1,8,10)).win:time(10) as RS where waverId is not null group by line having avg(age)<0 output every 10 seconds order by line", model.ToEPL());
            SerializableObjectCopier.Copy(model);
        }
Exemple #3
0
            public void Run(RegressionEnvironment env)
            {
                EPStatementObjectModel model = new EPStatementObjectModel();
                model.SetInsertInto(InsertIntoClause.Create("ReadyStreamAvg", "line", "avgAge"));
                model.SetSelect(SelectClause.Create().Add("line").Add(Expressions.Avg("age"), "avgAge"));
                Filter filter = Filter.Create(typeof(SupportBean).FullName, Expressions.In("line", 1, 8, 10));
                model.SetFrom(FromClause.Create(FilterStream.Create(filter, "RS").AddView("time", Expressions.Constant(10))));
                model.SetWhere(Expressions.IsNotNull("waverId"));
                model.SetGroupBy(GroupByClause.Create("line"));
                model.SetHaving(Expressions.Lt(Expressions.Avg("age"), Expressions.Constant(0)));
                model.SetOutputLimit(OutputLimitClause.Create(Expressions.TimePeriod(null, null, null, 10, null)));
                model.SetOrderBy(OrderByClause.Create("line"));

                Assert.AreEqual(
                    "insert into ReadyStreamAvg(line, avgAge) select line, avg(age) as avgAge from " +
                    typeof(SupportBean).CleanName() +
                    "(line in (1,8,10))#time(10) as RS where waverId is not null group by line having avg(age)<0 output every 10.0d seconds order by line",
                    model.ToEPL());
                SerializableObjectCopier.CopyMayFail(env.Container, model);
            }
        public void TestSumOneViewOM()
        {
            var model = new EPStatementObjectModel();

            model.SelectClause = SelectClause.Create("Symbol", "Price").SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH).Add(Expressions.Avg("Price"), "avgPrice");
            model.FromClause   = FromClause.Create(FilterStream.Create(typeof(SupportMarketDataBean).FullName).AddView("win", "length", Expressions.Constant(5)));
            model.HavingClause = Expressions.Lt(Expressions.Property("Price"), Expressions.Avg("Price"));
            model = (EPStatementObjectModel)SerializableObjectCopier.Copy(model);

            var viewExpr = "select irstream Symbol, Price, avg(Price) as avgPrice " +
                           "from " + typeof(SupportMarketDataBean).FullName + ".win:length(5) " +
                           "having Price<avg(Price)";

            Assert.AreEqual(viewExpr, model.ToEPL());

            var selectTestView = _epService.EPAdministrator.Create(model);

            selectTestView.AddListener(_listener);

            RunAssertion(selectTestView);
        }
            public void Run(RegressionEnvironment env)
            {
                var model = new EPStatementObjectModel();
                model.SelectClause = SelectClause.Create("Symbol", "Price")
                    .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH)
                    .Add(Expressions.Avg("Price"), "avgPrice");
                model.FromClause = FromClause.Create(
                    FilterStream.Create(typeof(SupportMarketDataBean).Name).AddView("length", Expressions.Constant(5)));
                model.HavingClause = Expressions.Lt(Expressions.Property("Price"), Expressions.Avg("Price"));
                model = env.CopyMayFail(model);

                var epl = "select irstream Symbol, Price, avg(Price) as avgPrice " +
                          "from SupportMarketDataBean#length(5) " +
                          "having Price<avg(Price)";
                Assert.AreEqual(epl, model.ToEPL());

                model.Annotations = Collections.SingletonList(AnnotationPart.NameAnnotation("s0"));
                env.CompileDeploy(model).AddListener("s0");

                TryAssertion(env);

                env.UndeployAll();
            }