From 82c3e8b85bdedf529bb0984814a1698d074819ad Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Wed, 27 Apr 2016 16:00:16 +0300 Subject: [PATCH] qc_mysqlembedded: Look into parenthesized comma expressions For a query like "select a from x where (b,b)=(1,1);" return "a b" as the affected fields. --- .../qc_mysqlembedded/qc_mysqlembedded.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc index d77eb5d5a..b134dd7f3 100644 --- a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc +++ b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc @@ -1357,6 +1357,18 @@ static void collect_affected_fields(Item* item, char** bufp, int* buflenp, int* } break; + case Item::ROW_ITEM: + { + Item_row* row_item = static_cast(item); + size_t n_items = row_item->cols(); + + for (size_t i = 0; i < n_items; ++i) + { + collect_affected_fields(row_item->element_index(i), bufp, buflenp, bufsizep); + } + } + break; + case Item::FUNC_ITEM: case Item::SUM_FUNC_ITEM: {