Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-1570

Add MATCH_RECOGNIZE operator, for event pattern-matching

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Resolved
    • None
    • 1.13.0
    • None

    Description

      Add the MATCH_RECOGNIZE operator, for event pattern-matching. Oracle introduced this in 11i (for tables) and Esper implemented it (for streams of events).

      It would be most useful for streaming SQL but it makes sense in non-streaming SQL too (and of course it's good to be able to run streaming queries on historic data).

      Here is an example from oracle-base:

      SELECT *
      FROM   sales_history MATCH_RECOGNIZE (
               PARTITION BY product
               ORDER BY tstamp
               MEASURES  STRT.tstamp AS start_tstamp,
                         FINAL LAST(UP.tstamp) AS peak_tstamp,
                         MATCH_NUMBER() AS mno,
                         CLASSIFIER() AS cls
               ALL ROWS PER MATCH
               AFTER MATCH SKIP TO LAST DOWN
               PATTERN (STRT UP+ DOWN{1} UP+)
               DEFINE
                 UP AS UP.units_sold > PREV(UP.units_sold),
                 DOWN AS DOWN.units_sold < PREV(DOWN.units_sold)
             ) MR
      ORDER BY MR.product, MR.tstamp;
      

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ransom Zhiqiang He
            julianhyde Julian Hyde
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment