feat: Add support for OPTIONAL MATCH keyword
- Dominant language
- Java
- Stars
- 808
- Forks
- 188
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
**Is your feature request related to a problem? Please describe.**
No
**Describe the solution you'd like**
Add suport for OPTIONAL MATCH in GQL which is equivalent to an outer join in SQL
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered. Although I can't find the exact documentation in the ISO standard which states that OPTIONAL MATCH is part of it, the grammar provided in [this](https://github.com/TuGraph-family/gql-grammar?tab=readme-ov-file) link provided an OPTIONAl MATCH statement.
**Additional context**
Other popular database like Neo4j also supports this statement: https://neo4j.com/docs/cypher-manual/current/clauses/optional-match/
Contributor guide
Research direction
Start by reading the linked TuGraph-family GQL grammar and Neo4j's OPTIONAL MATCH documentation to establish the intended syntax and semantics. Then locate GeaFlow's GQL parsing and query execution entry points; done means OPTIONAL MATCH is accepted and behaves like an outer join, with coverage for the supported cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100