本文整理了Java中org.apache.calcite.rex.RexBuilder.makeLiteral
方法的一些代码示例,展示了RexBuilder.makeLiteral
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RexBuilder.makeLiteral
方法的具体详情如下:
包路径:org.apache.calcite.rex.RexBuilder
类名称:RexBuilder
方法名:makeLiteral
[英]Internal method to create a call to a literal. Code outside this package should call one of the type-specific methods such as #makeDateLiteral(DateString), #makeLiteral(boolean), #makeLiteral(String).
[中]创建对文本的调用的内部方法。这个包之外的代码应该调用一个特定于类型的方法,比如#makeDateLiteral(DateString)、#makeLiteral(boolean)、#makeLiteral(String)。
代码示例来源:origin: apache/hive
private static List<RexNode> createInClauses(RexBuilder rexBuilder, Map<String, RexNode> stringToExpr,
Multimap<String, String> inLHSExprToRHSExprs) {
List<RexNode> newExpressions = Lists.newArrayList();
for (Entry<String,Collection<String>> entry : inLHSExprToRHSExprs.asMap().entrySet()) {
String ref = entry.getKey();
Collection<String> exprs = entry.getValue();
if (exprs.isEmpty()) {
newExpressions.add(rexBuilder.makeLiteral(false));
} else {
List<RexNode> newOperands = new ArrayList<RexNode>(exprs.size() + 1);
newOperands.add(stringToExpr.get(ref));
for (String expr : exprs) {
newOperands.add(stringToExpr.get(expr));
}
newExpressions.add(rexBuilder.makeCall(HiveIn.INSTANCE, newOperands));
}
}
return newExpressions;
}
代码示例来源:origin: apache/incubator-druid
private RexNode integerLiteral(final int integer)
{
return rexBuilder.makeLiteral(new BigDecimal(integer), typeFactory.createSqlType(SqlTypeName.INTEGER), true);
}
代码示例来源:origin: apache/incubator-druid
SqlStdOperatorTable.EQUALS,
leftExpressions.get(i),
getCluster().getRexBuilder().makeLiteral(value)
代码示例来源:origin: apache/hive
@Override
public double estimateRowCount(RelMetadataQuery mq) {
return mq.getDistinctRowCount(this, groupSet, getCluster().getRexBuilder().makeLiteral(true));
}
代码示例来源:origin: apache/drill
@Override
public double estimateRowCount(RelMetadataQuery mq) {
return mq.getDistinctRowCount(this, groupSet, getCluster().getRexBuilder().makeLiteral(true));
}
代码示例来源:origin: apache/hive
public static Double getDistinctRowCount(RelNode r, RelMetadataQuery mq, int indx) {
ImmutableBitSet bitSetOfRqdProj = ImmutableBitSet.of(indx);
return mq.getDistinctRowCount(r, bitSetOfRqdProj, r
.getCluster().getRexBuilder().makeLiteral(true));
}
代码示例来源:origin: apache/drill
public static Double getDistinctRowCount(RelNode r, RelMetadataQuery mq, int indx) {
ImmutableBitSet bitSetOfRqdProj = ImmutableBitSet.of(indx);
return mq.getDistinctRowCount(r, bitSetOfRqdProj, r
.getCluster().getRexBuilder().makeLiteral(true));
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testTimeShift()
{
testExpression(
rexBuilder.makeCall(
new TimeShiftOperatorConversion().calciteOperator(),
inputRef("t"),
rexBuilder.makeLiteral("PT2H"),
rexBuilder.makeLiteral(-3, typeFactory.createSqlType(SqlTypeName.INTEGER), true)
),
DruidExpression.fromExpression("timestamp_shift(\"t\",'PT2H',-3)"),
DateTimes.of("2000-02-02T22:05:06").getMillis()
);
}
代码示例来源:origin: apache/hive
@Override
public Double getDistinctRowCount(Join rel, RelMetadataQuery mq, ImmutableBitSet groupKey,
RexNode predicate) {
if (rel instanceof HiveJoin) {
HiveJoin hjRel = (HiveJoin) rel;
//TODO: Improve this
if (rel instanceof SemiJoin) {
return mq.getDistinctRowCount(hjRel.getLeft(), groupKey,
rel.getCluster().getRexBuilder().makeLiteral(true));
} else {
return RelMdUtil.getJoinDistinctRowCount(mq, rel, rel.getJoinType(),
groupKey, predicate, true);
}
}
return mq.getDistinctRowCount(rel, groupKey, predicate);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testConcat()
{
testExpression(
rexBuilder.makeCall(
typeFactory.createSqlType(SqlTypeName.VARCHAR),
SqlStdOperatorTable.CONCAT,
ImmutableList.of(
inputRef("s"),
rexBuilder.makeLiteral("bar")
)
),
DruidExpression.fromExpression("concat(\"s\",'bar')"),
"foobar"
);
}
代码示例来源:origin: apache/drill
@Override
public Double getDistinctRowCount(Join rel, RelMetadataQuery mq, ImmutableBitSet groupKey,
RexNode predicate) {
if (rel instanceof HiveJoin) {
HiveJoin hjRel = (HiveJoin) rel;
//TODO: Improve this
if (rel instanceof SemiJoin) {
return mq.getDistinctRowCount(hjRel.getLeft(), groupKey,
rel.getCluster().getRexBuilder().makeLiteral(true));
} else {
return RelMdUtil.getJoinDistinctRowCount(mq, rel, rel.getJoinType(),
groupKey, predicate, true);
}
}
return mq.getDistinctRowCount(rel, groupKey, predicate);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testTimeParse()
{
testExpression(
rexBuilder.makeCall(
new TimeParseOperatorConversion().calciteOperator(),
inputRef("tstr"),
rexBuilder.makeLiteral("yyyy-MM-dd HH:mm:ss")
),
DruidExpression.fromExpression("timestamp_parse(\"tstr\",'yyyy-MM-dd HH:mm:ss')"),
DateTimes.of("2000-02-03T04:05:06").getMillis()
);
testExpression(
rexBuilder.makeCall(
new TimeParseOperatorConversion().calciteOperator(),
inputRef("tstr"),
rexBuilder.makeLiteral("yyyy-MM-dd HH:mm:ss"),
rexBuilder.makeLiteral("America/Los_Angeles")
),
DruidExpression.fromExpression("timestamp_parse(\"tstr\",'yyyy-MM-dd HH:mm:ss','America/Los_Angeles')"),
DateTimes.of("2000-02-03T04:05:06-08:00").getMillis()
);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testTimeExtract()
{
testExpression(
rexBuilder.makeCall(
new TimeExtractOperatorConversion().calciteOperator(),
inputRef("t"),
rexBuilder.makeLiteral("QUARTER")
),
DruidExpression.fromExpression("timestamp_extract(\"t\",'QUARTER','UTC')"),
1L
);
testExpression(
rexBuilder.makeCall(
new TimeExtractOperatorConversion().calciteOperator(),
inputRef("t"),
rexBuilder.makeLiteral("DAY"),
rexBuilder.makeLiteral("America/Los_Angeles")
),
DruidExpression.fromExpression("timestamp_extract(\"t\",'DAY','America/Los_Angeles')"),
2L
);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testTimeFormat()
{
testExpression(
rexBuilder.makeCall(
new TimeFormatOperatorConversion().calciteOperator(),
inputRef("t"),
rexBuilder.makeLiteral("yyyy-MM-dd HH:mm:ss")
),
DruidExpression.fromExpression("timestamp_format(\"t\",'yyyy-MM-dd HH:mm:ss','UTC')"),
"2000-02-03 04:05:06"
);
testExpression(
rexBuilder.makeCall(
new TimeFormatOperatorConversion().calciteOperator(),
inputRef("t"),
rexBuilder.makeLiteral("yyyy-MM-dd HH:mm:ss"),
rexBuilder.makeLiteral("America/Los_Angeles")
),
DruidExpression.fromExpression("timestamp_format(\"t\",'yyyy-MM-dd HH:mm:ss','America/Los_Angeles')"),
"2000-02-02 20:05:06"
);
}
代码示例来源:origin: apache/incubator-druid
rexBuilder.makeCall(
SqlStdOperatorTable.POSITION,
rexBuilder.makeLiteral("oo"),
inputRef("s")
),
rexBuilder.makeCall(
SqlStdOperatorTable.POSITION,
rexBuilder.makeLiteral("oo"),
inputRef("s"),
rexBuilder.makeExactLiteral(BigDecimal.valueOf(2))
rexBuilder.makeCall(
SqlStdOperatorTable.POSITION,
rexBuilder.makeLiteral("oo"),
inputRef("s"),
rexBuilder.makeExactLiteral(BigDecimal.valueOf(3))
代码示例来源:origin: apache/incubator-druid
@Test
public void testTimeFloor()
{
testExpression(
rexBuilder.makeCall(
new TimeFloorOperatorConversion().calciteOperator(),
timestampLiteral(DateTimes.of("2000-02-03T04:05:06Z")),
rexBuilder.makeLiteral("PT1H")
),
DruidExpression.fromExpression("timestamp_floor(949550706000,'PT1H',null,'UTC')"),
DateTimes.of("2000-02-03T04:00:00").getMillis()
);
testExpression(
rexBuilder.makeCall(
new TimeFloorOperatorConversion().calciteOperator(),
inputRef("t"),
rexBuilder.makeLiteral("P1D"),
rexBuilder.makeNullLiteral(typeFactory.createSqlType(SqlTypeName.TIMESTAMP)),
rexBuilder.makeLiteral("America/Los_Angeles")
),
DruidExpression.fromExpression("timestamp_floor(\"t\",'P1D',null,'America/Los_Angeles')"),
DateTimes.of("2000-02-02T08:00:00").getMillis()
);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testDateTrunc()
{
testExpression(
rexBuilder.makeCall(
new DateTruncOperatorConversion().calciteOperator(),
rexBuilder.makeLiteral("hour"),
timestampLiteral(DateTimes.of("2000-02-03T04:05:06Z"))
),
DruidExpression.fromExpression("timestamp_floor(949550706000,'PT1H',null,'UTC')"),
DateTimes.of("2000-02-03T04:00:00").getMillis()
);
testExpression(
rexBuilder.makeCall(
new DateTruncOperatorConversion().calciteOperator(),
rexBuilder.makeLiteral("DAY"),
timestampLiteral(DateTimes.of("2000-02-03T04:05:06Z"))
),
DruidExpression.fromExpression("timestamp_floor(949550706000,'P1D',null,'UTC')"),
DateTimes.of("2000-02-03T00:00:00").getMillis()
);
}
代码示例来源:origin: apache/incubator-druid
SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(SqlTrimFunction.Flag.BOTH),
rexBuilder.makeLiteral(" "),
inputRef("spacey")
),
SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(SqlTrimFunction.Flag.LEADING),
rexBuilder.makeLiteral(" h"),
inputRef("spacey")
),
SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(SqlTrimFunction.Flag.TRAILING),
rexBuilder.makeLiteral(" e"),
inputRef("spacey")
),
代码示例来源:origin: apache/incubator-druid
new StrposOperatorConversion().calciteOperator(),
inputRef("s"),
rexBuilder.makeLiteral("oo")
),
DruidExpression.fromExpression("(strpos(\"s\",'oo') + 1)"),
new StrposOperatorConversion().calciteOperator(),
inputRef("s"),
rexBuilder.makeLiteral("ax")
),
DruidExpression.fromExpression("(strpos(\"s\",'ax') + 1)"),
new StrposOperatorConversion().calciteOperator(),
rexBuilder.makeNullLiteral(typeFactory.createSqlType(SqlTypeName.VARCHAR)),
rexBuilder.makeLiteral("ax")
),
DruidExpression.fromExpression("(strpos(null,'ax') + 1)"),
代码示例来源:origin: apache/incubator-druid
@Test
public void testRegexpExtract()
{
testExpression(
rexBuilder.makeCall(
new RegexpExtractOperatorConversion().calciteOperator(),
inputRef("s"),
rexBuilder.makeLiteral("f(.)"),
integerLiteral(1)
),
DruidExpression.of(
SimpleExtraction.of("s", new RegexDimExtractionFn("f(.)", 1, true, null)),
"regexp_extract(\"s\",'f(.)',1)"
),
"o"
);
testExpression(
rexBuilder.makeCall(
new RegexpExtractOperatorConversion().calciteOperator(),
inputRef("s"),
rexBuilder.makeLiteral("f(.)")
),
DruidExpression.of(
SimpleExtraction.of("s", new RegexDimExtractionFn("f(.)", 0, true, null)),
"regexp_extract(\"s\",'f(.)')"
),
"fo"
);
}
内容来源于网络,如有侵权,请联系作者删除!