本文整理了Java中org.apache.calcite.rex.RexBuilder.makeBigintLiteral
方法的一些代码示例,展示了RexBuilder.makeBigintLiteral
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RexBuilder.makeBigintLiteral
方法的具体详情如下:
包路径:org.apache.calcite.rex.RexBuilder
类名称: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());
}
内容来源于网络,如有侵权,请联系作者删除!