MXS-2688 Add QC operator QUERY_OP_SET
Allows RWS to unconditionally send all SET-statements to all servers.
This commit is contained in:
@ -121,6 +121,7 @@ typedef enum qc_query_op
|
|||||||
QUERY_OP_LOAD,
|
QUERY_OP_LOAD,
|
||||||
QUERY_OP_REVOKE,
|
QUERY_OP_REVOKE,
|
||||||
QUERY_OP_SELECT,
|
QUERY_OP_SELECT,
|
||||||
|
QUERY_OP_SET,
|
||||||
QUERY_OP_SHOW,
|
QUERY_OP_SHOW,
|
||||||
QUERY_OP_TRUNCATE,
|
QUERY_OP_TRUNCATE,
|
||||||
QUERY_OP_UPDATE,
|
QUERY_OP_UPDATE,
|
||||||
|
|||||||
@ -2065,6 +2065,10 @@ int32_t qc_mysql_get_operation(GWBUF* querybuf, int32_t* operation)
|
|||||||
*operation = QUERY_OP_REVOKE;
|
*operation = QUERY_OP_REVOKE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SQLCOM_SET_OPTION:
|
||||||
|
*operation = QUERY_OP_SET;
|
||||||
|
break;
|
||||||
|
|
||||||
case SQLCOM_SHOW_CREATE:
|
case SQLCOM_SHOW_CREATE:
|
||||||
case SQLCOM_SHOW_CREATE_DB:
|
case SQLCOM_SHOW_CREATE_DB:
|
||||||
case SQLCOM_SHOW_CREATE_FUNC:
|
case SQLCOM_SHOW_CREATE_FUNC:
|
||||||
|
|||||||
@ -2651,6 +2651,7 @@ public:
|
|||||||
case TK_SET:
|
case TK_SET:
|
||||||
m_status = QC_QUERY_TOKENIZED;
|
m_status = QC_QUERY_TOKENIZED;
|
||||||
m_type_mask = QUERY_TYPE_GSYSVAR_WRITE;
|
m_type_mask = QUERY_TYPE_GSYSVAR_WRITE;
|
||||||
|
m_operation = QUERY_OP_SET;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TK_SHOW:
|
case TK_SHOW:
|
||||||
@ -2883,6 +2884,7 @@ public:
|
|||||||
mxb_assert(this_thread.initialized);
|
mxb_assert(this_thread.initialized);
|
||||||
|
|
||||||
m_status = QC_QUERY_PARSED;
|
m_status = QC_QUERY_PARSED;
|
||||||
|
m_operation = QUERY_OP_SET; // There will be no SET in case of Oracle's "var := 1".
|
||||||
m_type_mask = 0; // Reset what was set in maxscaleKeyword
|
m_type_mask = 0; // Reset what was set in maxscaleKeyword
|
||||||
|
|
||||||
switch (kind)
|
switch (kind)
|
||||||
|
|||||||
@ -129,3 +129,6 @@ XA PREPARE 'xid';
|
|||||||
XA COMMIT 'xid';
|
XA COMMIT 'xid';
|
||||||
XA ROLLBACK 'xid'
|
XA ROLLBACK 'xid'
|
||||||
XA RECOVER 'xid';
|
XA RECOVER 'xid';
|
||||||
|
|
||||||
|
# MXS-2688
|
||||||
|
SET @saved_cs_client= @@character_set_client;
|
||||||
|
|||||||
@ -855,6 +855,9 @@ const char* qc_op_to_string(qc_query_op_t op)
|
|||||||
case QUERY_OP_SELECT:
|
case QUERY_OP_SELECT:
|
||||||
return "QUERY_OP_SELECT";
|
return "QUERY_OP_SELECT";
|
||||||
|
|
||||||
|
case QUERY_OP_SET:
|
||||||
|
return "QUERY_OP_SET";
|
||||||
|
|
||||||
case QUERY_OP_SHOW:
|
case QUERY_OP_SHOW:
|
||||||
return "QUERY_OP_SHOW";
|
return "QUERY_OP_SHOW";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user