当前位置: 首页>>代码示例>>Java>>正文


Java Expressions.list方法代码示例

本文整理汇总了Java中org.apache.calcite.linq4j.tree.Expressions.list方法的典型用法代码示例。如果您正苦于以下问题:Java Expressions.list方法的具体用法?Java Expressions.list怎么用?Java Expressions.list使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.calcite.linq4j.tree.Expressions的用法示例。


在下文中一共展示了Expressions.list方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: visit

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/** @see #dispatch */
public Result visit(Sort e) {
  Result x = visitChild(0, e.getInput());
  Builder builder = x.builder(e, Clause.ORDER_BY);
  List<SqlNode> orderByList = Expressions.list();
  for (RelFieldCollation field : e.getCollation().getFieldCollations()) {
    builder.addOrderItem(orderByList, field);
  }
  if (!orderByList.isEmpty()) {
    builder.setOrderBy(new SqlNodeList(orderByList, POS));
    x = builder.result();
  }
  if (e.fetch != null) {
    builder = x.builder(e, Clause.FETCH);
    builder.setFetch(builder.context.toSql(null, e.fetch));
    x = builder.result();
  }
  if (e.offset != null) {
    builder = x.builder(e, Clause.OFFSET);
    builder.setOffset(builder.context.toSql(null, e.offset));
    x = builder.result();
  }
  return x;
}
 
开发者ID:apache,项目名称:calcite,代码行数:25,代码来源:RelToSqlConverter.java

示例2: result

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/**
 * Creates a result based on a join. (Each join could contain one or more
 * relational expressions.)
 */
public Result result(SqlNode join, Result leftResult, Result rightResult) {
    final List<Pair<String, RelDataType>> list = new ArrayList<>();
    list.addAll(leftResult.aliases);
    list.addAll(rightResult.aliases);
    return new Result(join, Expressions.list(Clause.FROM), null, list);
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:11,代码来源:JdbcImplementor.java

示例3: toSql

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/**
 * Converts a call to an aggregate function to an expression.
 */
final SqlNode toSql(AggregateCall aggCall) {
    SqlOperator op = aggCall.getAggregation();
    if (op instanceof SqlSumEmptyIsZeroAggFunction) {
        op = SqlStdOperatorTable.SUM;
    }
    final List<SqlNode> operands = Expressions.list();
    for (int arg : aggCall.getArgList()) {
        operands.add(field(arg));
    }
    return op.createCall(
            aggCall.isDistinct() ? SqlSelectKeyword.DISTINCT.symbol(POS) : null,
            POS, operands.toArray(new SqlNode[operands.size()]));
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:17,代码来源:JdbcImplementor.java

示例4: Result

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
private Result(SqlNode node, Collection<Clause> clauses, String neededAlias,
               List<Pair<String, RelDataType>> aliases) {
    this.node = node;
    this.neededAlias = neededAlias;
    this.aliases = aliases;
    this.clauses = Expressions.list(clauses);
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:8,代码来源:JdbcImplementor.java

示例5: builder

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/**
 * Once you have a Result of implementing a child relational expression,
 * call this method to create a Builder to implement the current relational
 * expression by adding additional clauses to the SQL query.
 * <p/>
 * <p>You need to declare which clauses you intend to add. If the clauses
 * are "later", you can add to the same query. For example, "GROUP BY" comes
 * after "WHERE". But if they are the same or earlier, this method will
 * start a new SELECT that wraps the previous result.</p>
 * <p/>
 * <p>When you have called
 * {@link Builder#setSelect(org.apache.calcite.sql.SqlNodeList)},
 * {@link Builder#setWhere(org.apache.calcite.sql.SqlNode)} etc. call
 * {@link Builder#result(org.apache.calcite.sql.SqlNode, java.util.Collection, org.apache.calcite.rel.RelNode)}
 * to fix the new query.</p>
 *
 * @param rel       Relational expression being implemented
 * @param clauseArr Clauses that will be generated to implement current
 *                  relational expression
 * @return A builder
 */
public Builder builder(JdbcRel rel, Clause... clauseArr) {
    final Clause maxClause = maxClause();
    boolean needNew = false;
    for (Clause clause : clauseArr) {
        if (maxClause.ordinal() >= clause.ordinal()) {
            needNew = true;
        }
    }
    SqlSelect select;
    Expressions.FluentList<Clause> clauseList = Expressions.list();
    if (needNew) {
        select = subSelect();
    } else {
        select = asSelect();
        clauseList.addAll(this.clauses);
    }
    clauseList.appendAll(clauseArr);
    Context newContext;
    final SqlNodeList selectList = select.getSelectList();
    if (selectList != null) {
        newContext = new Context(selectList.size()) {
            @Override
            public SqlNode field(int ordinal) {
                final SqlNode selectItem = selectList.get(ordinal);
                switch (selectItem.getKind()) {
                case AS:
                    return ((SqlCall) selectItem).operand(0);
                default:
                }
                return selectItem;
            }
        };
    } else {
        newContext = aliasContext(aliases, aliases.size() > 1);
    }
    return new Builder(rel, clauseList, select, newContext);
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:59,代码来源:JdbcImplementor.java

示例6: setOpToSql

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
private static JdbcImplementor.Result setOpToSql(JdbcImplementor implementor,
                                                 SqlSetOperator operator, JdbcRel rel) {
    List<SqlNode> list = Expressions.list();
    for (Ord<RelNode> input : Ord.zip(rel.getInputs())) {
        final JdbcImplementor.Result result =
                implementor.visitChild(input.i, input.e);
        list.add(result.asSelect());
    }
    final SqlCall node = operator.createCall(new SqlNodeList(list, POS));
    final List<JdbcImplementor.Clause> clauses =
            Expressions.list(JdbcImplementor.Clause.SET_OP);
    return implementor.result(node, clauses, rel);
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:14,代码来源:JdbcRules.java

示例7: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public JdbcImplementor.Result implement(JdbcImplementor implementor) {
    // "select a, b, sum(x) from ( ... ) group by a, b"
    final JdbcImplementor.Result x = implementor.visitChild(0, getInput());
    final JdbcImplementor.Builder builder =
            x.builder(this, JdbcImplementor.Clause.GROUP_BY);
    List<SqlNode> groupByList = Expressions.list();
    final List<SqlNode> selectList = new ArrayList<>();
    for (int group : groupSet) {
        final SqlNode field = builder.getContext().field(group);
        addSelect(selectList, field, getRowType());
        groupByList.add(field);
    }
    for (AggregateCall aggCall : aggCalls) {
        SqlNode aggCallSqlNode = builder.getContext().toSql(aggCall);
        if (aggCall.getAggregation() instanceof SqlSingleValueAggFunction) {
            aggCallSqlNode =
                    rewriteSingleValueExpr(aggCallSqlNode, implementor.getDialect());
        }
        addSelect(selectList, aggCallSqlNode, getRowType());
    }
    builder.setSelect(new SqlNodeList(selectList, POS));
    if (!groupByList.isEmpty() || aggCalls.isEmpty()) {
        // Some databases don't support "GROUP BY ()". We can omit it as long
        // as there is at least one aggregate function.
        builder.setGroupBy(new SqlNodeList(groupByList, POS));
    }
    return builder.result();
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:29,代码来源:JdbcRules.java

示例8: result

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/**
 * Creates a result based on a join. (Each join could contain one or more
 * relational expressions.)
 */
public Result result(SqlNode join, Result leftResult, Result rightResult) {
  final List<Pair<String, RelDataType>> list =
      new ArrayList<Pair<String, RelDataType>>();
  list.addAll(leftResult.aliases);
  list.addAll(rightResult.aliases);
  return new Result(join, Expressions.list(Clause.FROM), null, list);
}
 
开发者ID:qubole,项目名称:quark,代码行数:12,代码来源:RelToSqlConverter.java

示例9: visitAggregate

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Result visitAggregate(Aggregate e) {
  // "select a, b, sum(x) from ( ... ) group by a, b"
  final Result x = visitChild(0, e.getInput());
  final Builder builder =
      x.builder(e, Clause.GROUP_BY);
  List<SqlNode> groupByList = Expressions.list();
  final List<SqlNode> selectList = new ArrayList<>();
  for (int group : e.getGroupSet()) {
    final SqlNode field = builder.context.field(group);
    addSelect(selectList, field, e.getRowType());
    groupByList.add(field);
  }
  for (AggregateCall aggCall : e.getAggCallList()) {
    SqlNode aggCallSqlNode = builder.context.toSql(aggCall);
    if (aggCall.getAggregation() instanceof SqlSingleValueAggFunction) {
      aggCallSqlNode =
          rewriteSingleValueExpr(aggCallSqlNode, dialect);
    }
    addSelect(selectList, aggCallSqlNode, e.getRowType());
  }
  builder.setSelect(new SqlNodeList(selectList, POS));
  if (!groupByList.isEmpty() || e.getAggCallList().isEmpty()) {
    // Some databases don't support "GROUP BY ()". We can omit it as long
    // as there is at least one aggregate function.
    builder.setGroupBy(new SqlNodeList(groupByList, POS));
  }
  return builder.result();
}
 
开发者ID:qubole,项目名称:quark,代码行数:29,代码来源:RelToSqlConverter.java

示例10: setOpToSql

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
private Result setOpToSql(SqlSetOperator operator, RelNode rel) {
  List<SqlNode> list = Expressions.list();
  for (Ord<RelNode> input : Ord.zip(rel.getInputs())) {
    final Result result = this.visitChild(input.i, input.e);
    list.add(result.asSelect());
  }
  final SqlCall node = operator.createCall(new SqlNodeList(list, POS));
  final List<Clause> clauses =
      Expressions.list(Clause.SET_OP);
  return result(node, clauses, rel);
}
 
开发者ID:qubole,项目名称:quark,代码行数:12,代码来源:RelToSqlConverter.java

示例11: toSql

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/**
 * Converts a call to an aggregate function to an expression.
 */
public SqlNode toSql(AggregateCall aggCall) {
  SqlOperator op = (SqlAggFunction) aggCall.getAggregation();
  if (op instanceof SqlSumEmptyIsZeroAggFunction) {
    op = SqlStdOperatorTable.SUM;
  }
  final List<SqlNode> operands = Expressions.list();
  for (int arg : aggCall.getArgList()) {
    operands.add(field(arg));
  }
  return op.createCall(
      aggCall.isDistinct() ? SqlSelectKeyword.DISTINCT.symbol(POS) : null,
      POS, operands.toArray(new SqlNode[operands.size()]));
}
 
开发者ID:qubole,项目名称:quark,代码行数:17,代码来源:RelToSqlConverter.java

示例12: Result

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
private Result(SqlNode node, Collection<Clause> clauses, String neededAlias,
               List<Pair<String, RelDataType>> aliases) {
  this.node = node;
  this.neededAlias = neededAlias;
  this.aliases = aliases;
  this.clauses = Expressions.list(clauses);
}
 
开发者ID:qubole,项目名称:quark,代码行数:8,代码来源:RelToSqlConverter.java

示例13: setOpToSql

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Result setOpToSql(SqlSetOperator operator, RelNode rel) {
  SqlNode node = null;
  for (Ord<RelNode> input : Ord.zip(rel.getInputs())) {
    final Result result = visitChild(input.i, input.e);
    if (node == null) {
      node = result.asSelect();
    } else {
      node = operator.createCall(POS, node, result.asSelect());
    }
  }
  final List<Clause> clauses =
      Expressions.list(Clause.SET_OP);
  return result(node, clauses, rel, null);
}
 
开发者ID:apache,项目名称:calcite,代码行数:15,代码来源:SqlImplementor.java

示例14: result

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/** Creates a result based on a join. (Each join could contain one or more
 * relational expressions.) */
public Result result(SqlNode join, Result leftResult, Result rightResult) {
  final ImmutableMap.Builder<String, RelDataType> builder =
      ImmutableMap.builder();
  collectAliases(builder, join,
      Iterables.concat(leftResult.aliases.values(),
          rightResult.aliases.values()).iterator());
  return new Result(join, Expressions.list(Clause.FROM), null, null,
      builder.build());
}
 
开发者ID:apache,项目名称:calcite,代码行数:12,代码来源:SqlImplementor.java

示例15: toSql

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/** Converts a call to an aggregate function to an expression. */
public SqlNode toSql(AggregateCall aggCall) {
  SqlOperator op = aggCall.getAggregation();
  if (op instanceof SqlSumEmptyIsZeroAggFunction) {
    op = SqlStdOperatorTable.SUM;
  }
  final List<SqlNode> operands = Expressions.list();
  for (int arg : aggCall.getArgList()) {
    operands.add(field(arg));
  }
  return op.createCall(
      aggCall.isDistinct() ? SqlSelectKeyword.DISTINCT.symbol(POS) : null,
      POS, operands.toArray(new SqlNode[operands.size()]));
}
 
开发者ID:apache,项目名称:calcite,代码行数:15,代码来源:SqlImplementor.java


注:本文中的org.apache.calcite.linq4j.tree.Expressions.list方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。