use of edu.uci.ics.textdb.textql.statements.SelectStatement in project textdb by TextDB.
the class TextQLParserTest method testSelectStatement.
/**
* Test the selectStatement method of the parser.
* It should parse a select statements and return the expected SelectStatement object.
* @throws ParseException if an unexpected ParseException is thrown
*/
@Test
public void testSelectStatement() throws ParseException {
String SelectStatement00 = "SELECT * FROM a";
ProjectPredicate SelectStatementSelect00 = new ProjectAllFieldsPredicate();
Statement SelectStatementParameters00 = new SelectStatement("_sid0", SelectStatementSelect00, null, "a", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement00))).selectStatement(), SelectStatementParameters00);
String SelectStatement01 = "SELECT * FROM b LIMIT 5";
ProjectPredicate SelectStatementSelect01 = new ProjectAllFieldsPredicate();
Statement SelectStatementParameters01 = new SelectStatement("_sid0", SelectStatementSelect01, null, "b", 5, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement01))).selectStatement(), SelectStatementParameters01);
String SelectStatement02 = "SELECT * FROM c LIMIT 1 OFFSET 8";
ProjectPredicate SelectStatementSelect02 = new ProjectAllFieldsPredicate();
Statement SelectStatementParameters02 = new SelectStatement("_sid0", SelectStatementSelect02, null, "c", 1, 8);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement02))).selectStatement(), SelectStatementParameters02);
String SelectStatement03 = "SELECT * FROM d OFFSET 6";
ProjectPredicate SelectStatementSelect03 = new ProjectAllFieldsPredicate();
Statement SelectStatementParameters03 = new SelectStatement("_sid0", SelectStatementSelect03, null, "d", null, 6);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement03))).selectStatement(), SelectStatementParameters03);
String SelectStatement04 = "SELECT f1 FROM e";
ProjectPredicate SelectStatementSelect04 = new ProjectSomeFieldsPredicate(Arrays.asList("f1"));
Statement SelectStatementParameters04 = new SelectStatement("_sid0", SelectStatementSelect04, null, "e", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement04))).selectStatement(), SelectStatementParameters04);
String SelectStatement05 = "SELECT f1, f5 FROM i";
ProjectPredicate SelectStatementSelect05 = new ProjectSomeFieldsPredicate(Arrays.asList("f1", "f5"));
Statement SelectStatementParameters05 = new SelectStatement("_sid0", SelectStatementSelect05, null, "i", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement05))).selectStatement(), SelectStatementParameters05);
String SelectStatement06 = "SELECT f8, fa, fc, df, ff FROM j";
ProjectPredicate SelectStatementSelect06 = new ProjectSomeFieldsPredicate(Arrays.asList("f8", "fa", "fc", "df", "ff"));
Statement SelectStatementParameters06 = new SelectStatement("_sid0", SelectStatementSelect06, null, "j", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement06))).selectStatement(), SelectStatementParameters06);
String SelectStatement07 = "SELECT a, KEYWORDMATCH(g0, \"key1\") FROM k";
ProjectPredicate SelectStatementSelect07 = new ProjectSomeFieldsPredicate(Arrays.asList("a"));
ExtractPredicate SelectStatementExtract07 = new KeywordExtractPredicate(Arrays.asList("g0"), "key1", null);
Statement SelectStatementParameters07 = new SelectStatement("_sid0", SelectStatementSelect07, SelectStatementExtract07, "k", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement07))).selectStatement(), SelectStatementParameters07);
String SelectStatement08 = "SELECT b, KEYWORDMATCH(g1, \"key2\", conjunction) FROM l";
ProjectPredicate SelectStatementSelect08 = new ProjectSomeFieldsPredicate(Arrays.asList("b"));
ExtractPredicate SelectStatementExtract08 = new KeywordExtractPredicate(Arrays.asList("g1"), "key2", "conjunction");
Statement SelectStatementParameters08 = new SelectStatement("_sid0", SelectStatementSelect08, SelectStatementExtract08, "l", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement08))).selectStatement(), SelectStatementParameters08);
String SelectStatement10 = "SELECT v, KEYWORDMATCH(u, \"keyZ\") FROM t";
ProjectPredicate SelectStatementSelect10 = new ProjectSomeFieldsPredicate(Arrays.asList("v"));
ExtractPredicate SelectStatementExtract10 = new KeywordExtractPredicate(Arrays.asList("u"), "keyZ", null);
Statement SelectStatementParameters10 = new SelectStatement("_sid0", SelectStatementSelect10, SelectStatementExtract10, "t", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement10))).selectStatement(), SelectStatementParameters10);
String SelectStatement11 = "SELECT e, KEYWORDMATCH([g4], \"key0\") FROM o";
ProjectPredicate SelectStatementSelect11 = new ProjectSomeFieldsPredicate(Arrays.asList("e"));
ExtractPredicate SelectStatementExtract11 = new KeywordExtractPredicate(Arrays.asList("g4"), "key0", null);
Statement SelectStatementParameters11 = new SelectStatement("_sid0", SelectStatementSelect11, SelectStatementExtract11, "o", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement11))).selectStatement(), SelectStatementParameters11);
String SelectStatement12 = "SELECT f, KEYWORDMATCH([g6,g7,h8,i9], \"key\") FROM p";
ProjectPredicate SelectStatementSelect12 = new ProjectSomeFieldsPredicate(Arrays.asList("f"));
ExtractPredicate SelectStatementExtract12 = new KeywordExtractPredicate(Arrays.asList("g6", "g7", "h8", "i9"), "key", null);
Statement SelectStatementParameters12 = new SelectStatement("_sid0", SelectStatementSelect12, SelectStatementExtract12, "p", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement12))).selectStatement(), SelectStatementParameters12);
String SelectStatement13 = "SELECT h, i, j, KEYWORDMATCH([h6,h7,k8,k9], \"key5\") FROM q";
ProjectPredicate SelectStatementSelect13 = new ProjectSomeFieldsPredicate(Arrays.asList("h", "i", "j"));
ExtractPredicate SelectStatementExtract13 = new KeywordExtractPredicate(Arrays.asList("h6", "h7", "k8", "k9"), "key5", null);
Statement SelectStatementParameters13 = new SelectStatement("_sid0", SelectStatementSelect13, SelectStatementExtract13, "q", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement13))).selectStatement(), SelectStatementParameters13);
String SelectStatement14 = "SELECT KEYWORDMATCH([i6,j7,l8,m9], \"key5\") FROM q";
ExtractPredicate SelectStatementExtract14 = new KeywordExtractPredicate(Arrays.asList("i6", "j7", "l8", "m9"), "key5", null);
Statement SelectStatementParameters14 = new SelectStatement("_sid0", null, SelectStatementExtract14, "q", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement14))).selectStatement(), SelectStatementParameters14);
String SelectStatement15 = "SELECT KEYWORDMATCH(g0, \"key1\") FROM k";
ExtractPredicate SelectStatementExtract15 = new KeywordExtractPredicate(Arrays.asList("g0"), "key1", null);
Statement SelectStatementParameters15 = new SelectStatement("_sid0", null, SelectStatementExtract15, "k", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement15))).selectStatement(), SelectStatementParameters15);
String SelectStatement16 = "SELECT KEYWORDMATCH(g1, \"key2\", phrase) FROM l";
ExtractPredicate SelectStatementExtract16 = new KeywordExtractPredicate(Arrays.asList("g1"), "key2", "phrase");
Statement SelectStatementParameters16 = new SelectStatement("_sid0", null, SelectStatementExtract16, "l", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement16))).selectStatement(), SelectStatementParameters16);
String SelectStatement19 = "SELECT KEYWORDMATCH([g4], \"key0\") FROM o";
ExtractPredicate SelectStatementExtract19 = new KeywordExtractPredicate(Arrays.asList("g4"), "key0", null);
Statement SelectStatementParameters19 = new SelectStatement("_sid0", null, SelectStatementExtract19, "o", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement19))).selectStatement(), SelectStatementParameters19);
String SelectStatement20 = "SELECT KEYWORDMATCH([g6,g7,h8,i9], \"key\") FROM p";
ExtractPredicate SelectStatementExtract20 = new KeywordExtractPredicate(Arrays.asList("g6", "g7", "h8", "i9"), "key", null);
Statement SelectStatementParameters20 = new SelectStatement("_sid0", null, SelectStatementExtract20, "p", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement20))).selectStatement(), SelectStatementParameters20);
String SelectStatement21 = "SELECT KEYWORDMATCH([h3,i2,j1,k0], \"key\\\"/\") FROM m LIMIT 4 OFFSET 25 ";
ExtractPredicate SelectStatementExtract21 = new KeywordExtractPredicate(Arrays.asList("h3", "i2", "j1", "k0"), "key\"/", null);
Statement SelectStatementParameters21 = new SelectStatement("_sid0", null, SelectStatementExtract21, "m", 4, 25);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement21))).selectStatement(), SelectStatementParameters21);
String SelectStatement22 = "SELECT FROM a";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement22))).selectStatement(), ParseException.class);
String SelectStatement23 = "SELECT FROM a OFFSET 5 LIMIT 6";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement23))).selectStatement(), ParseException.class);
String SelectStatement24 = "SELECT 25 FROM a";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement24))).selectStatement(), ParseException.class);
String SelectStatement25 = "SELECT [a,b] FROM a";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement25))).selectStatement(), ParseException.class);
String SelectStatement26 = "SELECT *, a FROM a";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement26))).selectStatement(), ParseException.class);
String SelectStatement27 = "SELECT * FROM [a,b]";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement27))).selectStatement(), ParseException.class);
String SelectStatement28 = "SELECT KEYWORDMATCH(g0, \"key1\"), a FROM a";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement28))).selectStatement(), ParseException.class);
String SelectStatement29 = "SELECT KEYWORDMATCH(g0, \"key1\") SELECT a FROM k";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement29))).selectStatement(), ParseException.class);
String SelectStatement30 = "SELECT a";
assertException(() -> (new TextQLParser(string2InputStream(SelectStatement30))).selectStatement(), ParseException.class);
}
use of edu.uci.ics.textdb.textql.statements.SelectStatement in project textdb by TextDB.
the class TextQLParserTest method testCreateViewStatement.
/**
* Test the createViewStatement method of the parser.
* It should parse a create view statement and return the expected CreateViewStatement object.
* @throws ParseException if an unexpected ParseException is thrown
*/
@Test
public void testCreateViewStatement() throws ParseException {
String createViewStatement00 = " CREATE VIEW v0 AS SELECT * FROM a ";
ProjectPredicate createViewStatementSelectP00 = new ProjectAllFieldsPredicate();
Statement createViewStatementSelect00 = new SelectStatement("_sid0", createViewStatementSelectP00, null, "a", null, null);
Statement createViewStatementParameters00 = new CreateViewStatement("v0", createViewStatementSelect00);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement00))).createViewStatement(), createViewStatementParameters00);
String createViewStatement01 = " CREATE VIEW v1 AS SELECT f8, fa, fc, df, ff FROM j LIMIT 1 OFFSET 8 ";
ProjectPredicate createViewStatementSelectP01 = new ProjectSomeFieldsPredicate(Arrays.asList("f8", "fa", "fc", "df", "ff"));
Statement createViewStatementSelect01 = new SelectStatement("_sid0", createViewStatementSelectP01, null, "j", 1, 8);
Statement createViewStatementParameters01 = new CreateViewStatement("v1", createViewStatementSelect01);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement01))).createViewStatement(), createViewStatementParameters01);
String createViewStatement02 = " CREATE VIEW v2 AS SELECT e, KEYWORDMATCH([g4,g5], \"key0\") FROM o ";
ProjectPredicate createViewStatementSelectP02 = new ProjectSomeFieldsPredicate(Arrays.asList("e"));
ExtractPredicate createViewStatementExtract02 = new KeywordExtractPredicate(Arrays.asList("g4", "g5"), "key0", null);
Statement createViewStatementSelect02 = new SelectStatement("_sid0", createViewStatementSelectP02, createViewStatementExtract02, "o", null, null);
Statement createViewStatementParameters02 = new CreateViewStatement("v2", createViewStatementSelect02);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement02))).createViewStatement(), createViewStatementParameters02);
String createViewStatement03 = " CREATE VIEW v2 AS SELECT KEYWORDMATCH([g4,g5], \"key0\", substring) FROM o ";
ExtractPredicate createViewStatementExtract03 = new KeywordExtractPredicate(Arrays.asList("g4", "g5"), "key0", "substring");
Statement createViewStatementSelect03 = new SelectStatement("_sid0", null, createViewStatementExtract03, "o", null, null);
Statement createViewStatementParameters03 = new CreateViewStatement("v2", createViewStatementSelect03);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement03))).createViewStatement(), createViewStatementParameters03);
String createViewStatement04 = " CREATE VIEW v3 AS CREATE VIEW v4 AS SELECT * FROM a ";
assertException(() -> (new TextQLParser(string2InputStream(createViewStatement04))).createViewStatement(), ParseException.class);
String createViewStatement05 = " CREATE VIEW v0 AS ";
assertException(() -> (new TextQLParser(string2InputStream(createViewStatement05))).createViewStatement(), ParseException.class);
String createViewStatement06 = " CREATE VIEW v0 ";
assertException(() -> (new TextQLParser(string2InputStream(createViewStatement06))).createViewStatement(), ParseException.class);
String createViewStatement08 = " CREATE v0 AS SELECT * FROM a ";
assertException(() -> (new TextQLParser(string2InputStream(createViewStatement08))).createViewStatement(), ParseException.class);
String createViewStatement09 = " VIEW v0 AS SELECT * FROM a ";
assertException(() -> (new TextQLParser(string2InputStream(createViewStatement09))).createViewStatement(), ParseException.class);
}
use of edu.uci.ics.textdb.textql.statements.SelectStatement in project textdb by TextDB.
the class TextQLParserTest method testStatement.
/**
* Test the statement method of the parser.
* It should parse a statement and return the expected Statement object.
* @throws ParseException if an unexpected ParseException is thrown
*/
@Test
public void testStatement() throws ParseException {
String SelectStatement00 = "SELECT * FROM a;";
ProjectPredicate SelectStatementSelect00 = new ProjectAllFieldsPredicate();
Statement SelectStatementParameters00 = new SelectStatement("_sid0", SelectStatementSelect00, null, "a", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement00))).statement(), SelectStatementParameters00);
String SelectStatement06 = "SELECT f8, fa, fc, df, ff FROM j;";
ProjectPredicate SelectStatementSelect06 = new ProjectSomeFieldsPredicate(Arrays.asList("f8", "fa", "fc", "df", "ff"));
Statement SelectStatementParameters06 = new SelectStatement("_sid0", SelectStatementSelect06, null, "j", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement06))).statement(), SelectStatementParameters06);
String SelectStatement13 = "SELECT h, i, j, KEYWORDMATCH([h6,h7,k8,k9], \"key5\") FROM q;";
ProjectPredicate SelectStatementSelect13 = new ProjectSomeFieldsPredicate(Arrays.asList("h", "i", "j"));
ExtractPredicate SelectStatementExtract13 = new KeywordExtractPredicate(Arrays.asList("h6", "h7", "k8", "k9"), "key5", null);
Statement SelectStatementParameters13 = new SelectStatement("_sid0", SelectStatementSelect13, SelectStatementExtract13, "q", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement13))).statement(), SelectStatementParameters13);
String SelectStatement14 = "SELECT KEYWORDMATCH([i6,j7,l8,m9], \"key5\") FROM q;";
ExtractPredicate SelectStatementExtract14 = new KeywordExtractPredicate(Arrays.asList("i6", "j7", "l8", "m9"), "key5", null);
Statement SelectStatementParameters14 = new SelectStatement("_sid0", null, SelectStatementExtract14, "q", null, null);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement14))).statement(), SelectStatementParameters14);
String SelectStatement21 = "SELECT KEYWORDMATCH([h3,i2,j1,k0], \"key\\\"/\") FROM m LIMIT 4 OFFSET 25 ;";
ExtractPredicate SelectStatementExtract21 = new KeywordExtractPredicate(Arrays.asList("h3", "i2", "j1", "k0"), "key\"/", null);
Statement SelectStatementParameters21 = new SelectStatement("_sid0", null, SelectStatementExtract21, "m", 4, 25);
Assert.assertEquals((new TextQLParser(string2InputStream(SelectStatement21))).statement(), SelectStatementParameters21);
String createViewStatement00 = " CREATE VIEW v0 AS SELECT * FROM a; ";
ProjectPredicate createViewStatementSelectP00 = new ProjectAllFieldsPredicate();
Statement createViewStatementSelect00 = new SelectStatement("_sid0", createViewStatementSelectP00, null, "a", null, null);
Statement createViewStatementParameters00 = new CreateViewStatement("v0", createViewStatementSelect00);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement00))).statement(), createViewStatementParameters00);
String createViewStatement01 = " CREATE VIEW v1 AS SELECT f8, fa, fc, df, ff FROM j LIMIT 1 OFFSET 8; ";
ProjectPredicate createViewStatementSelectP01 = new ProjectSomeFieldsPredicate(Arrays.asList("f8", "fa", "fc", "df", "ff"));
Statement createViewStatementSelect01 = new SelectStatement("_sid0", createViewStatementSelectP01, null, "j", 1, 8);
Statement createViewStatementParameters01 = new CreateViewStatement("v1", createViewStatementSelect01);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement01))).statement(), createViewStatementParameters01);
String createViewStatement02 = " CREATE VIEW v2 AS SELECT e, KEYWORDMATCH([g4,g5], \"key0\") FROM o ;";
ProjectPredicate createViewStatementSelectP02 = new ProjectSomeFieldsPredicate(Arrays.asList("e"));
ExtractPredicate createViewStatementExtract02 = new KeywordExtractPredicate(Arrays.asList("g4", "g5"), "key0", null);
Statement createViewStatementSelect02 = new SelectStatement("_sid0", createViewStatementSelectP02, createViewStatementExtract02, "o", null, null);
Statement createViewStatementParameters02 = new CreateViewStatement("v2", createViewStatementSelect02);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement02))).statement(), createViewStatementParameters02);
String createViewStatement03 = " CREATE VIEW v2 AS SELECT KEYWORDMATCH([g4,g5], \"key0\", substring) FROM o ;";
ExtractPredicate createViewStatementExtract03 = new KeywordExtractPredicate(Arrays.asList("g4", "g5"), "key0", "substring");
Statement createViewStatementSelect03 = new SelectStatement("_sid0", null, createViewStatementExtract03, "o", null, null);
Statement createViewStatementParameters03 = new CreateViewStatement("v2", createViewStatementSelect03);
Assert.assertEquals((new TextQLParser(string2InputStream(createViewStatement03))).statement(), createViewStatementParameters03);
}
use of edu.uci.ics.textdb.textql.statements.SelectStatement in project textdb by TextDB.
the class CreateViewStatementTest method testCreateViewStatementBeansBuilder00.
/**
* Test the correctness of the generated beans by a CreateViewStatement with
* a SelectExtractStatement as sub-statement without a SelectPredicate nor
* ExtractPredicate.
* Get a graph by calling getInternalOperatorBeans() and getInternalLinkBeans()
* methods and check if the generated path form the node getInputNodeID() to
* the node getOutputNodeID() is correct. Also check whether getInputViews()
* is returning the correct dependencies.
*/
@Test
public void testCreateViewStatementBeansBuilder00() {
Statement subStatement = new SelectStatement("id2", null, null, "from", null, null);
CreateViewStatement createViewStatement = new CreateViewStatement("idx", subStatement);
List<PredicateBase> expectedGeneratedBeans = Collections.emptyList();
List<String> dependencies = Arrays.asList(subStatement.getId());
Assert.assertEquals(createViewStatement.getInputViews(), dependencies);
StatementTestUtils.assertGeneratedBeans(createViewStatement, expectedGeneratedBeans);
}
use of edu.uci.ics.textdb.textql.statements.SelectStatement in project textdb by TextDB.
the class SelectStatementTest method testSelectStatementBeansBuilder03.
/**
* Test the correctness of the generated beans by a SelectStatement with a
* KeywordExtractPredicate.
* Get a graph by calling getInternalPredicateBases() and getInternalLinkBeans()
* methods and check if the generated path form the node getInputNodeID() to
* the node getOutputNodeID() is correct. Also check whether getInputViews()
* is returning the correct dependencies.
*/
@Test
public void testSelectStatementBeansBuilder03() {
ExtractPredicate extractPredicate = new KeywordExtractPredicate(Arrays.asList("c", "d"), "word", KeywordMatchingType.SUBSTRING_SCANBASED.toString());
SelectStatement selectStatement = new SelectStatement("id", null, extractPredicate, "TableP9", null, null);
List<PredicateBase> expectedGeneratedBeans = Arrays.asList(new KeywordPredicate("word", Arrays.asList("c", "d"), null, KeywordMatchingType.SUBSTRING_SCANBASED, "id_e"));
List<String> dependencies = Arrays.asList("TableP9");
Assert.assertEquals(selectStatement.getInputViews(), dependencies);
StatementTestUtils.assertGeneratedBeans(selectStatement, expectedGeneratedBeans);
}
Aggregations