org.apache.calcite.rex.RexBuilder.makeBigintLiteral()方法的使用及代码示例

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

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

RexBuilder.makeBigintLiteral介绍

[英]Creates a BIGINT literal.
[中]创建一个BIGINT文本。

代码示例

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

private RelNode createFirstGB(RelNode input, boolean left, RelOptCluster cluster,
  RexBuilder rexBuilder) throws CalciteSemanticException {
 final List<RexNode> gbChildProjLst = Lists.newArrayList();
 final List<Integer> groupSetPositions = Lists.newArrayList();
 for (int cInd = 0; cInd < input.getRowType().getFieldList().size(); cInd++) {
  gbChildProjLst.add(rexBuilder.makeInputRef(input, cInd));
  groupSetPositions.add(cInd);
 }
 if (left) {
  gbChildProjLst.add(rexBuilder.makeBigintLiteral(new BigDecimal(2)));
 } else {
  gbChildProjLst.add(rexBuilder.makeBigintLiteral(new BigDecimal(1)));
 }
 // also add the last VCol
 groupSetPositions.add(input.getRowType().getFieldList().size());
 // create the project before GB
 RelNode gbInputRel = HiveProject.create(input, gbChildProjLst, null);
 // groupSetPosition includes all the positions
 final ImmutableBitSet groupSet = ImmutableBitSet.of(groupSetPositions);
 List<AggregateCall> aggregateCalls = Lists.newArrayList();
 RelDataType aggFnRetType = TypeConverter.convert(TypeInfoFactory.longTypeInfo,
   cluster.getTypeFactory());
 AggregateCall aggregateCall = HiveCalciteUtil.createSingleArgAggCall("count", cluster,
   TypeInfoFactory.longTypeInfo, input.getRowType().getFieldList().size(), aggFnRetType);
 aggregateCalls.add(aggregateCall);
 return new HiveAggregate(cluster, cluster.traitSetOf(HiveRelNode.CONVENTION), gbInputRel,
   groupSet, null, aggregateCalls);
}

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

cluster.getTypeFactory()));
RexInputRef a = rexBuilder.makeInputRef(input, columnSize - 2);
RexLiteral three = rexBuilder.makeBigintLiteral(new BigDecimal(3));
childRexNodeLst.add(three);
childRexNodeLst.add(a);
  childRexNodeLst);
RexLiteral two = rexBuilder.makeBigintLiteral(new BigDecimal(2));
RexInputRef b = rexBuilder.makeInputRef(input, columnSize - 1);

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

List<RexNode> childRexNodeLst = new ArrayList<RexNode>();
RexInputRef a = rexBuilder.makeInputRef(input, columnSize - 2);
RexLiteral zero = rexBuilder.makeBigintLiteral(new BigDecimal(0));
childRexNodeLst.add(a);
childRexNodeLst.add(zero);
  childRexNodeLst);
childRexNodeLst = new ArrayList<RexNode>();
RexLiteral two = rexBuilder.makeBigintLiteral(new BigDecimal(2));
childRexNodeLst.add(a);
childRexNodeLst.add(two);

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

private RelNode createFirstGB(RelNode input, boolean left, RelOptCluster cluster,
  RexBuilder rexBuilder) throws CalciteSemanticException {
 final List<RexNode> gbChildProjLst = Lists.newArrayList();
 final List<Integer> groupSetPositions = Lists.newArrayList();
 for (int cInd = 0; cInd < input.getRowType().getFieldList().size(); cInd++) {
  gbChildProjLst.add(rexBuilder.makeInputRef(input, cInd));
  groupSetPositions.add(cInd);
 }
 if (left) {
  gbChildProjLst.add(rexBuilder.makeBigintLiteral(new BigDecimal(2)));
 } else {
  gbChildProjLst.add(rexBuilder.makeBigintLiteral(new BigDecimal(1)));
 }
 // also add the last VCol
 groupSetPositions.add(input.getRowType().getFieldList().size());
 // create the project before GB
 RelNode gbInputRel = HiveProject.create(input, gbChildProjLst, null);
 // groupSetPosition includes all the positions
 final ImmutableBitSet groupSet = ImmutableBitSet.of(groupSetPositions);
 List<AggregateCall> aggregateCalls = Lists.newArrayList();
 RelDataType aggFnRetType = TypeConverter.convert(TypeInfoFactory.longTypeInfo,
   cluster.getTypeFactory());
 AggregateCall aggregateCall = HiveCalciteUtil.createSingleArgAggCall("count", cluster,
   TypeInfoFactory.longTypeInfo, input.getRowType().getFieldList().size(), aggFnRetType);
 aggregateCalls.add(aggregateCall);
 return new HiveAggregate(cluster, cluster.traitSetOf(HiveRelNode.CONVENTION), gbInputRel,
   false, groupSet, null, aggregateCalls);
}

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

cluster.getTypeFactory()));
RexInputRef a = rexBuilder.makeInputRef(input, columnSize - 2);
RexLiteral three = rexBuilder.makeBigintLiteral(new BigDecimal(3));
childRexNodeLst.add(three);
childRexNodeLst.add(a);
  childRexNodeLst);
RexLiteral two = rexBuilder.makeBigintLiteral(new BigDecimal(2));
RexInputRef b = rexBuilder.makeInputRef(input, columnSize - 1);

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

groupSetPositions.add(cInd);
 gbChildProjLst.add(rexBuilder.makeBigintLiteral(new BigDecimal(1)));
List<RexNode> childRexNodeLst = new ArrayList<RexNode>();
RexInputRef ref = rexBuilder.makeInputRef(aggregateRel, countInd);
RexLiteral literal = rexBuilder.makeBigintLiteral(new BigDecimal(numOfBranch));
childRexNodeLst.add(ref);
childRexNodeLst.add(literal);

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

List<RexNode> childRexNodeLst = new ArrayList<RexNode>();
RexInputRef a = rexBuilder.makeInputRef(input, columnSize - 2);
RexLiteral zero = rexBuilder.makeBigintLiteral(new BigDecimal(0));
childRexNodeLst.add(a);
childRexNodeLst.add(zero);
  childRexNodeLst);
childRexNodeLst = new ArrayList<RexNode>();
RexLiteral two = rexBuilder.makeBigintLiteral(new BigDecimal(2));
childRexNodeLst.add(a);
childRexNodeLst.add(two);

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

groupSetPositions.add(cInd);
 gbChildProjLst.add(rexBuilder.makeBigintLiteral(new BigDecimal(1)));
List<RexNode> childRexNodeLst = new ArrayList<RexNode>();
RexInputRef ref = rexBuilder.makeInputRef(aggregateRel, countInd);
RexLiteral literal = rexBuilder.makeBigintLiteral(new BigDecimal(numOfBranch));
childRexNodeLst.add(ref);
childRexNodeLst.add(literal);

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

break;
case LONG:
 calciteLiteral = rexBuilder.makeBigintLiteral(new BigDecimal((Long) value));
 break;

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

break;
case LONG:
 calciteLiteral = rexBuilder.makeBigintLiteral(new BigDecimal((Long) value));
 break;

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

literal = e.rel.getCluster().getRexBuilder().makeBigintLiteral(new BigDecimal(0));
} else {
 literal = e.rel.getCluster().getRexBuilder().makeNullLiteral(getAggTypeForScalarSub(e));

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

public static Prel addLimitPrel(Prel input, long fetchSize) {
 RexBuilder builder = input.getCluster().getRexBuilder();
 return new LimitPrel(
   input.getCluster(),
   input.getTraitSet(),
   input,
   builder.makeBigintLiteral(BigDecimal.ZERO),
   builder.makeBigintLiteral(BigDecimal.valueOf(fetchSize)));
}

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

private Prel newLimit(int offset, int fetch, Prel child) {
 return new LimitPrel(cluster, traits, child,
   rexBuilder.makeBigintLiteral(new BigDecimal(offset)),
   rexBuilder.makeBigintLiteral(new BigDecimal(fetch))
 );
}

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

@Override
 public void onMatch(RelOptRuleCall call) {
  final SamplePrel sample = (SamplePrel) call.rel(0);
  final RelNode input = sample.getInput();

  final RelNode convertedInput = convert(input, input.getTraitSet().plus(Prel.PHYSICAL));

  final RexBuilder rexBuilder = input.getCluster().getRexBuilder();
  final PlannerSettings plannerSettings = PrelUtil.getPlannerSettings(call.getPlanner());
  final RexNode offset = rexBuilder.makeBigintLiteral(BigDecimal.ZERO);
  final RexNode limit = rexBuilder.makeBigintLiteral(BigDecimal.valueOf(SampleCrel.getSampleSizeAndSetMinSampleSize(plannerSettings, 1)));
  final LimitPrel sampleAsLimit = new LimitPrel(sample.getCluster(), sample.getTraitSet().plus(Prel.PHYSICAL), convertedInput, offset, limit);
  call.transformTo(sampleAsLimit);
 }
}

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

@Test
public void castANY(){
final RexNode node =
  builder.makeCast(
    factory.createSqlType(SqlTypeName.ANY),
    builder.makeBigintLiteral(BigDecimal.ONE)
  );
 FindSimpleFilters finder = new FindSimpleFilters(builder);
 StateHolder holder = node.accept(finder);
 ImmutableList<RexCall> conditions = holder.getConditions();
 assertEquals(0, conditions.size());
 assertEquals(builder.makeBigintLiteral(BigDecimal.ONE), holder.getNode());
}

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

@Test
public void typeMismatchFailure(){
 final RexNode node = builder.makeCall(SqlStdOperatorTable.EQUALS,
   builder.makeInputRef(factory.createSqlType(SqlTypeName.INTEGER), 0),
   builder.makeBigintLiteral(BigDecimal.ONE)
   );
 FindSimpleFilters finder = new FindSimpleFilters(builder, true);
 StateHolder holder = node.accept(finder);
 ImmutableList<RexCall> conditions = holder.getConditions();
 assertEquals(0, conditions.size());
 assertTrue(holder.hasRemainingExpression());
}

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

@Test
public void simpleLiteralEquality(){
 final RexNode node = builder.makeCall(SqlStdOperatorTable.EQUALS,
   builder.makeBigintLiteral(BigDecimal.ONE),
   builder.makeInputRef(factory.createSqlType(SqlTypeName.BIGINT), 0)
   );
 FindSimpleFilters finder = new FindSimpleFilters(builder);
 StateHolder holder = node.accept(finder);
 ImmutableList<RexCall> conditions = holder.getConditions();
 assertEquals(1, conditions.size());
 assertFalse(holder.hasRemainingExpression());
}

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

@Test
public void simpleLiteralReverseEquality(){
 final RexNode node = builder.makeCall(SqlStdOperatorTable.EQUALS,
   builder.makeInputRef(factory.createSqlType(SqlTypeName.BIGINT), 0),
   builder.makeBigintLiteral(BigDecimal.ONE)
   );
 FindSimpleFilters finder = new FindSimpleFilters(builder);
 StateHolder holder = node.accept(finder);
 ImmutableList<RexCall> conditions = holder.getConditions();
 assertEquals(1, conditions.size());
 assertFalse(holder.hasRemainingExpression());
}

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

@Test
public void typeMismatchSuccess(){
 final RexNode node = builder.makeCall(SqlStdOperatorTable.EQUALS,
   builder.makeInputRef(factory.createSqlType(SqlTypeName.INTEGER), 0),
   builder.makeBigintLiteral(BigDecimal.ONE)
   );
 FindSimpleFilters finder = new FindSimpleFilters(builder, false);
 StateHolder holder = node.accept(finder);
 ImmutableList<RexCall> conditions = holder.getConditions();
 assertEquals(1, conditions.size());
 assertFalse(holder.hasRemainingExpression());
}

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

@Test
public void noOnOr(){
 final RexNode node =
   builder.makeCall(SqlStdOperatorTable.OR,
   builder.makeCall(SqlStdOperatorTable.EQUALS,
     builder.makeInputRef(factory.createSqlType(SqlTypeName.BIGINT), 0),
     builder.makeBigintLiteral(BigDecimal.ONE)
     ),
   builder.makeApproxLiteral(BigDecimal.ONE)
   );
 FindSimpleFilters finder = new FindSimpleFilters(builder);
 StateHolder holder = node.accept(finder);
 ImmutableList<RexCall> conditions = holder.getConditions();
 assertEquals(0, conditions.size());
 assertTrue(holder.hasRemainingExpression());
}

相关文章

微信公众号

最新文章

更多