summaryrefslogtreecommitdiffstats
path: root/searchsummary/src/tests/extractkeywords/simplequerystackitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchsummary/src/tests/extractkeywords/simplequerystackitem.cpp')
-rw-r--r--searchsummary/src/tests/extractkeywords/simplequerystackitem.cpp198
1 files changed, 0 insertions, 198 deletions
diff --git a/searchsummary/src/tests/extractkeywords/simplequerystackitem.cpp b/searchsummary/src/tests/extractkeywords/simplequerystackitem.cpp
deleted file mode 100644
index 65815f86251..00000000000
--- a/searchsummary/src/tests/extractkeywords/simplequerystackitem.cpp
+++ /dev/null
@@ -1,198 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include "simplequerystackitem.h"
-#include <vespa/vespalib/objects/nbo.h>
-#include <vespa/vespalib/stllike/asciistream.h>
-#include <cassert>
-
-namespace search {
-
-SimpleQueryStackItem::SimpleQueryStackItem()
- : _next(NULL),
- _arg1(0),
- _arg2(0),
- _arg3(0),
- _type(ITEM_UNDEF),
- _arity(0),
- _indexName(),
- _term()
-{}
-
-namespace {
-
-void assert_term_type(ParseItem::ItemType type) {
- assert(type == ParseItem::ITEM_TERM ||
- type == ParseItem::ITEM_NUMTERM ||
- type == ParseItem::ITEM_NEAREST_NEIGHBOR ||
- type == ParseItem::ITEM_GEO_LOCATION_TERM ||
- type == ParseItem::ITEM_PREFIXTERM ||
- type == ParseItem::ITEM_SUBSTRINGTERM ||
- type == ParseItem::ITEM_SUFFIXTERM ||
- type == ParseItem::ITEM_PURE_WEIGHTED_STRING ||
- type == ParseItem::ITEM_PURE_WEIGHTED_LONG ||
- type == ParseItem::ITEM_EXACTSTRINGTERM ||
- type == ParseItem::ITEM_PREDICATE_QUERY);
- (void) type;
-}
-
-void assert_arity_type(ParseItem::ItemType type) {
- // types with arity, but without an index name:
- assert(type == ParseItem::ITEM_OR ||
- type == ParseItem::ITEM_WEAK_AND ||
- type == ParseItem::ITEM_EQUIV ||
- type == ParseItem::ITEM_AND ||
- type == ParseItem::ITEM_NOT ||
- type == ParseItem::ITEM_RANK ||
- type == ParseItem::ITEM_ANY ||
- type == ParseItem::ITEM_NEAR ||
- type == ParseItem::ITEM_ONEAR);
- (void) type;
-}
-
-void assert_arity_and_index_type(ParseItem::ItemType type) {
- // types with arity and an index name:
- assert(type == ParseItem::ITEM_PHRASE ||
- type == ParseItem::ITEM_SAME_ELEMENT ||
- type == ParseItem::ITEM_WEIGHTED_SET ||
- type == ParseItem::ITEM_DOT_PRODUCT ||
- type == ParseItem::ITEM_WAND ||
- type == ParseItem::ITEM_WORD_ALTERNATIVES);
- (void) type;
-}
-
-int64_t term_as_n64(vespalib::stringref term) {
- int64_t tmp;
- vespalib::asciistream generatedTerm(term);
- generatedTerm >> tmp;
- return vespalib::nbo::n2h(tmp);
-}
-
-} // namespace <unnamed>
-
-
-SimpleQueryStackItem::SimpleQueryStackItem(ItemType type, int arity) : SimpleQueryStackItem()
-{
- assert_arity_type(type);
- SetType(type);
- _arity = arity;
-}
-
-SimpleQueryStackItem::SimpleQueryStackItem(ItemType type, int arity, const char *idx) : SimpleQueryStackItem()
-{
- assert_arity_and_index_type(type);
- SetType(type);
- _arity = arity;
- SetIndex(idx);
-}
-
-SimpleQueryStackItem::SimpleQueryStackItem(ItemType type, const char *term) : SimpleQueryStackItem()
-{
- assert_term_type(type);
- SetType(type);
- SetTerm(term);
-}
-
-SimpleQueryStackItem::~SimpleQueryStackItem()
-{
- delete _next;
-}
-
-void
-SimpleQueryStackItem::AppendBuffer(RawBuf *buf) const
-{
- // Calculate lengths
- uint32_t indexLen = _indexName.size();
- uint32_t termLen = _term.size();
- double nboVal = 0.0;
-
- // Put the values into the buffer.
- buf->append(_type);
- switch (Type()) {
- case ITEM_OR:
- case ITEM_EQUIV:
- case ITEM_AND:
- case ITEM_NOT:
- case ITEM_RANK:
- case ITEM_ANY:
- buf->appendCompressedPositiveNumber(_arity);
- break;
- case ITEM_NEAR:
- case ITEM_ONEAR:
- buf->appendCompressedPositiveNumber(_arity);
- buf->appendCompressedPositiveNumber(_arg1);
- break;
- case ITEM_SAME_ELEMENT:
- case ITEM_WEIGHTED_SET:
- case ITEM_DOT_PRODUCT:
- case ITEM_PHRASE:
- buf->appendCompressedPositiveNumber(_arity);
- buf->appendCompressedPositiveNumber(indexLen);
- buf->append(_indexName.c_str(), indexLen);
- break;
- case ITEM_WORD_ALTERNATIVES:
- buf->appendCompressedPositiveNumber(indexLen);
- buf->append(_indexName.c_str(), indexLen);
- buf->appendCompressedPositiveNumber(_arity);
- break;
- case ITEM_WEAK_AND:
- buf->appendCompressedPositiveNumber(_arity);
- buf->appendCompressedPositiveNumber(_arg1);
- buf->appendCompressedPositiveNumber(indexLen);
- buf->append(_indexName.c_str(), indexLen);
- break;
- case ITEM_WAND:
- buf->appendCompressedPositiveNumber(_arity);
- buf->appendCompressedPositiveNumber(indexLen);
- buf->append(_indexName.c_str(), indexLen);
- buf->appendCompressedPositiveNumber(_arg1); // targetNumHits
- nboVal = vespalib::nbo::n2h(_arg2);
- buf->append(&nboVal, sizeof(nboVal)); // scoreThreshold
- nboVal = vespalib::nbo::n2h(_arg3);
- buf->append(&nboVal, sizeof(nboVal)); // thresholdBoostFactor
- break;
- case ITEM_TERM:
- case ITEM_NUMTERM:
- case ITEM_GEO_LOCATION_TERM:
- case ITEM_PREFIXTERM:
- case ITEM_SUBSTRINGTERM:
- case ITEM_EXACTSTRINGTERM:
- case ITEM_SUFFIXTERM:
- case ITEM_REGEXP:
- case ITEM_FUZZY:
- buf->appendCompressedPositiveNumber(indexLen);
- buf->append(_indexName.c_str(), indexLen);
- buf->appendCompressedPositiveNumber(termLen);
- buf->append(_term.c_str(), termLen);
- break;
- case ITEM_TRUE:
- case ITEM_FALSE:
- // no content
- break;
- case ITEM_PURE_WEIGHTED_STRING:
- buf->appendCompressedPositiveNumber(termLen);
- buf->append(_term.c_str(), termLen);
- break;
- case ITEM_PURE_WEIGHTED_LONG:
- {
- int64_t tmp = term_as_n64(_term);
- buf->append(&tmp, sizeof(int64_t));
- }
- break;
- case ITEM_NEAREST_NEIGHBOR:
- buf->appendCompressedPositiveNumber(indexLen);
- buf->append(_indexName.c_str(), indexLen);
- buf->appendCompressedPositiveNumber(termLen);
- buf->append(_term.c_str(), termLen);
- buf->appendCompressedPositiveNumber(_arg1); // targetNumHits
- buf->appendCompressedPositiveNumber(_arg2); // allow_approximate
- buf->appendCompressedPositiveNumber(_arg3); // explore_additional_hits
- break;
- case ITEM_MULTI_TERM: // TODO: handle
- case ITEM_PREDICATE_QUERY: // not handled at all here
- case ITEM_UNDEF:
- abort();
- break;
- }
-}
-
-}