xiaoran created FLINK-33428:
-------------------------------

             Summary: 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


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:

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> [, ... ]
)
[^ <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