On Mon, Nov 3, 2014 at 3:57 AM, Seshika Fernando <[email protected]> wrote:
> Hi Suho, > > Leaving this particular example aside, I still have an issue with counting > patterns. > In the following example > > from e1 = data -> > e2 = data[(e1.cardNum == e2.cardNum) and (e1.location != e2.location)] <4:> > select e1.cardNum, e1.location as loc1, e2[0].location as loc2, > e2[1].location as loc3, e2[2].location as loc4, e2[3].location as loc5 > insert into alert > > Assuming the below is the stream of transactions > > CardNum, Location > 1234, Kandy > 1234, Colombo > 1234, Trinco > 1234, Galle > 1234, Nairobi > 1234, Jaffna > > Then the first alert should be triggered as *[1234, Kandy, Colombo, > Trinco, Galle, Nairobi] *since there are 4 transactions from the same > card at locations different to the first transaction. > > However, currently we get alerts for every 2 events as follows.. > > data=[1234, Kandy, Colombo, null, null, null] > > data=[1234, Kandy, Colombo, Trinco, null, null] > > data=[1234, Colombo, Trinco, null, null, null] > > data=[1234, Kandy, Colombo, Trinco, Galle, null] > > data=[1234, Colombo, Trinco, Galle, null, null] > > data=[1234, Trinco, Galle, null, null, null] > > data=[1234, Kandy, Colombo, Trinco, Galle, Nairobi] > > data=[1234, Colombo, Trinco, Galle, Nairobi, null] > > data=[1234, Trinco, Galle, Nairobi, null, null] > > data=[1234, Galle, Nairobi, null, null, null] > > data=[1234, Colombo, Trinco, Galle, Nairobi, Jaffna] > > data=[1234, Trinco, Galle, Nairobi, Jaffna, null] > > data=[1234, Galle, Nairobi, Jaffna, null, null] > > data=[1234, Nairobi, Jaffna, null, null, null] > > > So I don't think this is how counting patterns are supposed to work, since > there is no real use of putting <4:> if the alerts are going to come as > above. WDYT? > > I feel we need to revisit counting patterns and their usability. > > It should not return null at-least it has to have 4 valid values. I think that is a bug will have a look For now as a work around, put a having condition to check is last one is not a null from e1 = data -> e2 = data[(e1.cardNum == e2.cardNum) and (e1.location != e2.location)] <4:> select e1.cardNum, e1.location as loc1, e2[0].location as loc2, e2[1].location as loc3, e2[2].location as loc4, e2[3].location as loc5 having e2[3].location instanceof string insert into alert Suho > seshi > > > On Mon, Nov 3, 2014 at 9:06 AM, Supun Muthutantrige <[email protected]> > wrote: > >> Hi Suho, >> >> Yes, the 3rd example worked for the above given scenario. And when more >> than 3 addresses are allowed, what Seshika has mentioned can also be used. >> >> Thank you, >> Regards >> >> >> *Supun Rasitha Muthutantrige* >> Software Engineer | Intern >> WSO2 Inc: http://wso2.com >> lean.enterprise.middleware >> Mobile: 0758374608 >> > > -- *S. Suhothayan* Technical Lead & Team Lead of WSO2 Complex Event Processor *WSO2 Inc. *http://wso2.com * <http://wso2.com/>* lean . enterprise . middleware *cell: (+94) 779 756 757 | blog: http://suhothayan.blogspot.com/ <http://suhothayan.blogspot.com/>twitter: http://twitter.com/suhothayan <http://twitter.com/suhothayan> | linked-in: http://lk.linkedin.com/in/suhothayan <http://lk.linkedin.com/in/suhothayan>*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
