Ambiguities row/eof packets in the text protocol for very big rows
- Dominant language
- C++
- Stars
- 299
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
The following fails:
```
SELECT REPEAT('a', 0x1000000)
```
Because a `string_lenenc` with such size starts with the EOF packet header. This looks like a design issue in the protocol. Other language drivers solve this by first attempting to parse the packet as a row, and then attempting it as an EOF packet on failure.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the failure with SELECT REPEAT('a', 0x1000000), then inspect the text-protocol parsing path for row and EOF packets. Compare how other language drivers distinguish these packet types. Done means the large-row response is parsed correctly without confusing it with an EOF packet.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, mysql
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100