Examples of AggregateOperator


Examples of plan_runner.operators.AggregateOperator

    OperatorComponent opComp = null;

    // projectOperator is already set to firstAgg in attachLastJoin method
    // if we decide to do construct new NSIV, then projectOperator has to be
    // set as well
    final AggregateOperator firstAgg = aggOps.get(0);

    // Setting new level of components is only necessary for distinct in
    // aggregates
    if (firstAgg.getDistinct() != null) {
      opComp = createAndAddOperatorComp(lastComponent);

      createCompCost(opComp);
      if (_costEst != null)
        _costEst.setInputParams(opComp);
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

    if (aggOps.isEmpty()) {
      final ProjectOperator project = new ProjectOperator(groupByVEs);
      lastComponent.addOperator(project);
    } else if (aggOps.size() == 1) {
      // all the others are group by
      final AggregateOperator firstAgg = aggOps.get(0);

      if (ParserUtil.isAllColumnRefs(groupByVEs)) {
        // plain fields in select
        final List<Integer> groupByColumns = ParserUtil.extractColumnIndexes(groupByVEs);
        firstAgg.setGroupByColumns(groupByColumns);

        // Setting new level of components is necessary for correctness
        // only for distinct in aggregates
        // but it's certainly pleasant to have the final result grouped
        // on nodes by group by columns.
        final boolean newLevel = !(_it.isHashedBy(lastComponent, groupByColumns));
        if (newLevel) {
          lastComponent.setHashIndexes(groupByColumns);
          new OperatorComponent(lastComponent, ParserUtil.generateUniqueName("OPERATOR"),
              _cg.getQueryPlan()).addOperator(firstAgg);

        } else
          lastComponent.addOperator(firstAgg);
      } else {
        // Sometimes groupByVEs contains other functions, so we have to
        // use projections instead of simple groupBy
        // always new level

        // WARNING: groupByVEs cannot be used on two places: that's why
        // we do deep copy
        final ProjectOperator groupByProj = new ProjectOperator(
            (List<ValueExpression>) DeepCopy.copy(groupByVEs));
        if (!(groupByProj.getExpressions() == null || groupByProj.getExpressions()
            .isEmpty()))
          firstAgg.setGroupByProjection(groupByProj);

        // current component
        lastComponent.setHashExpressions((List<ValueExpression>) DeepCopy.copy(groupByVEs));

        new OperatorComponent(lastComponent, ParserUtil.generateUniqueName("OPERATOR"),
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

    if (aggOps.isEmpty()) {
      final ProjectOperator project = new ProjectOperator(groupByVEs);
      affectedComponent.addOperator(project);
    } else if (aggOps.size() == 1) {
      // all the others are group by
      final AggregateOperator firstAgg = aggOps.get(0);

      if (ParserUtil.isAllColumnRefs(groupByVEs)) {
        // plain fields in select
        final List<Integer> groupByColumns = ParserUtil.extractColumnIndexes(groupByVEs);
        firstAgg.setGroupByColumns(groupByColumns);

        // Setting new level of components is necessary for correctness
        // only for distinct in aggregates
        // but it's certainly pleasant to have the final result grouped
        // on nodes by group by columns.
        final boolean newLevel = !(_it.isHashedBy(affectedComponent, groupByColumns));
        if (newLevel) {
          affectedComponent.setHashIndexes(groupByColumns);
          new OperatorComponent(affectedComponent,
              ParserUtil.generateUniqueName("OPERATOR"), _cg.getQueryPlan())
              .addOperator(firstAgg);

        } else
          affectedComponent.addOperator(firstAgg);
      } else {
        // Sometimes groupByVEs contains other functions, so we have to
        // use projections instead of simple groupBy
        // always new level

        if (affectedComponent.getHashExpressions() != null
            && !affectedComponent.getHashExpressions().isEmpty())
          throw new RuntimeException(
              "Too complex: cannot have hashExpression both for joinCondition and groupBy!");

        // WARNING: groupByVEs cannot be used on two places: that's why
        // we do deep copy
        final ProjectOperator groupByProj = new ProjectOperator(
            (List<ValueExpression>) DeepCopy.copy(groupByVEs));
        if (!(groupByProj.getExpressions() == null || groupByProj.getExpressions()
            .isEmpty()))
          firstAgg.setGroupByProjection(groupByProj);

        // current component
        affectedComponent.setHashExpressions((List<ValueExpression>) DeepCopy
            .copy(groupByVEs));
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

            new ValueSpecification(_sc, _secondCountryName))), new AndPredicate(
        new ComparisonPredicate(new ColumnReference(_sc, 0), new ValueSpecification(_sc,
            _secondCountryName)), new ComparisonPredicate(new ColumnReference(_sc, 2),
            new ValueSpecification(_sc, _firstCountryName)))));

    final AggregateOperator agg = new AggregateSumOperator(new ColumnReference(_doubleConv, 4),
        conf).setGroupByColumns(new ArrayList<Integer>(Arrays.asList(2, 0, 3)));

    final ColumnReference colN_C_O = new ColumnReference(_ic, 1);
    final ColumnReference colL_S_N = new ColumnReference(_ic, 3);
    final ComparisonPredicate N_C_O_L_S_N_comp = new ComparisonPredicate(
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

    final ValueExpression<Double> substract = new Subtraction(new ValueSpecification(
        _doubleConv, 1.0), new ColumnReference(_doubleConv, 1));
    // extendedPrice*(1-discount)
    final ValueExpression<Double> product = new Multiplication(new ColumnReference(_doubleConv,
        0), substract);
    final AggregateOperator agg = new AggregateSumOperator(product, conf);

    // /Join predicate
    final ColumnReference colLineItems = new ColumnReference(_ic, 0);
    final ColumnReference colOrders = new ColumnReference(_ic, 0);
    final ComparisonPredicate pred1 = new ComparisonPredicate(ComparisonPredicate.EQUAL_OP,
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

    // add integers: hashIndexes and groupBy in aggregation
    final List<Integer> hashIndexes = component.getHashIndexes();
    if (hashIndexes != null)
      result.addAll(hashIndexes);
    final AggregateOperator agg = component.getChainOperator().getAggregation();
    if (agg != null) {
      final List<Integer> groupBy = agg.getGroupByColumns();
      if (groupBy != null)
        result.addAll(groupBy);
    }

    return result;
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

        new ColumnReference(_doubleConv, 0));

    //all together
    ValueExpression<Double> substract2 = new Subtraction(product1, product2);

    AggregateOperator agg = new AggregateSumOperator(substract2, conf).setGroupByColumns(Arrays
        .asList(5, 4));

    ColumnReference P_L_PS_O_S = new ColumnReference(_ic, 5);
    ColumnReference colN = new ColumnReference(_ic, 0);
    ComparisonPredicate P_L_PS_O_S_N_comp = new ComparisonPredicate(
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

    final List<Integer> oldHashIndexes = component.getHashIndexes();
    if (oldHashIndexes != null) {
      final List<Integer> newHashIndexes = elemsBefore(oldHashIndexes, filteredIndexList);
      component.setHashIndexes(newHashIndexes);
    }
    final AggregateOperator agg = component.getChainOperator().getAggregation();
    if (agg != null) {
      final List<Integer> oldGroupBy = agg.getGroupByColumns();
      if (oldGroupBy != null && !oldGroupBy.isEmpty()) {
        final List<Integer> newGroupBy = elemsBefore(oldGroupBy, filteredIndexList);
        agg.setGroupByColumns(newGroupBy);
      }
    }
  }
View Full Code Here

Examples of plan_runner.operators.AggregateOperator

    final ValueExpression<Double> substract = new Subtraction(new ValueSpecification(
        _doubleConv, 1.0), new ColumnReference(_doubleConv, 8));
    // extendedPrice*(1-discount)
    final ValueExpression<Double> product = new Multiplication(new ColumnReference(_doubleConv,
        7), substract);
    final AggregateOperator agg = new AggregateSumOperator(product, conf)
        .setGroupByColumns(Arrays.asList(0, 1, 4, 6, 2, 3, 5));

    new EquiJoinComponent(C_O_Njoin, relationLineitem, _queryPlan).addOperator(
        new ProjectOperator(new int[] { 0, 1, 2, 3, 4, 5, 7, 8, 9 })).addOperator(agg);

View Full Code Here

Examples of plan_runner.operators.AggregateOperator

        .createThetaJoinOperator(Theta_JoinType, S_Njoin, P_L_Ojoin, _queryPlan)
        .addOperator(new ProjectOperator(new int[] { 1, 3, 4, 5 }))
        .setHashIndexes(Arrays.asList(2)).setJoinPredicate(S_N_P_L_O_comp);

    //-------------------------------------------------------------------------------------
    AggregateOperator agg = new AggregateSumOperator(new ColumnReference(_doubleConv, 2), conf)
        .setGroupByColumns(Arrays.asList(1, 4));

    ColumnReference colR_N_C = new ColumnReference(_ic, 0);
    ColumnReference colS_N_P_L_O = new ColumnReference(_ic, 2);
    ComparisonPredicate R_N_C_S_N_P_L_O_comp = new ComparisonPredicate(
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.