datafusion-contrib / datafusion-contrib/StreamFusion

Implement MATCH_RECOGNIZE and pattern time functions

Open
#78 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
120
Forks
8
Avg merge
7h 29m
Merged PRs (30d)
76

Description

Problem

MATCH_RECOGNIZE still runs in Flink. Its MATCH_ROWTIME() and MATCH_PROCTIME() functions require pattern-match context and cannot be implemented as independent scalar temporal functions.

Scope

Implement the pattern-matching operator as a separate follow-up to temporal scalar coverage. Consult Flink and Arroyo first, document any architectural divergence, and preserve native Arrow batch boundaries.

Admission must explicitly cover supported pattern syntax, partitioning and ordering, measures and definitions, time attributes, skip strategies, timeouts, watermarks, and checkpoint/recovery. Unsupported combinations should remain on Flink.

Validation

  • Differential SQL tests against released Flink, including MATCH_ROWTIME and MATCH_PROCTIME context and deterministic arrival-order behavior.
  • Stateful and watermark tests, including late input and recovery.
  • Release benchmarks with both row/Arrow transposes retained.
  • Update operator coverage documentation with the exact admitted shapes and remaining gaps.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by consulting Flink and Arroyo to map supported MATCH_RECOGNIZE syntax and identify architectural differences. Define admitted shapes across partitioning, ordering, measures, time attributes, skip strategies, timeouts, watermarks, and recovery, then run the specified differential SQL, stateful, watermark, and benchmark validation. Done means documented coverage, preserved Arrow batch boundaries, and explicit unsupported cases delegated to Flink.

Written by the indexing model from the issue text.

Assessment

Domain
data-engineering, distributed-systems, documentation, performance, stream-processing, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.