org.apache.calcite.plan.RelOptUtil.getFieldTypeList()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(7.9k)|赞(0)|评价(0)|浏览(174)

本文整理了Java中org.apache.calcite.plan.RelOptUtil.getFieldTypeList方法的一些代码示例,展示了RelOptUtil.getFieldTypeList的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelOptUtil.getFieldTypeList方法的具体详情如下:
包路径:org.apache.calcite.plan.RelOptUtil
类名称:RelOptUtil
方法名:getFieldTypeList

RelOptUtil.getFieldTypeList介绍

[英]Returns a list of the types of the fields in a given struct type. The list is immutable.
[中]返回给定结构类型中字段类型的列表。这个列表是不变的。

代码示例

代码示例来源:origin: apache/hive

topProjExprs = RexUtil.fixUp(rexBuilder, topProjExprs, RelOptUtil.getFieldTypeList(fkInput.getRowType()));

代码示例来源:origin: Qihoo360/Quicksql

/**
 * Creates a RexChecker with a given input row type.
 *
 * <p>If <code>fail</code> is true, the checker will throw an
 * {@link AssertionError} if an invalid node is found and assertions are
 * enabled.
 *
 * <p>Otherwise, each method returns whether its part of the tree is valid.
 *
 * @param inputRowType Input row type
 * @param context Context of the enclosing {@link RelNode}, or null
 * @param litmus What to do if an invalid node is detected
 */
public RexChecker(final RelDataType inputRowType, RelNode.Context context,
  Litmus litmus) {
 this(RelOptUtil.getFieldTypeList(inputRowType), context, litmus);
}

代码示例来源:origin: org.apache.calcite/calcite-core

/**
 * Creates a RexChecker with a given input row type.
 *
 * <p>If <code>fail</code> is true, the checker will throw an
 * {@link AssertionError} if an invalid node is found and assertions are
 * enabled.
 *
 * <p>Otherwise, each method returns whether its part of the tree is valid.
 *
 * @param inputRowType Input row type
 * @param context Context of the enclosing {@link RelNode}, or null
 * @param litmus What to do if an invalid node is detected
 */
public RexChecker(final RelDataType inputRowType, RelNode.Context context,
  Litmus litmus) {
 this(RelOptUtil.getFieldTypeList(inputRowType), context, litmus);
}

代码示例来源:origin: Qihoo360/Quicksql

@Deprecated // to be removed before 2.0
public static List<RexNode> fixUp(final RexBuilder rexBuilder,
  List<RexNode> nodes, final RelDataType rowType) {
 final List<RelDataType> typeList = RelOptUtil.getFieldTypeList(rowType);
 return fixUp(rexBuilder, nodes, typeList);
}

代码示例来源:origin: org.apache.calcite/calcite-core

@Deprecated // to be removed before 2.0
public static List<RexNode> fixUp(final RexBuilder rexBuilder,
  List<RexNode> nodes, final RelDataType rowType) {
 final List<RelDataType> typeList = RelOptUtil.getFieldTypeList(rowType);
 return fixUp(rexBuilder, nodes, typeList);
}

代码示例来源:origin: Qihoo360/Quicksql

/** Builds an equi-join condition from a set of left and right keys. */
public static @Nonnull RexNode createEquiJoinCondition(
  final RelNode left, final List<Integer> leftKeys,
  final RelNode right, final List<Integer> rightKeys,
  final RexBuilder rexBuilder) {
 final List<RelDataType> leftTypes =
   RelOptUtil.getFieldTypeList(left.getRowType());
 final List<RelDataType> rightTypes =
   RelOptUtil.getFieldTypeList(right.getRowType());
 return RexUtil.composeConjunction(rexBuilder,
   new AbstractList<RexNode>() {
    @Override public RexNode get(int index) {
     final int leftKey = leftKeys.get(index);
     final int rightKey = rightKeys.get(index);
     return rexBuilder.makeCall(SqlStdOperatorTable.EQUALS,
       rexBuilder.makeInputRef(leftTypes.get(leftKey), leftKey),
       rexBuilder.makeInputRef(rightTypes.get(rightKey),
         leftTypes.size() + rightKey));
    }
    @Override public int size() {
     return leftKeys.size();
    }
   });
}

代码示例来源:origin: org.apache.calcite/calcite-core

/** Builds an equi-join condition from a set of left and right keys. */
public static @Nonnull RexNode createEquiJoinCondition(
  final RelNode left, final List<Integer> leftKeys,
  final RelNode right, final List<Integer> rightKeys,
  final RexBuilder rexBuilder) {
 final List<RelDataType> leftTypes =
   RelOptUtil.getFieldTypeList(left.getRowType());
 final List<RelDataType> rightTypes =
   RelOptUtil.getFieldTypeList(right.getRowType());
 return RexUtil.composeConjunction(rexBuilder,
   new AbstractList<RexNode>() {
    @Override public RexNode get(int index) {
     final int leftKey = leftKeys.get(index);
     final int rightKey = rightKeys.get(index);
     return rexBuilder.makeCall(SqlStdOperatorTable.EQUALS,
       rexBuilder.makeInputRef(leftTypes.get(leftKey), leftKey),
       rexBuilder.makeInputRef(rightTypes.get(rightKey),
         leftTypes.size() + rightKey));
    }
    @Override public int size() {
     return leftKeys.size();
    }
   });
}

代码示例来源:origin: Qihoo360/Quicksql

public RelDataType getRowType(RelDataTypeFactory typeFactory) {
 final List<RelDataType> typeList = new ArrayList<>();
 final List<Integer> fieldCounts = new ArrayList<>();
 for (Table table : tables) {
  final RelDataType rowType = table.getRowType(typeFactory);
  typeList.addAll(RelOptUtil.getFieldTypeList(rowType));
  fieldCounts.add(rowType.getFieldCount());
 }
 // Compute fieldCounts the first time this method is called. Safe to assume
 // that the field counts will be the same whichever type factory is used.
 if (this.fieldCounts == null) {
  this.fieldCounts = ImmutableIntList.copyOf(fieldCounts);
 }
 return typeFactory.createStructType(typeList, lattice.uniqueColumnNames);
}

代码示例来源:origin: org.apache.calcite/calcite-core

public RelDataType getRowType(RelDataTypeFactory typeFactory) {
 final List<RelDataType> typeList = new ArrayList<>();
 final List<Integer> fieldCounts = new ArrayList<>();
 for (Table table : tables) {
  final RelDataType rowType = table.getRowType(typeFactory);
  typeList.addAll(RelOptUtil.getFieldTypeList(rowType));
  fieldCounts.add(rowType.getFieldCount());
 }
 // Compute fieldCounts the first time this method is called. Safe to assume
 // that the field counts will be the same whichever type factory is used.
 if (this.fieldCounts == null) {
  this.fieldCounts = ImmutableIntList.copyOf(fieldCounts);
 }
 return typeFactory.createStructType(typeList, lattice.uniqueColumnNames());
}

代码示例来源:origin: org.apache.drill.exec/drill-java-exec

/** Returns a rowType having all unique field name.
 *
 * @param rowType : input rowType
 * @param typeFactory : type factory used to create a new row type.
 * @return a rowType having all unique field name.
 */
public static RelDataType uniqifyFieldName(final RelDataType rowType, final RelDataTypeFactory typeFactory) {
 return typeFactory.createStructType(RelOptUtil.getFieldTypeList(rowType),
   SqlValidatorUtil.uniquify(rowType.getFieldNames(), SqlValidatorUtil.EXPR_SUGGESTER, true));
}

代码示例来源:origin: dremio/dremio-oss

/** Returns a rowType having all unique field name.
 *
 * @param rowType : input rowType
 * @param typeFactory : type factory used to create a new row type.
 * @return
 */
public static RelDataType uniqifyFieldName(final RelDataType rowType, final RelDataTypeFactory typeFactory) {
 return typeFactory.createStructType(RelOptUtil.getFieldTypeList(rowType),
   SqlValidatorUtil.uniquify(rowType.getFieldNames()));
}

代码示例来源:origin: org.apache.kylin/atopcalcite

.addAll(RelOptUtil.getFieldTypeList(leftRel.getRowType()))
    .addAll(RelOptUtil.getFieldTypeList(rightRel.getRowType())).build();
final RexNode joinFilter = RexUtil.composeConjunction(rexBuilder,
    RexUtil.fixUp(rexBuilder, joinFilters, fieldTypes), false);
    RexUtil.fixUp(rexBuilder, aboveFilters, RelOptUtil.getFieldTypeList(relBuilder.peek().getRowType())));

代码示例来源:origin: Qihoo360/Quicksql

.addAll(RelOptUtil.getFieldTypeList(leftRel.getRowType()))
    .addAll(RelOptUtil.getFieldTypeList(rightRel.getRowType())).build();
final RexNode joinFilter =
  RexUtil.composeConjunction(rexBuilder,
    RelOptUtil.getFieldTypeList(relBuilder.peek().getRowType())));

代码示例来源:origin: org.apache.calcite/calcite-core

.addAll(RelOptUtil.getFieldTypeList(leftRel.getRowType()))
    .addAll(RelOptUtil.getFieldTypeList(rightRel.getRowType())).build();
final RexNode joinFilter =
  RexUtil.composeConjunction(rexBuilder,
    RelOptUtil.getFieldTypeList(relBuilder.peek().getRowType())));

代码示例来源:origin: Qihoo360/Quicksql

relBuilder.filter(
  RexUtil.fixUp(rexBuilder, aboveFilters,
    RelOptUtil.getFieldTypeList(relBuilder.peek().getRowType())));

代码示例来源:origin: org.apache.calcite/calcite-core

relBuilder.filter(
  RexUtil.fixUp(rexBuilder, aboveFilters,
    RelOptUtil.getFieldTypeList(relBuilder.peek().getRowType())));

代码示例来源:origin: com.alibaba.blink/flink-table

.addAll(RelOptUtil.getFieldTypeList(leftRel.getRowType()))
        .addAll(RelOptUtil.getFieldTypeList(rightRel.getRowType())).build();
final List<RexNode> leftJoinFilters = com.google.common.collect.ImmutableList.<RexNode>builder()
    .addAll(deterministicJoinFilters)
        RelOptUtil.getFieldTypeList(relBuilder.peek().getRowType())));

相关文章

微信公众号

最新文章

更多

RelOptUtil类方法