Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Umbrella] MySQL Protocol Frontend #1219

Closed
3 of 7 tasks
pan3793 opened this issue Oct 12, 2021 · 1 comment
Closed
3 of 7 tasks

[Umbrella] MySQL Protocol Frontend #1219

pan3793 opened this issue Oct 12, 2021 · 1 comment
Labels
kind:feature Feature request

Comments

@pan3793
Copy link
Member

pan3793 commented Oct 12, 2021

Code of Conduct

Search before asking

  • I have searched in the issues and found no similar issues.

Describe the proposal

Implement MySQL Protocol Frontend service in kyuubi-server to support connect Kyuubi by MySQL client, e.g. mysql CLI, MySQL JDBC driver.

image

Task list

Are you willing to submit PR?

  • Yes I am willing to submit a PR!
@pan3793 pan3793 added the kind:feature Feature request label Oct 12, 2021
@charlesy6
Copy link
Contributor

Nice idea!!

@pan3793 pan3793 linked a pull request Nov 4, 2021 that will close this issue
3 tasks
pan3793 added a commit that referenced this issue Nov 17, 2021
### _Why are the changes needed?_

Sub task of #1219

The required `MySQLPacket`s are split into 4 groups, as Kyuubi is designed to be a "MySQL Server", only part of packets need to be encodable and others just need to be decodable.

- Generic
  - `MySQLOKPacket` with `SupportsEncode`
  - `MySQLErrPacket` with `SupportsEncode`
  - `MySQLEofPacket` with `SupportsEncode`
- Authentication
  - `MySQLHandshakePacket` with `SupportsEncode`
  - `MySQLHandshakeResponse41Packet` with `SupportsDecode`
  - `MySQLAuthSwitchRequestPacket` with `SupportsEncode`
  - `MySQLAuthSwitchResponsePacket` with `SupportsDecode`
- Command
  - `MySQLComPingPacket` with `SupportsDecode`
  - `MySQLComInitDbPacket` with `SupportsDecode`
  - `MySQLComFieldListPacket` with `SupportsDecode`
  - `MySQLComQueryPacket` with `SupportsDecode`
  - `MySQLComQuitPacket` with `SupportsDecode`
- Data
  - `MySQLFieldCountPacket`  with`SupportsEncode`
  - `MySQLColumnDefinition41Packet` with `SupportsEncode`
  - `MySQLTextResultSetRowPacket` with `SupportsEncode`

### _How was this patch tested?_
- [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [ ] Add screenshots for manual tests if appropriate

- [x] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request

Closes #1395 from pan3793/mysql-protocol.

Closes #1395

25b7b3d [Cheng Pan] Nit
90637ea [Cheng Pan] Fix compile
7fae786 [Cheng Pan] Use while
47a1da8 [Cheng Pan] Add MySQL links
b6d91f7 [Cheng Pan] Implement MySQL protocol codec

Authored-by: Cheng Pan <chengpan@apache.org>
Signed-off-by: Cheng Pan <chengpan@apache.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:feature Feature request
Projects
None yet
2 participants