mysql.protocol.comms

Internal - Low-level communications.

Consider this module the main entry point for the low-level MySQL/MariaDB protocol code. The other modules in mysql.protocol are mainly tools to support this module.

Previously, the code handling low-level protocol details was scattered all across the library. Such functionality has been factored out into this module, to be kept in one place for better encapsulation and to facilitate further cleanup and refactoring.

EXPECT MAJOR CHANGES to this entire mysql.protocol sub-package until it eventually settles into what will eventually become a low-level library containing the bulk of the MySQL/MariaDB-specific code. Hang on tight...

Next tasks for this sub-package's cleanup: - Reduce this module's reliance on Connection. - Abstract out a PacketStream to clean up getPacket and related functionality.

Members

Functions

authenticate
void authenticate(Connection conn, ubyte[] greeting)
Undocumented in source.
buildAuthPacket
ubyte[] buildAuthPacket(Connection conn, ubyte[] token)
Undocumented in source.
consumeNullBitmap
bool[] consumeNullBitmap(ubyte[] packet, uint fieldCount)
Undocumented in source. Be warned that the author may not have intended to support it.
consumeServerInfo
void consumeServerInfo(Connection conn, ubyte[] packet)
Undocumented in source. Be warned that the author may not have intended to support it.
ctorRow
void ctorRow(Connection conn, ubyte[] packet, ResultSetHeaders rh, bool binary, Variant[] _values, bool[] _nulls)
Undocumented in source.
enableMultiStatements
void enableMultiStatements(Connection conn, bool on)

Enable multiple statement commands.

execQueryImpl
bool execQueryImpl(Connection conn, ExecQueryImplInfo info, ulong ra)
bool execQueryImpl(Connection conn, ExecQueryImplInfo info)

Internal implementation for the exec and query functions.

getCmdResponse
OKErrorPacket getCmdResponse(Connection conn, bool asString)
Undocumented in source. Be warned that the author may not have intended to support it.
getCommonCapabilities
SvrCapFlags getCommonCapabilities(SvrCapFlags server, SvrCapFlags client)
Undocumented in source. Be warned that the author may not have intended to support it.
getNextRow
Row getNextRow(Connection conn)

Get the next mysql.result.Row of a pending result set.

getPacket
ubyte[] getPacket(Connection conn)

/// Moved here from Connection /////////////////////////////////

immediateReleasePrepared
void immediateReleasePrepared(Connection conn, uint statementId)
Undocumented in source. Be warned that the author may not have intended to support it.
makeToken
ubyte[] makeToken(string password, ubyte[] authBuf)
Undocumented in source. Be warned that the author may not have intended to support it.
parseGreeting
ubyte[] parseGreeting(Connection conn)
Undocumented in source. Be warned that the author may not have intended to support it.
performRegister
PreparedServerInfo performRegister(Connection conn, const(char[]) sql)
Undocumented in source. Be warned that the author may not have intended to support it.
purgeResult
ulong purgeResult(Connection conn)

Flush any outstanding result set elements.

send
void send(MySQLSocket _socket, const(ubyte)[] packet)
Undocumented in source.
send
void send(MySQLSocket _socket, const(ubyte)[] header, const(ubyte)[] data)
Undocumented in source.
sendCmd
void sendCmd(Connection conn, CommandType cmd, const(T)[] data)
Undocumented in source.
serverStats
string serverStats(Connection conn)

Get a textual report on the server status.

setClientFlags
SvrCapFlags setClientFlags(SvrCapFlags serverCaps, SvrCapFlags capFlags)
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

ExecQueryImplInfo
struct ExecQueryImplInfo
Undocumented in source.
ProtocolPrepared
struct ProtocolPrepared

Low-level comms code relating to prepared statements.

Meta