datafusion-contrib / datafusion-contrib/StreamFusion
Implement MATCH_RECOGNIZE and pattern time functions
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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