summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-09-30 16:54:37 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-09-30 16:54:37 +0200
commitf89ce0648ac17de46ee325398b21767a3e8e3b01 (patch)
treed208300f632ea142870e9d78fa199265d80d88c6 /container-search
parentaa7061626f330bfb573f4afdbab8bc9ddd5ec927 (diff)
Add 'like' to reserved words usable as identifiers
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g42
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/test/QueryTestCase.java20
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java6
3 files changed, 8 insertions, 20 deletions
diff --git a/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4 b/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
index 2e8aac43a65..639ff8255d2 100644
--- a/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
+++ b/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
@@ -298,7 +298,7 @@ ident
keyword_as_ident
: SELECT | TABLE | DELETE | INTO | VALUES | LIMIT | OFFSET | WHERE | 'order' | 'by' | DESC | MERGE | LEFT | JOIN
| ON | OUTPUT | COUNT | BEGIN | END | APPLY | TYPE_BYTE | TYPE_INT16 | TYPE_INT32 | TYPE_INT64 | TYPE_BOOLEAN | TYPE_TIMESTAMP | TYPE_DOUBLE | TYPE_STRING | TYPE_ARRAY | TYPE_MAP
- | VIEW | CREATE | IMPORT | PROGRAM | NEXT | PAGED | SOURCES | SET | MATCHES
+ | VIEW | CREATE | IMPORT | PROGRAM | NEXT | PAGED | SOURCES | SET | MATCHES | LIKE
;
//program : params? (import_statement SEMI)* (ddl SEMI)* (statement SEMI)* EOF
diff --git a/container-search/src/test/java/com/yahoo/prelude/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/prelude/test/QueryTestCase.java
index 78868f37718..7b3327c04af 100644
--- a/container-search/src/test/java/com/yahoo/prelude/test/QueryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/test/QueryTestCase.java
@@ -35,9 +35,6 @@ import static org.junit.Assume.assumeTrue;
*/
public class QueryTestCase {
- /**
- * Basic test
- */
@Test
public void testSimpleQueryParsing () {
Query q = newQuery("/search?query=foobar&offset=10&hits=20");
@@ -46,9 +43,6 @@ public class QueryTestCase {
assertEquals(20,q.getHits());
}
- /**
- * Not quite so basic
- */
@Test
public void testAdvancedQueryParsing () {
Query q = newQuery("/search?query=fOObar and kanoo&offset=10&hits=20&filter=-foo +bar&type=adv&suggestonly=true");
@@ -58,9 +52,6 @@ public class QueryTestCase {
assertEquals(true, q.properties().getBoolean("suggestonly", false));
}
- /**
- * Not quite so basic
- */
@Test
public void testAnyQueryParsing () {
Query q = newQuery("/search?query=foobar and kanoo&offset=10&hits=10&type=any&suggestonly=true&filter=-fast.type:offensive&encoding=latin1");
@@ -71,9 +62,6 @@ public class QueryTestCase {
assertEquals("latin1",q.getModel().getEncoding());
}
- /**
- * A long string
- */
@Test
public void testLongQueryParsing() {
Query q = newQuery("/p13n?query=news"
@@ -108,18 +96,12 @@ public class QueryTestCase {
}
}
- /**
- * Test UTF-8 decoding
- */
@Test
public void testUtf8Decoding() {
Query q = new Query("/?query=beyonc%C3%A9");
assertEquals("beyonc\u00e9",((WordItem) q.getModel().getQueryTree().getRoot()).getWord());
}
- /**
- * Check sortspec "parsing" is correct.
- */
@Test
public void testSortSpec() {
Query q = newQuery("?query=test&sortspec=+a -b c +[rank]");
@@ -321,7 +303,7 @@ public class QueryTestCase {
/** Test a vertical specific patch, see Tokenizer */
@Test
@Ignore
- public void testOtherharactersParsing() {
+ public void testOtherCharactersParsing() {
Query query=newQuery(com.yahoo.search.test.QueryTestCase.httpEncode("?query=\u3007\u2e80\u2eff\u2ed0"));
assertEquals(Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION,
Character.UnicodeBlock.of(query.getModel().getQueryTree().getRoot().toString().charAt(0)));
diff --git a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java
index 00a17f963c6..1d25c2301e2 100644
--- a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java
@@ -980,6 +980,12 @@ public class YqlParserTestCase {
assertUrlQuery("urlfield", yql, false, false, false);
}
+ @Test
+ public void testReservedWordInSource() {
+ parse("select * from sources like where text contains \"test\";");
+ // success: parsed without exception
+ }
+
private void assertUrlQuery(String field, Query query, boolean startAnchor, boolean endAnchor, boolean endAnchorIsDefault) {
boolean startAnchorIsDefault = false; // Always