matrixorigin / matrixorigin/matrixone
[Compatibility]: MySQL JSON_TABLE syntax and relational expansion are unsupported
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## Description
MatrixOne does not parse MySQL `JSON_TABLE()`, preventing JSON documents from being expanded as a relational table in `FROM`.
## Environment
- Branch: `main`
- Commit: `17c161a31b47a22e71ca222839143f66717ac365`
- Deployment: local single-node MatrixOne
- Test date: 2026-09-03
## Steps to reproduce
```sql
SELECT *
FROM JSON_TABLE('[{"a":1}]', '$[*]' COLUMNS(a INT PATH '$.a')) AS jt;\n```\n\n## Actual behavior\n\nThe parser rejects the `COLUMNS` clause.\n\n## Expected behavior\n\nMySQL `JSON_TABLE()` expands each path match into rows and supports scalar PATH columns, FOR ORDINALITY, EXISTS PATH, NESTED PATH, and ON EMPTY/ON ERROR behavior.\n\n## Stability and controls\n\n- Reproducer: parser rejection was identical in 3/3 rounds.\n- Control: scalar JSON functions such as `JSON_EXTRACT` and `JSON_VALUE` execute on the same service.\n- Failure atomicity: the reproducer is a read-only query.\n\n## Evidence\n\nhttps://dev.mysql.com/doc/refman/8.0/en/json-table-functions.html\n\n## Code analysis\n\nNo parser/plan implementation for `JSON_TABLE` exists; only MySQL-compatible error-code metadata refers to it.\n\n## Regression coverage\n\nAfter implementation, add BVT coverage for root-array expansion, typed columns, FOR ORDINALITY, EXISTS PATH, nested paths, ON EMPTY/ON ERROR, invalid input, and joins against preceding tables.
Contributor guide
Assessment
This issue has not been assessed yet.