File: mysqlx-protocol-comparison.dox

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (75 lines) | stat: -rw-r--r-- 8,103 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * Copyright (c) 2015, 2025, Oracle and/or its affiliates.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License, version 2.0,
 * as published by the Free Software Foundation.
 *
 * This program is designed to work with certain software (including
 * but not limited to OpenSSL) that is licensed under separate terms,
 * as designated in a particular file or component or in included license
 * documentation.  The authors of MySQL hereby grant you an additional
 * permission to link the program and your derivative works with the
 * separately licensed software that they have either included with
 * the program or referenced in the documentation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License, version 2.0, for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 */

/** @page mysqlx_protocol_comparison Comparison to MySQL C/S %Protocol


| Feature                              | MySQL C/S protocol                                                                      | X %Protocol                                      |
|--------------------------------------|-----------------------------------------------------------------------------------------|--------------------------------------------------|
| plaintext auth                       | ✓                                                                                       | ✓ via SASL                                       |
| extentisible auth                    | ✓ (5.6)                                                                                 | ✓ via SASL                                       |
| TLS extension                        | ✓                                                                                       | ✓                                                |
| max message size >= 1Gb              | ✓                                                                                       | ✓                                                |
| compression extension                | ✓                                                                                       | ✓ zlib, lz4, zstd                                |
| resettable sessions                  | [COM_RESET_CONNECTION](http://dev.mysql.com/doc/internals/en/com-reset-connection.html) | @ref Mysqlx::Session::Reset                      |
| multiple, sequential sessions        | [COM_CHANGE_USER](http://dev.mysql.com/doc/internals/en/com-change-user.html)           | @ref Mysqlx::Session::AuthenticateStart          |
| out-of-band notifications            | ✕                                                                                       | @ref Mysqlx::Notice::Frame                       |
| extensible messages                  | ✕                                                                                       | via protobuf                                     |
| extensible protocol                  | via capability flags                                                                    | @ref Mysqlx::Connection::CapabilitiesGet         |
| prepared SQL                         | ✓                                                                                       | ✓                                                |
| prepared CRUD                        | ✕                                                                                       | ✓                                                |
| multi-statement                      | ✓ (5.0)                                                                                 | ✕                                                |
| multi-resultset                      | ✓ (5.0)                                                                                 | @ref Mysqlx::Resultset::FetchDoneMoreResultsets  |
| OUT-paramset                         | ✓ (5.5)                                                                                 | @ref Mysqlx::Resultset::FetchDoneMoreOutParams   |

@par Mapping of MySQL C/S @c COM_ to Mysqlx Messages

| Command                                                                                       | X %Protocol                                       |
|-----------------------------------------------------------------------------------------------|---------------------------------------------------|
| [COM_QUIT](http://dev.mysql.com/doc/internals/en/com-quit.html)                               | @ref Mysqlx::Connection::Close                    |
| [COM_INIT_DB](http://dev.mysql.com/doc/internals/en/com-init-db.html)                         | ✕                                                 |
| [COM_QUERY](http://dev.mysql.com/doc/internals/en/com-query.html)                             | @ref Mysqlx::Sql::StmtExecute namespace="sql"     |
| [COM_FIELD_LIST](http://dev.mysql.com/doc/internals/en/com-field-list.html)                   | ✕, deprecated                                     |
| [COM_CREATE_DB](http://dev.mysql.com/doc/internals/en/com-create-db.html)                     | ✕, deprecated                                     |
| [COM_DROP_DB](http://dev.mysql.com/doc/internals/en/com-drop-db.html)                         | ✕, deprecated                                     |
| [COM_REFRESH](http://dev.mysql.com/doc/internals/en/com-refresh.html)                         | ✕, deprecated                                     |
| [COM_SHUTDOWN](http://dev.mysql.com/doc/internals/en/com-shutdown.html)                       | ✕, use SQL ``SHUTDOWN``                           |
| [COM_STATISTICS](http://dev.mysql.com/doc/internals/en/com-statistics.html)                   | ✕, deprecated                                     |
| [COM_PROCESS_INFO](http://dev.mysql.com/doc/internals/en/com-process-info.html)               | ✕, deprecated                                     |
| [COM_PROCESS_KILL](http://dev.mysql.com/doc/internals/en/com-process-kill.html)               | ✕, deprecated                                     |
| [COM_DEBUG](http://dev.mysql.com/doc/internals/en/com-debug.html)                             | ✕, deprecated                                     |
| [COM_PING](http://dev.mysql.com/doc/internals/en/com-ping.html)                               | @ref Mysqlx::Sql::StmtExecute namespace="mysqlx"  |
| [COM_CHANGE_USER](http://dev.mysql.com/doc/internals/en/com-change-user.html)                 | @ref Mysqlx::Session::AuthenticateStart           |
| [COM_RESET_CONNECTION](http://dev.mysql.com/doc/internals/en/com-reset-connection.html)       | @ref Mysqlx::Session::Reset                       |
| [COM_STMT_PREPARE](http://dev.mysql.com/doc/internals/en/com-stmt-prepare.html)               | @ref Mysqlx::Prepare::Prepare                     |
| [COM_STMT_SEND_LONG_DATA](http://dev.mysql.com/doc/internals/en/com-stmt-send-long-data.html) | ✕                                                 |
| [COM_STMT_EXECUTE](http://dev.mysql.com/doc/internals/en/com-stmt-execute.html)               | @ref Mysqlx::Prepare::Execute                     |
| [COM_STMT_CLOSE](http://dev.mysql.com/doc/internals/en/com-stmt-close.html)                   | @ref Mysqlx::Prepare::Deallocate                  |
| [COM_STMT_RESET](http://dev.mysql.com/doc/internals/en/com-stmt-reset.html)                   | ✕                                                 |
| [COM_SET_OPTION](http://dev.mysql.com/doc/internals/en/com-set-option.html)                   | ✕                                                 |
| [COM_STMT_FETCH](http://dev.mysql.com/doc/internals/en/com-stmt-fetch.html)                   | @ref Mysqlx::Cursor::Fetch                        |


*/