Package com.google.visualization.datasource.query

Examples of com.google.visualization.datasource.query.Query


  /**
   * Test selection of no cols (should be as select all).
   */
  public void testSelectWithNoCols() throws Exception {
    Query q = new Query();
    QuerySelection sel = new QuerySelection();
    q.setSelection(sel);
    DataTable res = QueryEngine.executeQuery(q, input, ULocale.US);
    List<ColumnDescription> cols = res.getColumnDescriptions();

    assertEquals(3, cols.size());
    assertEquals("name", cols.get(0).getId());
View Full Code Here


  /**
   * Test selection of the first col only.
   */
  public void testSelectionOfFirstCol() throws Exception {
    Query q = new Query();
    QuerySelection sel = new QuerySelection();
    sel.addColumn(new SimpleColumn("name"));
    q.setSelection(sel);
    DataTable res = QueryEngine.executeQuery(q, input, ULocale.US);
    List<ColumnDescription> cols = res.getColumnDescriptions();

    assertEquals(1, cols.size());
    assertEquals("name", cols.get(0).getId());
View Full Code Here

  /**
   * Test selection of all but the first col.
   */
  public void testSelectionOfAllButFirstCol() throws Exception {
    Query q = new Query();
    QuerySelection sel = new QuerySelection();
    sel.addColumn(new SimpleColumn("weight"));
    sel.addColumn(new SimpleColumn("isPig"));
    q.setSelection(sel);
    DataTable res = QueryEngine.executeQuery(q, input, ULocale.US);
    List<ColumnDescription> cols = res.getColumnDescriptions();

    assertEquals(2, cols.size());
    assertEquals("weight", cols.get(0).getId());
View Full Code Here

  /**
   * Test sorting by a text column, while this is the only selected column.
   */
  public void testSelectionAndSortByTextDescending() throws Exception {
    Query q = new Query();
    QuerySort sort = new QuerySort();
    sort.addSort(new ColumnSort(new SimpleColumn("name"),
        SortOrder.DESCENDING));
    q.setSort(sort);

    QuerySelection selection = new QuerySelection();
    selection.addColumn(new SimpleColumn("name"));
    q.setSelection(selection);
    DataTable res = QueryEngine.executeQuery(q, input, ULocale.US);
    List<ColumnDescription> cols = res.getColumnDescriptions();

    assertEquals(1, cols.size());
    assertEquals("name", cols.get(0).getId());
View Full Code Here

      // Supposed to throw an exception.
    }
  }

  public void testAdvancedStringOperators() throws Exception {
    Query query = QueryBuilder.getInstance().parseQuery("WHERE c1 MATCHES "
        + "'.*a[^b]*b' AND 'abc' MATCHES c2 AND 'foo' CONTAINS c3"
        + " AND c4 CONTAINS 'bar' AND c5 STARTS WITH 'baz' AND c6"
        + " ENDS WITH 'chiko' AND 'baba' STARTS WITH c7 AND 'gaga'"
        + " ENDS WITH c8");
    CompoundFilter filter = (CompoundFilter) query.getFilter();
    List<QueryFilter> subFilters = filter.getSubFilters();
    assertEquals(ComparisonFilter.Operator.MATCHES,
        ((ComparisonFilter) subFilters.get(0)).getOperator());
    assertEquals(ComparisonFilter.Operator.CONTAINS,
        ((ComparisonFilter) subFilters.get(3)).getOperator());
View Full Code Here

    DataTable res = MockDataSource.getData(1);

    // select max(songs), min(songs), year, avg(songs), sum(sales)
    // group by year, band
    Query q = new Query();
    QueryGroup group = new QueryGroup();
    group.addColumn(new SimpleColumn("Year"));
    group.addColumn(new SimpleColumn("Band"));
    q.setGroup(group);
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("Songs"),
        AggregationType.MAX));
    selection.addColumn(new AggregationColumn(new SimpleColumn("Songs"),
        AggregationType.MIN));
    selection.addColumn(new SimpleColumn("Year"));
    selection.addColumn(new AggregationColumn(new SimpleColumn("Songs"),
        AggregationType.AVG));
    selection.addColumn(new AggregationColumn(new SimpleColumn("Sales"),
        AggregationType.SUM));
    q.setSelection(selection);
    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);
    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();
View Full Code Here

    assertEquals(ComparisonFilter.Operator.ENDS_WITH,
        ((ComparisonFilter) subFilters.get(5)).getOperator());
  }

  public void testSelectionOfArithmeticExpressions() throws Exception {
    Query query = QueryBuilder.getInstance().parseQuery("SELECT ((c1+c2)/c3*c4)-(c5/c6+year(c7))");
    ScalarFunctionColumn col1 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("c1"),
            new SimpleColumn("c2")), Sum.getInstance());
    ScalarFunctionColumn col2 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, new SimpleColumn("c3")),
        Quotient.getInstance());
    ScalarFunctionColumn col3 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col2, new SimpleColumn("c4")),
        Product.getInstance());
    ScalarFunctionColumn col4 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("c5"),
            new SimpleColumn("c6")), Quotient.getInstance());
    ScalarFunctionColumn col5 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col4,
            new ScalarFunctionColumn(Lists.<AbstractColumn>newArrayList(
                new SimpleColumn("c7")), TimeComponentExtractor.getInstance(
                TimeComponentExtractor.TimeComponent.YEAR))),
        Sum.getInstance());
    ScalarFunctionColumn col6 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col3, col5),
        Difference.getInstance());
    QuerySelection selection = query.getSelection();
    assertEquals(1, selection.getColumns().size());
    assertEquals(col6, selection.getColumns().get(0));
  }
View Full Code Here

    assertEquals(1, selection.getColumns().size());
    assertEquals(col6, selection.getColumns().get(0));
  }

  public void testFilterOfArithmeticExpression() throws Exception {
    Query query = QueryBuilder.getInstance().parseQuery("Where ((c1+c2)/c3*c4)"
        + " > (c5/c6+year(c7)) and (c8+c9=0 or c10<>c11) ");
    QueryFilter filter = query.getFilter();
    assertTrue(filter instanceof CompoundFilter);
    CompoundFilter f = (CompoundFilter) filter;
    assertEquals(CompoundFilter.LogicalOperator.AND, f.getOperator());
    List<QueryFilter> subFilters = f.getSubFilters();
    assertEquals(2, subFilters.size());
View Full Code Here

      // Expected behavior.
    }
  }

  public void testOrderByOfArithmeticExpression() throws Exception {
    Query query = QueryBuilder.getInstance().parseQuery("order by ((c1+c2)/c3/c4)");
    QuerySort sort = query.getSort();
    List<ColumnSort> columnSorts = sort.getSortColumns();
    assertEquals(1, columnSorts.size());
    ScalarFunctionColumn col1 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("c1"),
            new SimpleColumn("c2")), Sum.getInstance());
View Full Code Here

  public void testGroupingWithPivoting() throws Exception {
    DataTable res = MockDataSource.getData(1);
    // select max(sales), year, min(sales), avg(fans)
    // group by year
    // pivot by band, songs
    Query q = new Query();
    QueryGroup group = new QueryGroup();
    group.addColumn(new SimpleColumn("Year"));
    q.setGroup(group);
    QueryPivot pivot = new QueryPivot();
    pivot.addColumn(new SimpleColumn("Band"));
    pivot.addColumn(new SimpleColumn("Songs"));
    q.setPivot(pivot);
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("Sales"),
        AggregationType.MAX));
    selection.addColumn(new SimpleColumn("Year"));
    selection.addColumn(new AggregationColumn(new SimpleColumn("Sales"),
        AggregationType.MIN));
    selection.addColumn(new AggregationColumn(new SimpleColumn("Fans"),
        AggregationType.AVG));
    q.setSelection(selection);
    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();
View Full Code Here

TOP

Related Classes of com.google.visualization.datasource.query.Query

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.