[ https://issues.apache.org/jira/browse/FLINK-7169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16085637#comment-16085637 ]
Dian Fu commented on FLINK-7169: -------------------------------- Hi [~ychen], Thanks a lot working on this ticket. :) For the API change, may be it's better to add an API in {{Pattern}}, such as {{Pattern.setSkipStrategy(AfterMatchSkipStrategy afterMatchSkipStrategy)}}. For the implementation of the {{AfterMatchSkipStrategy}}, I have a very rough though. For example, for pattern {{a b*}}, if the skip strategy is {{AFTER MATCH SKIP TO FIST b}}, we only add a new {{Start}} {{ComputationState}} once the first {{b}} is matched (Not add a new {{Start}} {{ComputationState}} once the {{Start}} {{ComputationState}} is matched which is the current strategy). If this is feasible, we don't need to keep track of the event order any more. Thoughts? > Support AFTER MATCH SKIP function in CEP library API > ---------------------------------------------------- > > Key: FLINK-7169 > URL: https://issues.apache.org/jira/browse/FLINK-7169 > Project: Flink > Issue Type: Sub-task > Components: CEP > Reporter: Yueting Chen > Assignee: Yueting Chen > > In order to support Oracle's MATCH_RECOGNIZE on top of the CEP library, we > need to support AFTER MATCH SKIP function in CEP API. > There're four options in AFTER MATCH SKIP, listed as follows: > 1. AFTER MATCH SKIP TO NEXT ROW: resume pattern matching at the row after the > first row of the current match. > 2. AFTER MATCH SKIP PAST LAST ROW: resume pattern matching at the next row > after the last row of the current match. > 3. AFTER MATCH SKIP TO FIST *RPV*: resume pattern matching at the first row > that is mapped to the row pattern variable RPV. > 4. AFTER MATCH SKIP TO LAST *RPV*: resume pattern matching at the last row > that is mapped to the row pattern variable RPV. > I think we can introduce a new function to `CEP` class, which takes a new > parameter as AfterMatchSKipStrategy. > The new API may looks like this > {code} > public static <T> PatternStream<T> pattern(DataStream<T> input, Pattern<T, ?> > pattern, AfterMatchSkipStrategy afterMatchSkipStrategy) > {code} > We can also make `SKIP TO NEXT ROW` as the default option, because that's > what CEP library behaves currently. -- This message was sent by Atlassian JIRA (v6.4.14#64029)