From f9eef5ee3b4ed7a1f33ba805f45d83ac12e1fd58 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Wed, 24 May 2017 13:46:17 +0300 Subject: [PATCH] MXS-1196: Classify SHOW as QUERY_TYPE_READ --- .../qc_mysqlembedded/qc_mysqlembedded.cc | 38 +++++++++++-------- query_classifier/qc_sqlite/qc_sqlite.c | 3 +- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc index 1290ada03..d5c42d585 100644 --- a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc +++ b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc @@ -858,7 +858,6 @@ static uint32_t resolve_query_type(parsing_info_t *pi, THD* thd) break; case SQLCOM_SELECT: - case SQLCOM_SHOW_SLAVE_STAT: type |= QUERY_TYPE_READ; break; @@ -894,31 +893,31 @@ static uint32_t resolve_query_type(parsing_info_t *pi, THD* thd) goto return_qtype; break; - case SQLCOM_SHOW_CREATE: - type |= QUERY_TYPE_READ; - goto return_qtype; - break; - case SQLCOM_SHOW_DATABASES: type |= QUERY_TYPE_SHOW_DATABASES; goto return_qtype; break; - case SQLCOM_SHOW_FIELDS: - type |= QUERY_TYPE_READ; - goto return_qtype; - break; - - case SQLCOM_SHOW_STATUS: - type |= QUERY_TYPE_READ; - goto return_qtype; - break; - case SQLCOM_SHOW_TABLES: type |= QUERY_TYPE_SHOW_TABLES; goto return_qtype; break; + case SQLCOM_SHOW_CREATE: + case SQLCOM_SHOW_CREATE_DB: + case SQLCOM_SHOW_CREATE_FUNC: + case SQLCOM_SHOW_CREATE_PROC: + case SQLCOM_SHOW_FIELDS: + case SQLCOM_SHOW_FUNC_CODE: + case SQLCOM_SHOW_GRANTS: + case SQLCOM_SHOW_PROC_CODE: + case SQLCOM_SHOW_SLAVE_HOSTS: + case SQLCOM_SHOW_SLAVE_STAT: + case SQLCOM_SHOW_STATUS: + type |= QUERY_TYPE_READ; + goto return_qtype; + break; + case SQLCOM_END: goto return_qtype; break; @@ -1908,10 +1907,17 @@ int32_t qc_mysql_get_operation(GWBUF* querybuf, int32_t* operation) break; case SQLCOM_SHOW_CREATE: + case SQLCOM_SHOW_CREATE_DB: + case SQLCOM_SHOW_CREATE_FUNC: + case SQLCOM_SHOW_CREATE_PROC: case SQLCOM_SHOW_DATABASES: case SQLCOM_SHOW_FIELDS: + case SQLCOM_SHOW_FUNC_CODE: + case SQLCOM_SHOW_GRANTS: case SQLCOM_SHOW_KEYS: case SQLCOM_SHOW_MASTER_STAT: + case SQLCOM_SHOW_PROC_CODE: + case SQLCOM_SHOW_SLAVE_HOSTS: case SQLCOM_SHOW_SLAVE_STAT: case SQLCOM_SHOW_STATUS: case SQLCOM_SHOW_TABLES: diff --git a/query_classifier/qc_sqlite/qc_sqlite.c b/query_classifier/qc_sqlite/qc_sqlite.c index 99d5363e7..5063ad1c3 100644 --- a/query_classifier/qc_sqlite/qc_sqlite.c +++ b/query_classifier/qc_sqlite/qc_sqlite.c @@ -2624,7 +2624,8 @@ int maxscaleKeyword(int token) case TK_SHOW: info->status = QC_QUERY_TOKENIZED; - info->type_mask = QUERY_TYPE_WRITE; + info->type_mask = QUERY_TYPE_READ; + info->operation = QUERY_OP_SHOW; break; case TK_START: