The capability flags are used by the client and server to indicate which features they support and want to use.
Protocol::CapabilityFlags:
-
CLIENT_LONG_PASSWORD
-
Use the improved version of
Old Password Authentication
.NoteAssumed to be set since 4.1.1.
- Value
0x00000001
-
CLIENT_FOUND_ROWS
-
Send
found rows
instead ofaffected rows
inEOF_Packet
.- Value
0x00000002
-
CLIENT_LONG_FLAG
-
Longer flags in
Protocol::ColumnDefinition320
.- Value
0x00000004
- Server
Supports longer flags.
- Client
Expects longer flags.
-
CLIENT_CONNECT_WITH_DB
-
Database (schema) name can be specified on connect in
Handshake Response Packet
.- Value
0x00000008
- Server
Supports schema-name in
Handshake Response Packet
.- Client
Handshake Response Packet
contains a schema-name.
-
CLIENT_NO_SCHEMA
- Value
0x00000010
- Server
Do not permit
database.table.column
.
-
CLIENT_COMPRESS
-
Compression protocol supported.
- Value
0x00000020
- Server
Supports compression.
- Client
Switches to Compression compressed protocol after successful authentication.
-
CLIENT_ODBC
-
- Value
0x00000040
Special handling of ODBC behavior.
NoteNo special behavior since 3.22.
-
CLIENT_LOCAL_FILES
-
Can use
LOAD DATA LOCAL
.- Value
0x00000080
- Server
Enables the LOCAL INFILE request of LOAD DATA|XML.
- Client
Will handle LOCAL INFILE request.
-
CLIENT_IGNORE_SPACE
- Value
0x00000100
- Server
Parser can ignore spaces before
'('
.- Client
Let the parser ignore spaces before
'('
.
-
CLIENT_PROTOCOL_41
-
- Value
0x00000200
- Server
Supports the 4.1 protocol.
- Client
Uses the 4.1 protocol.
Notethis value was
CLIENT_CHANGE_USER
in 3.22, unused in 4.0 -
CLIENT_INTERACTIVE
-
wait_timeout
versuswait_interactive_timeout
.- Value
0x00000400
- Server
Supports interactive and noninteractive clients.
- Client
Client is interactive.
- See
-
CLIENT_SSL
- Value
0x00000800
- Server
Supports SSL.
- Client
Switch to SSL after sending the capability-flags.
-
CLIENT_IGNORE_SIGPIPE
- Value
0x00001000
- Client
Do not issue
SIGPIPE
if network failures occur (libmysqlclient only).- See
-
CLIENT_TRANSACTIONS
-
- Value
0x00002000
- Server
Can send status flags in
EOF_Packet
.- Client
Expects status flags in
EOF_Packet
.
NoteThis flag is optional in 3.23, but always set by the server since 4.0.
-
CLIENT_RESERVED
-
Unused.
- Value
0x00004000
NoteWas named
CLIENT_PROTOCOL_41
in 4.1.0. -
CLIENT_SECURE_CONNECTION
- Value
0x00008000
- Server
Supports
Authentication::Native41
.- Client
Supports
Authentication::Native41
.
-
CLIENT_MULTI_STATEMENTS
-
- Value
0x00010000
- Server
Can handle multiple statements per
COM_QUERY
andCOM_STMT_PREPARE
.- Client
May send multiple statements per
COM_QUERY
andCOM_STMT_PREPARE
.
NoteWas named
CLIENT_MULTI_QUERIES
in 4.1.0, renamed later.- Requires
-
CLIENT_MULTI_RESULTS
-
CLIENT_PS_MULTI_RESULTS
- Server
Can send multiple resultsets for
COM_STMT_EXECUTE
.- Client
Can handle multiple resultsets for
COM_STMT_EXECUTE
.- Value
0x00040000
- Requires
-
CLIENT_PLUGIN_AUTH
- Value
0x00080000
- Server
Sends extra data in Initial Handshake Packet and supports the pluggable authentication protocol.
- Client
Supports authentication plugins.
- Requires
-
CLIENT_CONNECT_ATTRS
- Value
0x00100000
- Server
Permits connection attributes in
Protocol::HandshakeResponse41
.- Client
Sends connection attributes in
Protocol::HandshakeResponse41
.
-
CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA
-
- Value
0x00200000
- Server
Understands length-encoded integer for auth response data in
Protocol::HandshakeResponse41
.- Client
Length of auth response data in
Protocol::HandshakeResponse41
is a length-encoded integer.
NoteThe flag was introduced in 5.6.6, but had the wrong value.
-
CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
- Value
0x00400000
- Server
Announces support for expired password extension.
- Client
Can handle expired passwords.
-
CLIENT_SESSION_TRACK
- Value
0x00800000
- Server
Can set SERVER_SESSION_STATE_CHANGED in the Status Flags and send session-state change data after a OK packet.
- Client
Expects the server to send sesson-state changes after a OK packet.
-
CLIENT_DEPRECATE_EOF
- Value
0x01000000
- Server
Can send OK after a Text Resultset.
- Client
Expects an OK (instead of EOF) after the resultset rows of a Text Resultset.
- Background
-
To support
CLIENT_SESSION_TRACK
, additional information must be sent after all successful commands. Although the OK packet is extensible, the EOF packet is not due to the overlap of its bytes with the content of the Text Resultset Row.Therefore, the EOF packet in the Text Resultset is replaced with an OK packet. EOF packets are deprecated as of MySQL 5.7.5.