use of io.confluent.ksql.parser.tree.QuerySpecification in project ksql by confluentinc.
the class KsqlParserTest method testSelectAll.
@Test
public void testSelectAll() throws Exception {
String queryStr = "SELECT * FROM test1 t1;";
Statement statement = KSQL_PARSER.buildAst(queryStr, metaStore).get(0);
Assert.assertTrue("testSelectAll fails", statement instanceof Query);
Query query = (Query) statement;
Assert.assertTrue("testSelectAll fails", query.getQueryBody() instanceof QuerySpecification);
QuerySpecification querySpecification = (QuerySpecification) query.getQueryBody();
Assert.assertTrue("testSelectAll fails", querySpecification.getSelect().getSelectItems().size() == 6);
}
use of io.confluent.ksql.parser.tree.QuerySpecification in project ksql by confluentinc.
the class KsqlParserTest method testSelectHoppingWindow.
@Test
public void testSelectHoppingWindow() throws Exception {
String queryStr = "select itemid, sum(orderunits) from orders window HOPPING ( size 30 second, advance by 5" + " seconds) " + "where " + "orderunits" + " > 5 group by itemid;";
Statement statement = KSQL_PARSER.buildAst(queryStr, metaStore).get(0);
assertThat(statement, instanceOf(Query.class));
Query query = (Query) statement;
assertThat(query.getQueryBody(), instanceOf(QuerySpecification.class));
QuerySpecification querySpecification = (QuerySpecification) query.getQueryBody();
assertThat(querySpecification.getSelect().getSelectItems().size(), equalTo(2));
assertThat(querySpecification.getWhere().get().toString(), equalTo("(ORDERS.ORDERUNITS > 5)"));
assertThat(((AliasedRelation) querySpecification.getFrom()).getAlias().toUpperCase(), equalTo("ORDERS"));
Assert.assertTrue("window expression isn't present", querySpecification.getWindowExpression().isPresent());
assertThat(querySpecification.getWindowExpression().get().toString().toUpperCase(), equalTo(" WINDOW STREAMWINDOW HOPPING ( SIZE 30 SECONDS , ADVANCE BY 5 SECONDS ) "));
}
use of io.confluent.ksql.parser.tree.QuerySpecification in project ksql by confluentinc.
the class KsqlParserTest method testProjection.
@Test
public void testProjection() throws Exception {
String queryStr = "SELECT col0, col2, col3 FROM test1;";
Statement statement = KSQL_PARSER.buildAst(queryStr, metaStore).get(0);
Assert.assertTrue("testProjection fails", statement instanceof Query);
Query query = (Query) statement;
Assert.assertTrue("testProjection fails", query.getQueryBody() instanceof QuerySpecification);
QuerySpecification querySpecification = (QuerySpecification) query.getQueryBody();
Assert.assertTrue("testProjection fails", querySpecification.getSelect().getSelectItems().size() == 3);
Assert.assertTrue("testProjection fails", querySpecification.getSelect().getSelectItems().get(0) instanceof SingleColumn);
SingleColumn column0 = (SingleColumn) querySpecification.getSelect().getSelectItems().get(0);
Assert.assertTrue("testProjection fails", column0.getAlias().get().equalsIgnoreCase("COL0"));
Assert.assertTrue("testProjection fails", column0.getExpression().toString().equalsIgnoreCase("TEST1.COL0"));
}
use of io.confluent.ksql.parser.tree.QuerySpecification in project ksql by confluentinc.
the class KsqlParserTest method testProjectionWithArrayMap.
@Test
public void testProjectionWithArrayMap() throws Exception {
String queryStr = "SELECT col0, col2, col3, col4[0], col5['key1'] FROM test1;";
Statement statement = KSQL_PARSER.buildAst(queryStr, metaStore).get(0);
Assert.assertTrue("testProjectionWithArrayMap fails", statement instanceof Query);
Query query = (Query) statement;
Assert.assertTrue("testProjectionWithArrayMap fails", query.getQueryBody() instanceof QuerySpecification);
QuerySpecification querySpecification = (QuerySpecification) query.getQueryBody();
Assert.assertTrue("testProjectionWithArrayMap fails", querySpecification.getSelect().getSelectItems().size() == 5);
Assert.assertTrue("testProjectionWithArrayMap fails", querySpecification.getSelect().getSelectItems().get(0) instanceof SingleColumn);
SingleColumn column0 = (SingleColumn) querySpecification.getSelect().getSelectItems().get(0);
Assert.assertTrue("testProjectionWithArrayMap fails", column0.getAlias().get().equalsIgnoreCase("COL0"));
Assert.assertTrue("testProjectionWithArrayMap fails", column0.getExpression().toString().equalsIgnoreCase("TEST1.COL0"));
SingleColumn column3 = (SingleColumn) querySpecification.getSelect().getSelectItems().get(3);
SingleColumn column4 = (SingleColumn) querySpecification.getSelect().getSelectItems().get(4);
Assert.assertTrue("testProjectionWithArrayMap fails", column3.getExpression().toString().equalsIgnoreCase("TEST1.COL4[0]"));
Assert.assertTrue("testProjectionWithArrayMap fails", column4.getExpression().toString().equalsIgnoreCase("TEST1.COL5['key1']"));
}
use of io.confluent.ksql.parser.tree.QuerySpecification in project ksql by confluentinc.
the class KsqlParserTest method testSelectAllJoin.
@Test
public void testSelectAllJoin() throws Exception {
String queryStr = "SELECT * FROM test1 t1 LEFT JOIN test2 t2 ON t1.col1 = t2.col1 WHERE t2.col2 = 'test';";
Statement statement = KSQL_PARSER.buildAst(queryStr, metaStore).get(0);
Assert.assertTrue("testSimpleQuery fails", statement instanceof Query);
Query query = (Query) statement;
Assert.assertTrue("testLeftJoinWithFilter fails", query.getQueryBody() instanceof QuerySpecification);
QuerySpecification querySpecification = (QuerySpecification) query.getQueryBody();
Assert.assertTrue("testSelectAllJoin fails", querySpecification.getFrom() instanceof Join);
Join join = (Join) querySpecification.getFrom();
Assert.assertTrue("testSelectAllJoin fails", querySpecification.getSelect().getSelectItems().size() == 11);
Assert.assertTrue("testLeftJoinWithFilter fails", ((AliasedRelation) join.getLeft()).getAlias().equalsIgnoreCase("T1"));
Assert.assertTrue("testLeftJoinWithFilter fails", ((AliasedRelation) join.getRight()).getAlias().equalsIgnoreCase("T2"));
}
Aggregations