[ 
https://issues.apache.org/jira/browse/FLINK-33428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

xiaoran updated FLINK-33428:
----------------------------
    Summary: Flink SQL CEP support 'followed','notNext' and 'notFollowedBy' 
semantics  (was: Flink sql cep support 'followed','notNext' and 'notFollowedBy' 
semantics)

> Flink SQL CEP support 'followed','notNext' and 'notFollowedBy' semantics
> ------------------------------------------------------------------------
>
>                 Key: FLINK-33428
>                 URL: https://issues.apache.org/jira/browse/FLINK-33428
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table SQL / API, Table SQL / Planner
>    Affects Versions: 1.16.0
>            Reporter: xiaoran
>            Priority: Major
>              Labels: pull-request-available
>
> Currently, the cep mode of the Flink API can support next, notNext, 
> followedBy, followedByAny, and notFollowedBy semantics, but Flink SQL only 
> supports next semantics. The remaining notNext and followedBy semantics are 
> implemented by other alternatives, while the notFollowedBy semantics are not 
> currently implemented. At present, this semantics is generally implemented in 
> business scenarios, such as judging that a user has placed an order within 15 
> minutes without paying. Therefore, I suggest to provide new functionality to 
> support notFollowedBy in sql mode, along with the other three semantics
> The syntax of enhanced MATCH_RECOGNIZE is proposed as follows:
> {code:sql}
> MATCH_RECOGNIZE (
>     [ PARTITION BY <expr> [, ... ] ]
>     [ ORDER BY <expr> [, ... ] ]
>     [ MEASURES <expr> [AS] <alias> [, ... ] ]
>     [ ONE ROW PER MATCH [ { SHOW TIMEOUT MATCHES } ] |
>       ALL ROWS PER MATCH [ { SHOW TIMEOUT MATCHES } ]
>     ]
>     [ AFTER MATCH SKIP
>           {
>           PAST LAST ROW   |
>           TO NEXT ROW   |
>           TO [ { FIRST | LAST} ] <symbol>
>           }
>     ]
>     PATTERN ( <pattern> )
>     DEFINE <symbol> AS <expr> [, ... ]
> )
> {code}
> * [^ <symbol>] is proposed in <pattern> to express the notNext semantic. For 
> example, A [^B] is translated to A.notNext(B).
> * \{- <symbol> -} is proposed in <pattern> to express the followedBy 
> semantic. For example, A \{ B*? -} C is translated to A.followedBy(C).
> * \{- symbol1 \-} with [^ <symbol2>] is proposed in <pattern> to express the 
> notFollowedBy semantic. For example, A \{- B*? -} [^C] is translated to 
> A.notFollwedBy(B).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to