summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2023-11-30 15:06:27 +0100
committerGitHub <noreply@github.com>2023-11-30 15:06:27 +0100
commit56359165580539e638fe1fff0a30f4faaee531bd (patch)
treed0eb23c23ef93324f91b84a6489e9d7640b856b6
parent0fd0fa17062562fb5c29cdc1b74787093464e2f0 (diff)
parent88d3e7ce533f47b9b991a3262ee2c77445ff591a (diff)
Merge pull request #29511 from vespa-engine/toregge/keep-arity-of-parent-in-sync
Keep arity of parent in sync when making juniper query from stack dump.
-rw-r--r--searchsummary/src/vespa/juniper/queryvisitor.cpp5
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/juniper_query_adapter.cpp3
2 files changed, 6 insertions, 2 deletions
diff --git a/searchsummary/src/vespa/juniper/queryvisitor.cpp b/searchsummary/src/vespa/juniper/queryvisitor.cpp
index 73301f3119f..ef88fd79f6f 100644
--- a/searchsummary/src/vespa/juniper/queryvisitor.cpp
+++ b/searchsummary/src/vespa/juniper/queryvisitor.cpp
@@ -210,6 +210,7 @@ void QueryVisitor::VisitKeyword(const QueryItem* item, const char* keyword,
{
if (length == 0) {
// Do not consider empty terms.
+ insert(nullptr); // keep arity of parent in sync!
return;
}
juniper::ItemCreator creator = item->get_creator();
@@ -220,7 +221,7 @@ void QueryVisitor::VisitKeyword(const QueryItem* item, const char* keyword,
break;
default:
/** Keep track of eliminated children to have correct arity in rep. */
- insert(NULL);
+ insert(nullptr);
if (LOG_WOULD_LOG(debug)) {
std::string s(keyword, length);
std::string ind = get_index(item);
@@ -237,7 +238,7 @@ void QueryVisitor::VisitKeyword(const QueryItem* item, const char* keyword,
std::string ind = get_index(item);
LOG(debug, "juniper: VisitKeyword(%s:%s) - not applicable index", ind.c_str(), s.c_str());
}
- insert(NULL); // keep arity of parent in sync!
+ insert(nullptr); // keep arity of parent in sync!
return;
}
if (LOG_WOULD_LOG(debug)) {
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/juniper_query_adapter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/juniper_query_adapter.cpp
index 4e158ff595a..4e29a9a2f0b 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/juniper_query_adapter.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/juniper_query_adapter.cpp
@@ -136,6 +136,9 @@ JuniperQueryAdapter::Traverse(juniper::IQueryVisitor *v) const
case search::ParseItem::ITEM_SAME_ELEMENT:
case search::ParseItem::ITEM_NEAREST_NEIGHBOR:
case search::ParseItem::ITEM_GEO_LOCATION_TERM:
+ case search::ParseItem::ITEM_FUZZY:
+ case search::ParseItem::ITEM_STRING_IN:
+ case search::ParseItem::ITEM_NUMERIC_IN:
if (!v->VisitOther(&item, iterator.getArity())) {
rc = skipItem(&iterator);
}