Added pepared statements and field lsit support to the command types
to duplciate
This commit is contained in:
@ -61,7 +61,26 @@
|
|||||||
|
|
||||||
#define MYSQL_COM_QUIT 0x01
|
#define MYSQL_COM_QUIT 0x01
|
||||||
#define MYSQL_COM_INITDB 0x02
|
#define MYSQL_COM_INITDB 0x02
|
||||||
|
#define MYSQL_COM_FIELD_LIST 0x04
|
||||||
#define MYSQL_COM_CHANGE_USER 0x11
|
#define MYSQL_COM_CHANGE_USER 0x11
|
||||||
|
#define MYSQL_COM_STMT_PREPARE 0x16
|
||||||
|
#define MYSQL_COM_STMT_EXECUTE 0x17
|
||||||
|
#define MYSQL_COM_STMT_SEND_LONG_DATA 0x18
|
||||||
|
#define MYSQL_COM_STMT_CLOSE 0x19
|
||||||
|
#define MYSQL_COM_STMT_RESET 0x1a
|
||||||
|
|
||||||
|
|
||||||
|
static unsigned char required_packets[] = {
|
||||||
|
MYSQL_COM_QUIT,
|
||||||
|
MYSQL_COM_INITDB,
|
||||||
|
MYSQL_COM_FIELD_LIST,
|
||||||
|
MYSQL_COM_CHANGE_USER,
|
||||||
|
MYSQL_COM_STMT_PREPARE,
|
||||||
|
MYSQL_COM_STMT_EXECUTE,
|
||||||
|
MYSQL_COM_STMT_SEND_LONG_DATA,
|
||||||
|
MYSQL_COM_STMT_CLOSE,
|
||||||
|
MYSQL_COM_STMT_RESET,
|
||||||
|
0 };
|
||||||
|
|
||||||
/** Defined in log_manager.cc */
|
/** Defined in log_manager.cc */
|
||||||
extern int lm_enabled_logfiles_bitmask;
|
extern int lm_enabled_logfiles_bitmask;
|
||||||
@ -507,12 +526,12 @@ static int
|
|||||||
packet_is_required(GWBUF *queue)
|
packet_is_required(GWBUF *queue)
|
||||||
{
|
{
|
||||||
uint8_t *ptr;
|
uint8_t *ptr;
|
||||||
|
int i;
|
||||||
|
|
||||||
ptr = GWBUF_DATA(queue);
|
ptr = GWBUF_DATA(queue);
|
||||||
if (GWBUF_LENGTH(queue) > 4 &&
|
if (GWBUF_LENGTH(queue) > 4)
|
||||||
(ptr[4] == MYSQL_COM_QUIT || ptr[4] == MYSQL_COM_INITDB
|
for (i = 0; required_packets[i]; i++)
|
||||||
|| ptr[4] == MYSQL_COM_CHANGE_USER))
|
if (ptr[4] == required_packets[i])
|
||||||
return 1;
|
return 1;
|
||||||
else
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user