From 32d34638ff5a5ed38ebee21bb32e49b9b4773772 Mon Sep 17 00:00:00 2001 From: Nikhil B Date: Thu, 5 Jan 2017 17:36:43 +0530 Subject: [PATCH] Fix for crash in query engine query engine was crashing in 2 tag queries in some cases because table schema from opserver was not being used when table is not static. Closes-Bug: #1654155 Change-Id: I506a87535c177a70dc81bd3fde85280d1ae223d3 (cherry picked from commit 1cf10495399c419dd9fa987742522899ee63fff7) --- src/query_engine/where_query.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/query_engine/where_query.cc b/src/query_engine/where_query.cc index 54fcc06e127..6f548bf241e 100644 --- a/src/query_engine/where_query.cc +++ b/src/query_engine/where_query.cc @@ -249,7 +249,13 @@ WhereQuery::StatTermParse(QueryUnit *main_query, const rapidjson::Value& where_t // Where query specified a suffix. Check that it is valid if (cdesc.suffixes.find(sname)==cdesc.suffixes.end()) return false; - StatsQuery::column_t cdesc2 = m_query->stats().get_column_desc(sname); + // The suffix attribute MUST exist in the schema + StatsQuery::column_t cdesc2; + if (m_query->stats().is_stat_table_static()) { + cdesc2 = m_query->stats().get_column_desc(sname); + } else { + cdesc2 = get_column_desc(table_schema, sname);; + } QE_ASSERT ((cdesc2.datatype == QEOpServerProxy::STRING) || (cdesc2.datatype == QEOpServerProxy::UINT64));