public void Run(RegressionEnvironment env) { var path = new RegressionPath(); var stmtOrigText = "@Name('split') on SupportBean " + "insert into AStream2SP select * where IntPrimitive=1 " + "insert into BStream2SP select * where IntPrimitive=1 or IntPrimitive=2"; env.CompileDeploy(stmtOrigText, path).AddListener("split"); TryAssertion(env, path); path.Clear(); // statement object model var model = new EPStatementObjectModel(); model.Annotations = Collections.SingletonList(new AnnotationPart("Audit")); model.FromClause = FromClause.Create(FilterStream.Create("SupportBean")); model.InsertInto = InsertIntoClause.Create("AStream2SP"); model.SelectClause = SelectClause.CreateWildcard(); model.WhereClause = Expressions.Eq("IntPrimitive", 1); var clause = OnClause.CreateOnInsertSplitStream(); model.OnExpr = clause; var item = OnInsertSplitStreamItem.Create( InsertIntoClause.Create("BStream2SP"), SelectClause.CreateWildcard(), Expressions.Or(Expressions.Eq("IntPrimitive", 1), Expressions.Eq("IntPrimitive", 2))); clause.AddItem(item); model.Annotations = Collections.SingletonList(AnnotationPart.NameAnnotation("split")); Assert.AreEqual(stmtOrigText, model.ToEPL()); env.CompileDeploy(model, path).AddListener("split"); TryAssertion(env, path); path.Clear(); env.EplToModelCompileDeploy(stmtOrigText, path).AddListener("split"); TryAssertion(env, path); }
public InsertQueryBuilder InsertInto(TableReference table, params string[] columns) { Into = new InsertIntoClause(table); AddColumns(columns); return(this); }
public InsertQueryBuilder InsertInto(TableReference table, ITuple columns = null) { Into = new InsertIntoClause(table); if (columns != null) { AddColumns(columns); } return(this); }
public void TestVariantOneOMToStmt() { var model = new EPStatementObjectModel(); model.InsertInto = InsertIntoClause.Create("Event_1", "delta", "product"); model.SelectClause = SelectClause.Create().Add(Expressions.Minus("IntPrimitive", "IntBoxed"), "deltaTag") .Add(Expressions.Multiply("IntPrimitive", "IntBoxed"), "productTag"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName).AddView(View.Create("win", "length", Expressions.Constant(100)))); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(model); var stmt = RunAsserts(null, model); var epl = "insert into Event_1(delta, product) " + "select IntPrimitive-IntBoxed as deltaTag, IntPrimitive*IntBoxed as productTag " + "from " + typeof(SupportBean).FullName + ".win:length(100)"; Assert.AreEqual(epl, model.ToEPL()); Assert.AreEqual(epl, stmt.Text); }
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); }
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); }
private void RunAssertionVariantOneOMToStmt(EPServiceProvider epService) { var model = new EPStatementObjectModel(); model.InsertInto = InsertIntoClause.Create("Event_1_OMS", "delta", "product"); model.SelectClause = SelectClause.Create().Add(Expressions.Minus("IntPrimitive", "IntBoxed"), "deltaTag") .Add(Expressions.Multiply("IntPrimitive", "IntBoxed"), "productTag"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName).AddView(View.Create("length", Expressions.Constant(100)))); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(epService.Container, model); EPStatement stmt = TryAssertsVariant(epService, null, model, "Event_1_OMS"); string epl = "insert into Event_1_OMS(delta, product) " + "select IntPrimitive-IntBoxed as deltaTag, IntPrimitive*IntBoxed as productTag " + "from " + typeof(SupportBean).FullName + "#length(100)"; Assert.AreEqual(epl, model.ToEPL()); Assert.AreEqual(epl, stmt.Text); stmt.Dispose(); }
private void RunAssertion2SplitNoDefaultOutputFirst(EPServiceProvider epService) { var stmtOrigText = "@Audit on SupportBean " + "insert into AStream2SP select * where IntPrimitive=1 " + "insert into BStream2SP select * where IntPrimitive=1 or IntPrimitive=2"; var stmtOrig = epService.EPAdministrator.CreateEPL(stmtOrigText); TryAssertion(epService, stmtOrig); // statement object model var model = new EPStatementObjectModel(); model.Annotations = Collections.SingletonList(new AnnotationPart("Audit")); model.FromClause = FromClause.Create(FilterStream.Create("SupportBean")); model.InsertInto = InsertIntoClause.Create("AStream2SP"); model.SelectClause = SelectClause.CreateWildcard(); model.WhereClause = Expressions.Eq("IntPrimitive", 1); var clause = OnClause.CreateOnInsertSplitStream(); model.OnExpr = clause; var item = OnInsertSplitStreamItem.Create( InsertIntoClause.Create("BStream2SP"), SelectClause.CreateWildcard(), Expressions.Or(Expressions.Eq("IntPrimitive", 1), Expressions.Eq("IntPrimitive", 2))); clause.AddItem(item); Assert.AreEqual(stmtOrigText, model.ToEPL()); stmtOrig = epService.EPAdministrator.Create(model); TryAssertion(epService, stmtOrig); var newModel = epService.EPAdministrator.CompileEPL(stmtOrigText); stmtOrig = epService.EPAdministrator.Create(newModel); Assert.AreEqual(stmtOrigText, newModel.ToEPL()); TryAssertion(epService, stmtOrig); SupportModelHelper.CompileCreate(epService, stmtOrigText + " output all"); epService.EPAdministrator.DestroyAllStatements(); }
private void RunAssertionVariantRStreamOMToStmt(EPServiceProvider epService) { var model = new EPStatementObjectModel(); model.InsertInto = InsertIntoClause.Create("Event_1_RSOM", new string[0], StreamSelector.RSTREAM_ONLY); model.SelectClause = SelectClause.Create().Add("IntPrimitive", "IntBoxed"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName)); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(epService.Container, model); EPStatement stmt = epService.EPAdministrator.Create(model, "s1"); string epl = "insert rstream into Event_1_RSOM " + "select IntPrimitive, IntBoxed " + "from " + typeof(SupportBean).FullName; Assert.AreEqual(epl, model.ToEPL()); Assert.AreEqual(epl, stmt.Text); EPStatementObjectModel modelTwo = epService.EPAdministrator.CompileEPL(model.ToEPL()); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(epService.Container, model); Assert.AreEqual(epl, modelTwo.ToEPL()); // assert statement-type reference EPServiceProviderSPI spi = (EPServiceProviderSPI)epService; Assert.IsTrue(spi.StatementEventTypeRef.IsInUse("Event_1_RSOM")); var stmtNames = spi.StatementEventTypeRef.GetStatementNamesForType(typeof(SupportBean).FullName); Assert.IsTrue(stmtNames.Contains("s1")); stmt.Dispose(); Assert.IsFalse(spi.StatementEventTypeRef.IsInUse("Event_1_RSOM")); stmtNames = spi.StatementEventTypeRef.GetStatementNamesForType(typeof(SupportBean).FullName); Assert.IsFalse(stmtNames.Contains("s1")); }
protected virtual void ParseInsertIntoClause(InsertIntoClause into) { builder.Append("INSERT INTO "); ParseTable(into.Table); }