matrixorigin / matrixorigin/matrixone
[Compatibility]: ODKU row-alias syntax is not supported
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## 现象
在 MatrixOne main `99ed717b769e261b842c2f17345bd65865fc1470`,MySQL 8 的 ODKU row-alias 语法无法解析:
```sql
INSERT INTO t (id,email,code,v)
VALUES (1,'alias_email','alias_code',55) AS new
ON DUPLICATE KEY UPDATE email=new.email, code=new.code, v=new.v;
```
带列别名的形式同样被 parser 拒绝:
```sql
INSERT INTO t (id,email,code,v)
VALUES (1,'alias2','alias2',66) AS new(m_id,m_email,m_code,m_v)
ON DUPLICATE KEY UPDATE email=m_email, code=m_code, v=m_v;
```
传统 `VALUES(column)` 写法可以执行。
## 期望
兼容 MySQL 8.0.20+ 的 row alias / column alias ODKU 语法,以便替代已弃用的 `VALUES()` 引用方式。
参考:[MySQL ODKU row aliases](https://dev.mysql.com/doc/refman/8.4/en/insert-on-duplicate.html)
## 影响
使用新版 MySQL 驱动或 ORM 生成的 ODKU 语句无法在 MatrixOne 执行。
## 复现信息
- MatrixOne main: `99ed717b769e261b842c2f17345bd65865fc1470`
- 重复执行 3 次,结果一致
Contributor guide
Assessment
This issue has not been assessed yet.