qc: Some minor cleanup
- qc_types_to_string renamed to qc_typemask_to_string - qc_get_qtype_str removed, duplicate of qc_typemask_to_string
This commit is contained in:
@ -96,13 +96,12 @@ bool qc_is_real_query(GWBUF* querybuf);
|
||||
char** qc_get_table_names(GWBUF* querybuf, int* tblsize, bool fullnames);
|
||||
char* qc_get_canonical(GWBUF* querybuf);
|
||||
bool qc_query_has_clause(GWBUF* buf);
|
||||
char* qc_get_qtype_str(qc_query_type_t qtype);
|
||||
char* qc_get_affected_fields(GWBUF* buf);
|
||||
char** qc_get_database_names(GWBUF* querybuf, int* size);
|
||||
|
||||
const char* qc_op_to_string(qc_query_op_t op);
|
||||
const char* qc_type_to_string(qc_query_type_t type);
|
||||
char* qc_types_to_string(uint32_t types);
|
||||
char* qc_typemask_to_string(uint32_t typemask);
|
||||
|
||||
struct query_classifier
|
||||
{
|
||||
|
@ -354,7 +354,7 @@ bool compare_get_type(QUERY_CLASSIFIER* pClassifier1, GWBUF* pCopy1,
|
||||
|
||||
if (rv1 == rv2)
|
||||
{
|
||||
char* types = qc_types_to_string(rv1);
|
||||
char* types = qc_typemask_to_string(rv1);
|
||||
ss << "Ok : " << types;
|
||||
free(types);
|
||||
success = true;
|
||||
@ -385,8 +385,8 @@ bool compare_get_type(QUERY_CLASSIFIER* pClassifier1, GWBUF* pCopy1,
|
||||
rv2b &= ~(uint32_t)QUERY_TYPE_LOCAL_READ;
|
||||
}
|
||||
|
||||
char* types1 = qc_types_to_string(rv1);
|
||||
char* types2 = qc_types_to_string(rv2);
|
||||
char* types1 = qc_typemask_to_string(rv1);
|
||||
char* types2 = qc_typemask_to_string(rv2);
|
||||
|
||||
if (rv1b == rv2b)
|
||||
{
|
||||
|
@ -212,56 +212,6 @@ bool qc_query_has_clause(GWBUF* query)
|
||||
return classifier->qc_query_has_clause(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a string of query type value.
|
||||
* Caller must free the memory of the resulting string.
|
||||
*
|
||||
* @param qtype Query type value, combination of values listed in
|
||||
* query_classifier.h
|
||||
*
|
||||
* @return string representing the query type value
|
||||
*/
|
||||
char* qc_get_qtype_str(qc_query_type_t qtype)
|
||||
{
|
||||
QC_TRACE();
|
||||
int t1 = (int) qtype;
|
||||
int t2 = 1;
|
||||
qc_query_type_t t = QUERY_TYPE_UNKNOWN;
|
||||
char* qtype_str = NULL;
|
||||
|
||||
/**
|
||||
* Test values (bits) and clear matching bits from t1 one by one until
|
||||
* t1 is completely cleared.
|
||||
*/
|
||||
while (t1 != 0)
|
||||
{
|
||||
if (t1 & t2)
|
||||
{
|
||||
t = (qc_query_type_t) t2;
|
||||
|
||||
if (qtype_str == NULL)
|
||||
{
|
||||
qtype_str = MXS_STRDUP_A(STRQTYPE(t));
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t len = strlen(STRQTYPE(t));
|
||||
/** reallocate space for delimiter, new string and termination */
|
||||
qtype_str = (char *) MXS_REALLOC(qtype_str, strlen(qtype_str) + 1 + len + 1);
|
||||
MXS_ABORT_IF_NULL(qtype_str);
|
||||
snprintf(qtype_str + strlen(qtype_str), 1 + len + 1, "|%s", STRQTYPE(t));
|
||||
}
|
||||
|
||||
/** Remove found value from t1 */
|
||||
t1 &= ~t2;
|
||||
}
|
||||
|
||||
t2 <<= 1;
|
||||
}
|
||||
|
||||
return qtype_str;
|
||||
}
|
||||
|
||||
char* qc_get_affected_fields(GWBUF* query)
|
||||
{
|
||||
QC_TRACE();
|
||||
@ -595,7 +545,7 @@ static const int QUERY_TYPE_MAX_LEN = 29; // strlen("QUERY_TYPE_PREPARE_NAMED_ST
|
||||
* NOTE: The returned string is dynamically allocated
|
||||
* and *must* be freed by the caller.
|
||||
*/
|
||||
char* qc_types_to_string(uint32_t types)
|
||||
char* qc_typemask_to_string(uint32_t types)
|
||||
{
|
||||
int len = 0;
|
||||
|
||||
|
@ -166,7 +166,7 @@ log_transaction_status(ROUTER_CLIENT_SES *rses, GWBUF *querybuf, qc_query_type_t
|
||||
MYSQL_GET_PACKET_LEN((unsigned char *)querybuf->start) - 1);
|
||||
char *data = (char *)&packet[5];
|
||||
char *contentstr = strndup(data, MXS_MIN(len, RWSPLIT_TRACE_MSG_LEN));
|
||||
char *qtypestr = qc_get_qtype_str(qtype);
|
||||
char *qtypestr = qc_typemask_to_string(qtype);
|
||||
MXS_INFO("> Autocommit: %s, trx is %s, cmd: %s, type: %s, stmt: %s%s %s",
|
||||
(rses->rses_autocommit_enabled ? "[enabled]" : "[disabled]"),
|
||||
(rses->rses_transaction_active ? "[open]" : "[not open]"),
|
||||
@ -221,7 +221,7 @@ handle_target_is_all(route_target_t route_target,
|
||||
|
||||
/* NOTE: modutil_get_query is MySQL specific */
|
||||
char *query_str = modutil_get_query(querybuf);
|
||||
char *qtype_str = qc_get_qtype_str(qtype);
|
||||
char *qtype_str = qc_typemask_to_string(qtype);
|
||||
|
||||
/* NOTE: packet_type is MySQL specific */
|
||||
MXS_ERROR("Can't route %s:%s:\"%s\". SELECT with session data "
|
||||
|
@ -2007,7 +2007,7 @@ static int routeQuery(ROUTER* instance,
|
||||
MYSQL_GET_PACKET_LEN((unsigned char *)querybuf->start) - 1);
|
||||
char* data = (char*)&packet[5];
|
||||
char* contentstr = strndup(data, len);
|
||||
char* qtypestr = qc_get_qtype_str(qtype);
|
||||
char* qtypestr = qc_typemask_to_string(qtype);
|
||||
|
||||
MXS_INFO("> Cmd: %s, type: %s, "
|
||||
"stmt: %s%s %s",
|
||||
|
Reference in New Issue
Block a user