matrixorigin / matrixorigin/matrixone

[Compatibility]: MySQL JSON_TABLE syntax and relational expansion are unsupported

Open
#28,036 1 comment 0 reactions 1 assignee Claimed by @VioletQwQ-0 View on GitHub
kind/bug severity/s1
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.