matrixorigin / matrixorigin/matrixone

[Compatibility]: ODKU row-alias syntax is not supported

Open
#28,160 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

## 现象

在 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

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.