org.apache.hadoop.hive.ql.parse.QBParseInfo.getDestToLimit()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(3.7k)|赞(0)|评价(0)|浏览(85)

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

QBParseInfo.getDestToLimit介绍

暂无

代码示例

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

private RelNode genLimitLogicalPlan(QB qb, RelNode srcRel) throws SemanticException {
 HiveRelNode sortRel = null;
 QBParseInfo qbp = getQBParseInfo(qb);
 SimpleEntry<Integer,Integer> entry =
   qbp.getDestToLimit().get(qbp.getClauseNames().iterator().next());
 Integer offset = (entry == null) ? 0 : entry.getKey();
 Integer fetch = (entry == null) ? null : entry.getValue();
 if (fetch != null) {
  RexNode offsetRN = cluster.getRexBuilder().makeExactLiteral(BigDecimal.valueOf(offset));
  RexNode fetchRN = cluster.getRexBuilder().makeExactLiteral(BigDecimal.valueOf(fetch));
  RelTraitSet traitSet = cluster.traitSetOf(HiveRelNode.CONVENTION);
  RelCollation canonizedCollation = traitSet.canonize(RelCollations.EMPTY);
  sortRel = new HiveSortLimit(cluster, traitSet, srcRel, canonizedCollation, offsetRN, fetchRN);
  RowResolver inputRR = relToHiveRR.get(srcRel);
  RowResolver outputRR = inputRR.duplicate();
  ImmutableMap<String, Integer> hiveColNameCalcitePosMap = buildHiveToCalciteColumnMap(
    outputRR, sortRel);
  relToHiveRR.put(sortRel, outputRR);
  relToHiveColNameCalcitePosMap.put(sortRel, hiveColNameCalcitePosMap);
 }
 return sortRel;
}

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

private RelNode genLimitLogicalPlan(QB qb, RelNode srcRel) throws SemanticException {
 HiveRelNode sortRel = null;
 QBParseInfo qbp = getQBParseInfo(qb);
 SimpleEntry<Integer,Integer> entry =
   qbp.getDestToLimit().get(qbp.getClauseNames().iterator().next());
 Integer offset = (entry == null) ? 0 : entry.getKey();
 Integer fetch = (entry == null) ? null : entry.getValue();
 if (fetch != null) {
  RexNode offsetRN = cluster.getRexBuilder().makeExactLiteral(BigDecimal.valueOf(offset));
  RexNode fetchRN = cluster.getRexBuilder().makeExactLiteral(BigDecimal.valueOf(fetch));
  RelTraitSet traitSet = cluster.traitSetOf(HiveRelNode.CONVENTION);
  RelCollation canonizedCollation = traitSet.canonize(RelCollations.EMPTY);
  sortRel = new HiveSortLimit(cluster, traitSet, srcRel, canonizedCollation, offsetRN, fetchRN);
  RowResolver outputRR = new RowResolver();
  if (!RowResolver.add(outputRR, relToHiveRR.get(srcRel))) {
   throw new CalciteSemanticException(
     "Duplicates detected when adding columns to RR: see previous message",
     UnsupportedFeature.Duplicates_in_RR);
  }
  ImmutableMap<String, Integer> hiveColNameCalcitePosMap = buildHiveToCalciteColumnMap(
    outputRR, sortRel);
  relToHiveRR.put(sortRel, outputRR);
  relToHiveColNameCalcitePosMap.put(sortRel, hiveColNameCalcitePosMap);
 }
 return sortRel;
}

代码示例来源:origin: com.facebook.presto.hive/hive-apache

private RelNode genLimitLogicalPlan(QB qb, RelNode srcRel) throws SemanticException {
 HiveRelNode sortRel = null;
 QBParseInfo qbp = getQBParseInfo(qb);
 Integer limit = qbp.getDestToLimit().get(qbp.getClauseNames().iterator().next());
 if (limit != null) {
  RexNode fetch = cluster.getRexBuilder().makeExactLiteral(BigDecimal.valueOf(limit));
  RelTraitSet traitSet = cluster.traitSetOf(HiveRelNode.CONVENTION);
  RelCollation canonizedCollation = traitSet.canonize(RelCollations.EMPTY);
  sortRel = new HiveSort(cluster, traitSet, srcRel, canonizedCollation, null, fetch);
  RowResolver outputRR = new RowResolver();
  if (!RowResolver.add(outputRR, relToHiveRR.get(srcRel))) {
   throw new CalciteSemanticException(
     "Duplicates detected when adding columns to RR: see previous message",
     UnsupportedFeature.Duplicates_in_RR);
  }
  ImmutableMap<String, Integer> hiveColNameCalcitePosMap = buildHiveToCalciteColumnMap(
    outputRR, sortRel);
  relToHiveRR.put(sortRel, outputRR);
  relToHiveColNameCalcitePosMap.put(sortRel, hiveColNameCalcitePosMap);
 }
 return sortRel;
}

相关文章

微信公众号

最新文章

更多

QBParseInfo类方法