matrixorigin / matrixorigin/matrixone
[Feature Request]: Assorted unimplemented functions & locking/set-op syntax
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
### Is there an existing issue for the same feature request?
- [X] I have checked the existing issues.
### Is your feature request related to a problem?
Found via cross-language ORM compatibility testing (PHP / Python / Java / Node.js) on `8.0.30-MatrixOne-v4.0.0-rc3` (MySQL 8.0.30 wire protocol). A group of smaller MySQL-compatibility gaps cause ORM/query failures; each was verified with raw SQL.
### Describe the feature you'd like
Implement / accept the following standard MySQL 8.0 functions and syntax (grouped by the error code currently returned):
- **Functions (`20105`):** `CHARACTER_LENGTH` (alias of `CHAR_LENGTH`), `OCTET_LENGTH`*, `UUID_SHORT`, `COERCIBILITY`, `WEIGHT_STRING`, `BENCHMARK`, `INET6_ATON`, `l1_distance`, spatial `ST_*` / `POINT` constructors.
- **Locking reads (`1064`):** `LOCK IN SHARE MODE`, `FOR SHARE`, `SKIP LOCKED`, `NOWAIT`.
- **Set ops (`20102`):** `EXCEPT ALL` / `INTERSECT ALL`.
- **DDL (`1064`/`20101`):** `CREATE INDEX … USING BTREE`, `ALTER TABLE … ADD … CHECK`, named `WINDOW` clause.
- **Cast (`20101`/`1064`):** `CAST/CONVERT(x AS CHAR(n))` errors on truncation instead of truncating; `CAST … AS NCHAR` / `… CHARACTER SET` rejected.
- **Date arg strictness (`20203`):** `HOUR('11:30:00')` / `MINUTE`/`SECOND` reject a bare time string (require a `TIME`/`DATETIME` typed arg).
(\* some of these may already be implemented in newer builds — please verify against current `main`.)
### Describe implementation you've considered
N/A — these are standard MySQL 8.0 functions/clauses; matching MySQL semantics is sufficient.
### Documentation, Adoption, Use Case, Migration Strategy
These appear in queries emitted by common ORMs/drivers across PHP / Python / Java / Node.js; supporting them removes per-feature workarounds when porting MySQL applications. Note: `FOR UPDATE SKIP LOCKED` is already tracked in #23126.
### Additional information
**Version:** 8.0.30-MatrixOne-v4.0.0-rc3.
**Background:** dengn/php-tester#1, dengn/php-tester#5, dengn/php-tester#6.
Contributor guide
Assessment
This issue has not been assessed yet.