[ 
https://issues.apache.org/jira/browse/FLINK-6197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15944824#comment-15944824
 ] 

ASF GitHub Bot commented on FLINK-6197:
---------------------------------------

Github user kl0u commented on a diff in the pull request:

    https://github.com/apache/flink/pull/3624#discussion_r108369790
  
    --- Diff: 
flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/NFA.java ---
    @@ -553,9 +559,38 @@ private int calculateIncreasingSelfState(int 
ignoreBranches, int takeBranches) {
                return outgoingEdges;
        }
     
    +   private boolean checkFilterCondition(ComputationState<T> 
computationState, IterativeCondition<T> condition, T event) throws Exception {
    +           return condition == null || condition.filter(event, 
computationState.getConditionContext());
    +   }
    +
    +   Map<String, List<T>> extractCurrentMatches(final ComputationState<T> 
computationState) {
    +           if (computationState.getPreviousState() == null) {
    +                   return new HashMap<>();
    +           }
    +
    +           Collection<LinkedHashMultimap<String, T>> paths = 
stringSharedBuffer.extractPatterns(
    +                           computationState.getPreviousState().getName(),
    +                           computationState.getEvent(),
    +                           computationState.getTimestamp(),
    +                           computationState.getVersion());
     
    -   private boolean checkFilterCondition(FilterFunction<T> condition, T 
event) throws Exception {
    -           return condition == null || condition.filter(event);
    +           // for a given computation state, we cannot have more than one 
matching patterns.
    +           Preconditions.checkArgument(paths.size() <= 1);
    --- End diff --
    
    Fixing this


> Add support for iterative conditions.
> -------------------------------------
>
>                 Key: FLINK-6197
>                 URL: https://issues.apache.org/jira/browse/FLINK-6197
>             Project: Flink
>          Issue Type: Bug
>          Components: CEP
>    Affects Versions: 1.3.0
>            Reporter: Kostas Kloudas
>            Assignee: Kostas Kloudas
>             Fix For: 1.3.0
>
>
> So far, the {{where}} clause only supported simple {{FilterFunction}} 
> conditions. 
> With this, we want to add support for conditions where the an event is 
> accepted not only based on its own properties, e.g. name, as it was before, 
> but also based on some statistic computed over previously accepted events in 
> the pattern, e.g. if the price is higher than the average of the prices of 
> the previously accepted events. 
> This in combination with the recently added quantifiers will allow for a lot 
> more expressive patterns.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to