From 422ea7f912f617a70cae1a7d066e069574505d2c Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Thu, 4 May 2017 12:40:10 +0300 Subject: [PATCH] MXS-1196: In 10.3 a unary minus is not a function --- query_classifier/qc_sqlite/qc_sqlite.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/query_classifier/qc_sqlite/qc_sqlite.c b/query_classifier/qc_sqlite/qc_sqlite.c index 39b55607a..366e8e203 100644 --- a/query_classifier/qc_sqlite/qc_sqlite.c +++ b/query_classifier/qc_sqlite/qc_sqlite.c @@ -1146,10 +1146,25 @@ static void update_field_infos(QC_SQLITE_INFO* info, case TK_REM: case TK_SLASH: case TK_STAR: - case TK_UMINUS: update_function_info(info, get_token_symbol(pExpr->op), usage); break; + case TK_UMINUS: + switch (this_unit.parse_as) + { + case QC_PARSE_AS_DEFAULT: + update_function_info(info, get_token_symbol(pExpr->op), usage); + break; + + case QC_PARSE_AS_103: + // In MariaDB 10.3 a unary minus is not considered a function. + break; + + default: + ss_dassert(!true); + } + break; + case TK_FUNCTION: if (zToken) {