diff options
author | Tor Egge <Tor.Egge@online.no> | 2024-03-05 16:29:58 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2024-03-05 16:29:58 +0100 |
commit | 81c57ad4a2758cc9e38864bee48d39313f1abdab (patch) | |
tree | e1fd9e53479e606efe0de57036942d91d3a02ded /searchlib/src/tests/query/streaming_query_test.cpp | |
parent | 5e3e20c342f8eb1a1baa8419be00cc86fd6daffc (diff) |
Adjust rewriting of number terms for string fields in streaming search.
Diffstat (limited to 'searchlib/src/tests/query/streaming_query_test.cpp')
-rw-r--r-- | searchlib/src/tests/query/streaming_query_test.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/searchlib/src/tests/query/streaming_query_test.cpp b/searchlib/src/tests/query/streaming_query_test.cpp index 5559e194c5e..2129cb6805a 100644 --- a/searchlib/src/tests/query/streaming_query_test.cpp +++ b/searchlib/src/tests/query/streaming_query_test.cpp @@ -380,6 +380,31 @@ TEST(StreamingQueryTest, onedot0e_is_rewritten_if_allowed_too) } } +TEST(StreamingQueryTest, negative_integer_is_rewritten_if_allowed_for_string_field) +{ + const char term[7] = {TERM_UNIQ, 3, 1, 'c', 2, '-', '5'}; + vespalib::stringref stackDump(term, sizeof(term)); + EXPECT_EQ(7u, stackDump.size()); + AllowRewrite empty("c"); + const Query q(empty, stackDump); + EXPECT_TRUE(q.valid()); + auto& root = q.getRoot(); + auto& equiv = dynamic_cast<const EquivQueryNode &>(root); + EXPECT_EQ(2u, equiv.get_terms().size()); + { + auto& qt = *equiv.get_terms()[0]; + EXPECT_EQ("c", qt.index()); + EXPECT_EQ(vespalib::stringref("-5"), qt.getTerm()); + EXPECT_EQ(3u, qt.uniqueId()); + } + { + auto& qt = *equiv.get_terms()[1]; + EXPECT_EQ("c", qt.index()); + EXPECT_EQ(vespalib::stringref("5"), qt.getTerm()); + EXPECT_EQ(0u, qt.uniqueId()); + } +} + TEST(StreamingQueryTest, test_get_query_parts) { QueryBuilder<SimpleQueryNodeTypes> builder; |