Support for EXCEPT ALL
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Feature Request
MySQL supports this:
```
mysql-9.6.0 [(none)]> SELECT 1 EXCEPT SELECT 2;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.001 sec)
mysql-9.6.0 [(none)]> SELECT 1 EXCEPT ALL SELECT 2;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.001 sec)
```
TiDB does not:
```
mysql-8.0.11-TiDB-v8.5.5 [(none)]> SELECT 1 EXCEPT SELECT 2;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.002 sec)
mysql-8.0.11-TiDB-v8.5.5 [(none)]> SELECT 1 EXCEPT ALL SELECT 2;
ERROR 1105 (HY000): TiDB do not support except all
```
This is used by Hibernate ORM for full join emulation.
MySQL docs: https://dev.mysql.com/doc/refman/8.4/en/except.html
Related: #18031
Contributor guide
Research direction
Start by tracing TiDB's existing EXCEPT support and the related issue #18031; no source file or test is named in the report. Reproduce the EXCEPT and EXCEPT ALL examples against TiDB, then verify that EXCEPT ALL is accepted instead of returning the unsupported error and matches the documented MySQL behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, mysql, sql
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100