Package com.google.visualization.datasource.query

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


    }
  }

  public void testDuplicateFormatColumn() throws Exception {
    try {
      Query query = QueryBuilder.getInstance().parseQuery("select c1 format c1 'gaga', c1 'gugu' ");
      fail("Should have thrown an exception.");
    } catch (InvalidQueryException e) {
      // Expected behavior.
    }
  }
View Full Code Here


  }

  // WHERE clause tests:

  public void testColumnColumnFilter() throws Exception {
    Query query = QueryBuilder.getInstance().parseQuery(" WHERE C1 > `c 2`");
    QueryFilter filter = query.getFilter();
    assertTrue(filter instanceof ColumnColumnFilter);
    ColumnColumnFilter f = (ColumnColumnFilter) filter;
    assertEquals("C1", f.getFirstColumn().getId());
    assertEquals("c 2", f.getSecondColumn().getId());
    assertEquals(ComparisonFilter.Operator.GT, f.getOperator());
View Full Code Here

    assertEquals("c 2", f.getSecondColumn().getId());
    assertEquals(ComparisonFilter.Operator.GT, f.getOperator());
  }

  public void testColumnValueFilterWithNumber() throws Exception {
    Query query = QueryBuilder.getInstance().parseQuery(" WHERE c1 <= 7.55");
    QueryFilter filter = query.getFilter();
    assertTrue(filter instanceof ColumnValueFilter);
    ColumnValueFilter f = (ColumnValueFilter) filter;
    assertEquals("c1", f.getColumn().getId());
    Value val = f.getValue();
    assertTrue(val instanceof NumberValue);
View Full Code Here

  public void testSelectionOfArithmeticExpression() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select day(hireDate) + age * hour(seniorityStartTime), age
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    AbstractColumn col1  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY));
    AbstractColumn col2 = new SimpleColumn("age");
    AbstractColumn col3  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(
            new SimpleColumn("seniorityStartTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR));
    AbstractColumn col4 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col2, col3), Product.getInstance());
    AbstractColumn col5 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, col4), Sum.getInstance());
    selection.addColumn(col5);
    selection.addColumn(new SimpleColumn("age"));
    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

  public void testGroupByArithmeticExpression() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select sum(age), day(hireDate) - hour(seniorityStartTime)
    // group by day(hireDate) - hour(seniorityStartTime)
    Query q = new Query();

    AbstractColumn col1  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY));
    AbstractColumn col2  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(
            new SimpleColumn("seniorityStartTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR));
    AbstractColumn col3 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, col2),
        Difference.getInstance());

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("age"),
        AggregationType.SUM));
    selection.addColumn(col3);
    q.setSelection(selection);

    // Add group
    QueryGroup group = new QueryGroup();
    group.addColumn(col3);
    q.setGroup(group);

    q.validate();

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

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

    DataTable res = MockDataSource.getData(3);

    // select day(hireDate), hour(seniorityStartTime) where
    // day(hireDate) - hour(seniorityStartTime) < -5
    // group by day(hireDate) - hour(seniorityStartTime)
    Query q = new Query();

    AbstractColumn col1  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY));
    AbstractColumn col2  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(
            new SimpleColumn("seniorityStartTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR));
    AbstractColumn col3 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, col2),
        Difference.getInstance());

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(col1);
    selection.addColumn(col2);
    q.setSelection(selection);

    // Add Filter
    QueryFilter filter = new ColumnValueFilter(col3, new NumberValue(-5),
        ComparisonFilter.Operator.GT);
    q.setFilter(filter);

    q.validate();

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

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

  public void testModuloInSelection() throws Exception {
    DataTable res = MockDataSource.getData(0);

    // selection with modulo ('weight' is a column id): "select weight, weight % 10"
    Query q = new Query();

    AbstractColumn col1 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(), new Constant(new NumberValue(10)));
    AbstractColumn col2 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("weight"), col1),
        Modulo.getInstance());

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new SimpleColumn("weight"));
    selection.addColumn(col2);
    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

  public void testModuloInFilter() throws Exception {
    DataTable res = MockDataSource.getData(0);

    // Create a query with filter clause using module:
    // select name, weight where weight%2=0.0
    Query q = new Query();

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new SimpleColumn("name"));
    selection.addColumn(new SimpleColumn("weight"));
    q.setSelection(selection);

    AbstractColumn col1 = new ScalarFunctionColumn(
      Lists.<AbstractColumn>newArrayList(), new Constant(new NumberValue(2)));
    AbstractColumn col2 = new ScalarFunctionColumn(
      Lists.<AbstractColumn>newArrayList(new SimpleColumn("weight"), col1),
      Modulo.getInstance());

    QueryFilter filter = new ColumnValueFilter(col2,
      new NumberValue(0), ComparisonFilter.Operator.EQ);
    q.setFilter(filter);
 
    q.validate();

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

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

    assertStringArraysEqual(new String[]{"bbb", "222.0"},
        resultStrings[4]);
  }

  public void testLabels() throws Exception {
    Query query = new Query();

    DataTable data = MockDataSource.getData(0);

    QuerySelection selection = new QuerySelection();
    selection.addColumn(new SimpleColumn("name"));
    selection.addColumn(new SimpleColumn("isAlive"));
    query.setSelection(selection);

    QueryLabels labels = new QueryLabels();
    labels.addLabel(new SimpleColumn("isAlive"),
        "New isAlive Label");
    query.setLabels(labels);

    DataTable res = QueryEngine.executeQuery(query, data, ULocale.US);

    assertEquals("Pet Name", res.getColumnDescription("name").getLabel());
    assertEquals("New isAlive Label", res.getColumnDescription("isAlive").getLabel());
View Full Code Here

    assertEquals("Pet Name", res.getColumnDescription("name").getLabel());
    assertEquals("New isAlive Label", res.getColumnDescription("isAlive").getLabel());
  }

  public void testFormatAndLabelOnPivotColumns() throws Exception {
    Query query = new Query();
    QuerySelection selection = new QuerySelection(); // SELECT (sum(sales) / 7)
    List<AbstractColumn> columns = Lists.newArrayList();
    columns.add(new AggregationColumn(new SimpleColumn("Sales"), AggregationType.SUM));
    columns.add(new ScalarFunctionColumn(Lists.<AbstractColumn>newArrayList(),
        new Constant(new NumberValue(7))));
    AbstractColumn selectedColumn = new ScalarFunctionColumn(columns, Quotient.getInstance());
    selection.addColumn(selectedColumn);

    query.setSelection(selection);
    QueryGroup group = new QueryGroup();
    group.addColumn(new SimpleColumn("Year"));
    query.setGroup(group);
    QueryPivot pivot = new QueryPivot();
    pivot.addColumn(new SimpleColumn("Band"));
    pivot.addColumn(new SimpleColumn("Songs"));
    query.setPivot(pivot);
    QueryLabels labels = new QueryLabels();
    labels.addLabel(selectedColumn, "foo");
    query.setLabels(labels);
    QueryFormat format = new QueryFormat();
    format.addPattern(selectedColumn, "'$'@@@");
    query.setUserFormatOptions(format);

    DataTable data = MockDataSource.getData(1);

    // Also tests different locale (note the commas in the numbers)
    DataTable res = QueryEngine.executeQuery(query, data, ULocale.FRENCH);
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.