Sure. I'll check the issue and send a separate PR with the fix.

Thanks & Regards,
Gobinath

On Sun, May 7, 2017 at 1:51 PM, Sriskandarajah Suhothayan <s...@wso2.com>
wrote:

> Yes, it looks like a bug to me, can you check why it's happening.
>
> Regards
> Suho
>
> On Sun, May 7, 2017 at 8:56 PM, Nirmal Fernando <nir...@wso2.com> wrote:
>
>> Looks like a bug to me. I would expect only 1 event.
>>
>> On Sun, May 7, 2017 at 8:49 PM, Gobinath <slgobin...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Thanks for accepting my proposal. I have a question regarding the
>>> behavior of *and* in a pattern.
>>>
>>> // Query: e1 and e2 -> e3
>>>
>>> define stream Stream1 (symbol string, price float, volume int);
>>> define stream Stream2 (symbol string, price float, volume int);
>>>
>>> @info(name = 'query1')
>>> from e1=Stream1[price > 50.0f] and e2=Stream2['IBM' == symbol] ->
>>> e3=Stream2[price > 20]
>>> select e1.symbol as symbol1, e2.price as price2, e3.price as price3
>>> insert into OutputStream;
>>>
>>> // Input
>>> Stream1.send(new Object[]{"GOOGLE", 72.7f, 100});
>>> Stream2.send(new Object[]{"IBM", 4.7f, 100});
>>> Stream2.send(new Object[]{"WSO2", 55.6f, 100});
>>>
>>>
>>> // Output
>>> Event{timestamp=1494169305631, data=[GOOGLE, 4.7, 55.6], isExpired=false}
>>> Event{timestamp=1494169305631, data=[GOOGLE, 4.7, 55.6], isExpired=false}
>>>
>>> Is this the expected output?. Note that the output contains two exactly
>>> similar events but the pattern *e1 -> e2 and e3* outputs a single event
>>> [1].
>>>
>>> [1] https://github.com/wso2/siddhi/blob/master/modules/siddh
>>> i-core/src/test/java/org/wso2/siddhi/core/query/pattern/Logi
>>> calPatternTestCase.java#L98
>>>
>>>
>>> Thanks & Regards,
>>> Gobinath
>>>
>>> On Mon, Apr 17, 2017 at 7:58 AM, Gobinath <slgobin...@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> Please see the PR at [1]. Please do not merge it.
>>>>
>>>>
>>>> Thanks & Regards,
>>>> Gobinath
>>>>
>>>> [1] https://github.com/wso2/siddhi/pull/313
>>>>
>>>>
>>>> On Mon, Apr 17, 2017 at 7:44 AM, Sriskandarajah Suhothayan <
>>>> s...@wso2.com> wrote:
>>>>
>>>>> Based on first look, it looks great.
>>>>>
>>>>> Can you send it as a PR so I can see the exact implementations and
>>>>> also give comments.
>>>>>
>>>>> Regards
>>>>> Suho
>>>>>
>>>>> On Mon, Apr 17, 2017 at 5:30 AM, Gobinath <slgobin...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> A prototype is implemented and available at [1]. Currently the query
>>>>>> support for absent patterns and two simple pattern identifications (e1
>>>>>> -> not e2 and not e1 -> e2) are implemented. Please have a look at
>>>>>> the unit test [2] to get the idea. Class names and variable names are
>>>>>> subject to change (will finalize later). I am waiting for your feedback.
>>>>>>
>>>>>>
>>>>>> Thanks & Regards,
>>>>>> Gobinath
>>>>>>
>>>>>>
>>>>>> [1] https://github.com/lgobinath/siddhi/tree/feature-absent-
>>>>>> event-pattern
>>>>>> [2] https://github.com/lgobinath/siddhi/blob/feature-absent-
>>>>>> event-pattern/modules/siddhi-core/src/test/java/org/wso2/sid
>>>>>> dhi/core/query/pattern/EveryAbsentPatternTestCase.java
>>>>>>
>>>>>>
>>>>>> On Fri, Mar 31, 2017 at 6:28 AM, Gobinath <slgobin...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> Thanks Suho for your feedback. I have made the changes based on your
>>>>>>> suggestions and submitted the final proposal. Started working on a
>>>>>>> prototype and will update you soon with the results.
>>>>>>>
>>>>>>>
>>>>>>> Thanks & Regards,
>>>>>>> Gobinath
>>>>>>>
>>>>>>> On Thu, Mar 30, 2017 at 12:28 PM, Sriskandarajah Suhothayan <
>>>>>>> s...@wso2.com> wrote:
>>>>>>>
>>>>>>>> I have given some feedback on the gsoc site.
>>>>>>>>
>>>>>>>> Suho
>>>>>>>>
>>>>>>>> On Mon, Mar 27, 2017 at 9:03 PM, Gobinath <slgobin...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> Thanks. I have shared the draft of my proposal titled
>>>>>>>>> "Non-Occurrence of Events for Siddhi Patterns" with WSO2 through GSoC
>>>>>>>>> dashboard and requesting your feedback on this.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks & Regards,
>>>>>>>>> Gobinath
>>>>>>>>>
>>>>>>>>> On Wed, Mar 15, 2017 at 1:30 PM, Sriskandarajah Suhothayan <
>>>>>>>>> s...@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>> Thanks for the GSoC idea, I hope this will be a good way to
>>>>>>>>>> improve the Siddhi language and make it more powerfull.
>>>>>>>>>> If time permits we can also add other use-cases of patterns &
>>>>>>>>>> sequences and improve it further.
>>>>>>>>>>
>>>>>>>>>> Since you are still not a commuter I hope these contributions
>>>>>>>>>> will help you be a committer to Siddhi as well :)
>>>>>>>>>> I'll make this as a formal idea, do work on a proposal as well.
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>> Suho
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Mar 15, 2017 at 6:09 PM, Gobinath <slgobin...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi team,
>>>>>>>>>>>
>>>>>>>>>>> This is Gobinath a former software engineer at WSO2 currently
>>>>>>>>>>> doing masters at Western University. This time I plan to do GSoC 
>>>>>>>>>>> with WSO2
>>>>>>>>>>> and this is the basic idea of what I have discussed with Suho.
>>>>>>>>>>> Based on Suho's suggestion, I come up with a proposal to
>>>>>>>>>>> implement detecting non-occurring events using Siddhi patterns. The 
>>>>>>>>>>> current
>>>>>>>>>>> Siddhi patterns allow identifying the patterns that present.
>>>>>>>>>>>
>>>>>>>>>>> See an example:
>>>>>>>>>>> from every e1=Stream1[price>20] -> e2=Stream2[price>e1.price]
>>>>>>>>>>> within 1 sec
>>>>>>>>>>> select e1.symbol as symbol1, e2.symbol as symbol2
>>>>>>>>>>> insert into OutputStream;
>>>>>>>>>>>
>>>>>>>>>>> Detecting the absence of a pattern is not natively supported by
>>>>>>>>>>> Siddhi patterns for the moment. In other words, identifying event_a 
>>>>>>>>>>> not
>>>>>>>>>>> followed by event_b within 2 minutes is not possible using the 
>>>>>>>>>>> current
>>>>>>>>>>> patterns implementation (Note that a time frame is required 
>>>>>>>>>>> otherwise we
>>>>>>>>>>> have to wait for infinite time to say event_b has not arrived). The 
>>>>>>>>>>> current
>>>>>>>>>>> workaround [1] to detect non-delivered items is shown below:
>>>>>>>>>>>
>>>>>>>>>>> from arrivals_stream#window.time(2 minutes)
>>>>>>>>>>> select *
>>>>>>>>>>> insert expired events into overdue_deliveries_stream;
>>>>>>>>>>>
>>>>>>>>>>> from every arrivalEvent = arrivals_stream ->
>>>>>>>>>>> deliveryEvent = deliveries_stream[arrivalEvent.trackingId ==
>>>>>>>>>>> trackingId]
>>>>>>>>>>>     or overdue_delivery = 
>>>>>>>>>>> overdue_deliveries_stream[arrivalEvent.trackingId
>>>>>>>>>>> == trackingId]
>>>>>>>>>>> select arrivalEvent.trackingId as trackingId,
>>>>>>>>>>> arrivalEvent.customerName as customerName, arrivalEvent.telephoneNo 
>>>>>>>>>>> as
>>>>>>>>>>> telephoneNo, deliveryEvent.trackingId as deliveryId
>>>>>>>>>>> insert into filter_stream;
>>>>>>>>>>>
>>>>>>>>>>> from filter_stream [ (deliveryId is null)]
>>>>>>>>>>> select trackingId, customerName, telephoneNo
>>>>>>>>>>> insert into alert_stream;
>>>>>>>>>>>
>>>>>>>>>>> This solution requires a time window and it is inefficient if we
>>>>>>>>>>> are interested only on one occurrence of such a pattern (In other 
>>>>>>>>>>> words
>>>>>>>>>>> same query without every keyword). Further, the query is more 
>>>>>>>>>>> complex and
>>>>>>>>>>> not user-friendly.
>>>>>>>>>>>
>>>>>>>>>>> If we provide patterns to detect absence of patterns, the above
>>>>>>>>>>> query can be rewritten as below:
>>>>>>>>>>>
>>>>>>>>>>> from every arrivalEvent = arrivals_stream ->  (not
>>>>>>>>>>> deliveries_stream[arrivalEvent.trackingId == trackingId] within
>>>>>>>>>>> 2 min )
>>>>>>>>>>> select arrivalEvent.trackingId as trackingId,
>>>>>>>>>>> arrivalEvent.customerName as customerName, arrivalEvent.telephoneNo 
>>>>>>>>>>> as
>>>>>>>>>>> telephoneNo
>>>>>>>>>>> insert into alert_stream;
>>>>>>>>>>>
>>>>>>>>>>> As you can see, we can use the existing language components like
>>>>>>>>>>> not & within. This can be achieved by extending the existing
>>>>>>>>>>> StreamPreStateProcessors and StreamPostStateProcessors with an 
>>>>>>>>>>> internal
>>>>>>>>>>> timer so that they can expire their internal list of events based 
>>>>>>>>>>> on the
>>>>>>>>>>> time limit. It is somewhat similar to time windows but the 
>>>>>>>>>>> processor can
>>>>>>>>>>> turn off the timer and ignore the events if it is a one time pattern
>>>>>>>>>>> detection.
>>>>>>>>>>>
>>>>>>>>>>> I hope it gives the basic idea and I am waiting for your
>>>>>>>>>>> suggestions and feedback.
>>>>>>>>>>>
>>>>>>>>>>> [1] https://docs.wso2.com/display/CEP400/Sample+0111+-+Detec
>>>>>>>>>>> ting+non-occurrences+with+Patterns
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks & Regards,
>>>>>>>>>>> Gobinath
>>>>>>>>>>> --
>>>>>>>>>>> *Gobinath** Loganathan*
>>>>>>>>>>> Graduate Student,
>>>>>>>>>>> Electrical and Computer Engineering,
>>>>>>>>>>> Western University.
>>>>>>>>>>> Email  : slgobin...@gmail.com
>>>>>>>>>>> Mobile : (+1) 416-895-0721
>>>>>>>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> *S. Suhothayan*
>>>>>>>>>> Associate Director / Architect & Team Lead of WSO2 Complex Event
>>>>>>>>>> Processor
>>>>>>>>>> *WSO2 Inc. *http://wso2.com
>>>>>>>>>> * <http://wso2.com/>*
>>>>>>>>>> lean . enterprise . middleware
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *cell: (+94) 779 756 757 <077%20975%206757> | 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>*
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Gobinath** Loganathan*
>>>>>>>>> Graduate Student,
>>>>>>>>> Electrical and Computer Engineering,
>>>>>>>>> Western University.
>>>>>>>>> Email  : slgobin...@gmail.com
>>>>>>>>> Mobile : (+1) 416-895-0721
>>>>>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> *S. Suhothayan*
>>>>>>>> Associate Director / Architect
>>>>>>>> *WSO2 Inc. *http://wso2.com
>>>>>>>> * <http://wso2.com/>*
>>>>>>>> lean . enterprise . middleware
>>>>>>>>
>>>>>>>>
>>>>>>>> *cell: (+94) 779 756 757 <077%20975%206757> | 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>*
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Gobinath** Loganathan*
>>>>>>> Graduate Student,
>>>>>>> Electrical and Computer Engineering,
>>>>>>> Western University.
>>>>>>> Email  : slgobin...@gmail.com
>>>>>>> Mobile : (+1) 416-895-0721
>>>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Gobinath** Loganathan*
>>>>>> Graduate Student,
>>>>>> Electrical and Computer Engineering,
>>>>>> Western University.
>>>>>> Email  : slgobin...@gmail.com
>>>>>> Mobile : (+1) 416-895-0721
>>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *S. Suhothayan*
>>>>> Associate Director / Architect
>>>>> *WSO2 Inc. *http://wso2.com
>>>>> * <http://wso2.com/>*
>>>>> lean . enterprise . middleware
>>>>>
>>>>>
>>>>> *cell: (+94) 779 756 757 <+94%2077%20975%206757> | 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>*
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> *Gobinath** Loganathan*
>>>> Graduate Student,
>>>> Electrical and Computer Engineering,
>>>> Western University.
>>>> Email  : slgobin...@gmail.com
>>>> Mobile : (+1) 416-895-0721
>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> *Gobinath** Loganathan*
>>> Graduate Student,
>>> Electrical and Computer Engineering,
>>> Western University.
>>> Email  : slgobin...@gmail.com
>>> Mobile : (+1) 416-895-0721
>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>>
>> Thanks & regards,
>> Nirmal
>>
>> Technical Lead, WSO2 Inc.
>> Mobile: +94715779733 <071%20577%209733>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>>
>>
>
>
> --
>
> *S. Suhothayan*
> Associate Director / Architect
> *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>*
>



-- 
*Gobinath** Loganathan*
Graduate Student,
Electrical and Computer Engineering,
Western University.
Email  : slgobin...@gmail.com
Mobile : (+1) 416-895-0721
Blog    : javahelps.com <http://www.javahelps.com/>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to