MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
MySQL协议相关实现 更多...
类 | |
struct | PacketHeader |
每个包都有一个包头 更多... | |
class | BasePacket |
所有的包都继承自BasePacket 更多... | |
struct | HandshakeV10 |
握手包 更多... | |
struct | OkPacket |
响应包,在很多场景中都会使用 更多... | |
struct | EofPacket |
EOF包 更多... | |
struct | ErrPacket |
ERR包,出现错误时返回 更多... | |
struct | QueryPacket |
MySQL客户端发过来的请求包 更多... | |
枚举 | |
enum | ResultSetMetaData { RESULTSET_METADATA_NONE = 0 , RESULTSET_METADATA_FULL = 1 } |
Resultset metadata 更多... | |
enum | enum_field_types { MYSQL_TYPE_DECIMAL , MYSQL_TYPE_TINY , MYSQL_TYPE_SHORT , MYSQL_TYPE_LONG , MYSQL_TYPE_FLOAT , MYSQL_TYPE_DOUBLE , MYSQL_TYPE_NULL , MYSQL_TYPE_TIMESTAMP , MYSQL_TYPE_LONGLONG , MYSQL_TYPE_INT24 , MYSQL_TYPE_DATE , MYSQL_TYPE_TIME , MYSQL_TYPE_DATETIME , MYSQL_TYPE_YEAR , MYSQL_TYPE_NEWDATE , MYSQL_TYPE_VARCHAR , MYSQL_TYPE_BIT , MYSQL_TYPE_TIMESTAMP2 , MYSQL_TYPE_DATETIME2 , MYSQL_TYPE_TIME2 , MYSQL_TYPE_TYPED_ARRAY , MYSQL_TYPE_INVALID = 243 , MYSQL_TYPE_BOOL = 244 , MYSQL_TYPE_JSON = 245 , MYSQL_TYPE_NEWDECIMAL = 246 , MYSQL_TYPE_ENUM = 247 , MYSQL_TYPE_SET = 248 , MYSQL_TYPE_TINY_BLOB = 249 , MYSQL_TYPE_MEDIUM_BLOB = 250 , MYSQL_TYPE_LONG_BLOB = 251 , MYSQL_TYPE_BLOB = 252 , MYSQL_TYPE_VAR_STRING = 253 , MYSQL_TYPE_STRING = 254 , MYSQL_TYPE_GEOMETRY = 255 } |
Column types for MySQL 更多... | |
函数 | |
RC | create_version_comment_sql_result (SqlResult *sql_result) |
MySQL客户端连接时会发起一个"select @@version_comment"的查询,这里对这个查询进行特殊处理 更多... | |
virtual RC | MysqlCommunicator::init (int fd, Session *session, const std::string &addr) override |
连接刚开始建立时,进行一些初始化 更多... | |
MySQL协议相关实现
enum enum_field_types |
Column types for MySQL
枚举值类型是从MySQL的协议中抄过来的
enum ResultSetMetaData |
Resultset metadata
这些枚举值都是从MySQL的协议中抄过来的
RC create_version_comment_sql_result | ( | SqlResult * | sql_result | ) |
MySQL客户端连接时会发起一个"select @@version_comment"的查询,这里对这个查询进行特殊处理
[out] | sql_result | 生成的结果 |
|
overridevirtual |
连接刚开始建立时,进行一些初始化
MySQL链接做初始化,需要进行握手和一些预处理
参考MySQL或MariaDB的手册,服务端要首先向客户端发送一个握手包,等客户端回复后, 再回复一个OkPacket或ErrPacket
fd | 连接描述符 |
session | 当前的会话 |
addr | 对端地址 |
重载 Communicator .