本文整理了Java中org.apache.calcite.rex.RexBuilder.makeFlag
方法的一些代码示例,展示了RexBuilder.makeFlag
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RexBuilder.makeFlag
方法的具体详情如下:
包路径:org.apache.calcite.rex.RexBuilder
类名称:RexBuilder
方法名:makeFlag
[英]Creates a literal representing a flag.
[中]创建表示标志的文字。
代码示例来源:origin: apache/hive
private List<RexNode> rewriteFloorDateChildren(SqlOperator op, List<RexNode> childRexNodeLst)
throws SemanticException {
List<RexNode> newChildRexNodeLst = new ArrayList<RexNode>();
assert childRexNodeLst.size() == 1;
newChildRexNodeLst.add(childRexNodeLst.get(0));
if (op == HiveFloorDate.YEAR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.YEAR));
} else if (op == HiveFloorDate.QUARTER) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.QUARTER));
} else if (op == HiveFloorDate.MONTH) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MONTH));
} else if (op == HiveFloorDate.WEEK) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.WEEK));
} else if (op == HiveFloorDate.DAY) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.DAY));
} else if (op == HiveFloorDate.HOUR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.HOUR));
} else if (op == HiveFloorDate.MINUTE) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MINUTE));
} else if (op == HiveFloorDate.SECOND) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.SECOND));
}
return newChildRexNodeLst;
}
代码示例来源:origin: apache/drill
private List<RexNode> rewriteExtractDateChildren(SqlOperator op, List<RexNode> childRexNodeLst)
throws SemanticException {
List<RexNode> newChildRexNodeLst = new ArrayList<RexNode>();
if (op == HiveExtractDate.YEAR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.YEAR));
} else if (op == HiveExtractDate.QUARTER) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.QUARTER));
} else if (op == HiveExtractDate.MONTH) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MONTH));
} else if (op == HiveExtractDate.WEEK) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.WEEK));
} else if (op == HiveExtractDate.DAY) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.DAY));
} else if (op == HiveExtractDate.HOUR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.HOUR));
} else if (op == HiveExtractDate.MINUTE) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MINUTE));
} else if (op == HiveExtractDate.SECOND) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.SECOND));
}
assert childRexNodeLst.size() == 1;
newChildRexNodeLst.add(childRexNodeLst.get(0));
return newChildRexNodeLst;
}
代码示例来源:origin: apache/drill
private List<RexNode> rewriteFloorDateChildren(SqlOperator op, List<RexNode> childRexNodeLst)
throws SemanticException {
List<RexNode> newChildRexNodeLst = new ArrayList<RexNode>();
assert childRexNodeLst.size() == 1;
newChildRexNodeLst.add(childRexNodeLst.get(0));
if (op == HiveFloorDate.YEAR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.YEAR));
} else if (op == HiveFloorDate.QUARTER) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.QUARTER));
} else if (op == HiveFloorDate.MONTH) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MONTH));
} else if (op == HiveFloorDate.WEEK) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.WEEK));
} else if (op == HiveFloorDate.DAY) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.DAY));
} else if (op == HiveFloorDate.HOUR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.HOUR));
} else if (op == HiveFloorDate.MINUTE) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MINUTE));
} else if (op == HiveFloorDate.SECOND) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.SECOND));
}
return newChildRexNodeLst;
}
代码示例来源:origin: apache/hive
final boolean isTimestampLevel;
if (op == HiveExtractDate.YEAR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.YEAR));
isTimestampLevel = false;
} else if (op == HiveExtractDate.QUARTER) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.QUARTER));
isTimestampLevel = false;
} else if (op == HiveExtractDate.MONTH) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MONTH));
isTimestampLevel = false;
} else if (op == HiveExtractDate.WEEK) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.WEEK));
isTimestampLevel = false;
} else if (op == HiveExtractDate.DAY) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.DAY));
isTimestampLevel = false;
} else if (op == HiveExtractDate.HOUR) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.HOUR));
isTimestampLevel = true;
} else if (op == HiveExtractDate.MINUTE) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.MINUTE));
isTimestampLevel = true;
} else if (op == HiveExtractDate.SECOND) {
newChildRexNodeLst.add(cluster.getRexBuilder().makeFlag(TimeUnitRange.SECOND));
isTimestampLevel = true;
} else {
代码示例来源:origin: apache/incubator-druid
@Test
public void testOtherTimeCeil()
{
// CEIL(__time TO unit)
testExpression(
rexBuilder.makeCall(
SqlStdOperatorTable.CEIL,
inputRef("t"),
rexBuilder.makeFlag(TimeUnitRange.YEAR)
),
DruidExpression.fromExpression("timestamp_ceil(\"t\",'P1Y',null,'UTC')"),
DateTimes.of("2001").getMillis()
);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testOtherTimeFloor()
{
// FLOOR(__time TO unit)
testExpression(
rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR,
inputRef("t"),
rexBuilder.makeFlag(TimeUnitRange.YEAR)
),
DruidExpression.fromExpression("timestamp_floor(\"t\",'P1Y',null,'UTC')"),
DateTimes.of("2000").getMillis()
);
}
代码示例来源:origin: apache/incubator-druid
@Test
public void testExtract()
{
testExpression(
rexBuilder.makeCall(
SqlStdOperatorTable.EXTRACT,
rexBuilder.makeFlag(TimeUnitRange.QUARTER),
inputRef("t")
),
DruidExpression.fromExpression("timestamp_extract(\"t\",'QUARTER','UTC')"),
1L
);
testExpression(
rexBuilder.makeCall(
SqlStdOperatorTable.EXTRACT,
rexBuilder.makeFlag(TimeUnitRange.DAY),
inputRef("t")
),
DruidExpression.fromExpression("timestamp_extract(\"t\",'DAY','UTC')"),
3L
);
}
代码示例来源:origin: apache/incubator-druid
rexBuilder.makeCall(
SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(SqlTrimFunction.Flag.BOTH),
rexBuilder.makeLiteral(" "),
inputRef("spacey")
rexBuilder.makeCall(
SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(SqlTrimFunction.Flag.LEADING),
rexBuilder.makeLiteral(" h"),
inputRef("spacey")
rexBuilder.makeCall(
SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(SqlTrimFunction.Flag.TRAILING),
rexBuilder.makeLiteral(" e"),
inputRef("spacey")
代码示例来源:origin: Qihoo360/Quicksql
/**
* Creates a literal representing an interval type, for example
* {@code YEAR TO MONTH} or {@code DOW}.
*/
public RexLiteral makeIntervalLiteral(
SqlIntervalQualifier intervalQualifier) {
assert intervalQualifier != null;
return makeFlag(intervalQualifier.timeUnitRange);
}
代码示例来源:origin: org.apache.calcite/calcite-core
/**
* Creates a literal representing an interval type, for example
* {@code YEAR TO MONTH} or {@code DOW}.
*/
public RexLiteral makeIntervalLiteral(
SqlIntervalQualifier intervalQualifier) {
assert intervalQualifier != null;
return makeFlag(intervalQualifier.timeUnitRange);
}
代码示例来源:origin: org.apache.calcite/calcite-druid
Fixture2() {
exYear = rexBuilder.makeCall(SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.YEAR), ts));
exMonth = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.MONTH), ts));
exDay = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.DAY), ts));
}
}
代码示例来源:origin: dremio/dremio-oss
@Override
public RexNode convertCall(SqlRexContext cx, SqlCall call) {
final RexBuilder rexBuilder = cx.getRexBuilder();
final SqlLiteral literal = (SqlLiteral) call.getOperandList().get(0);
final String value = ((NlsString)literal.getValue()).getValue();
TimeUnitRange range = VALID_PERIODS.get(value.toLowerCase());
Preconditions.checkNotNull(range, "Unhandle range type: %s.", value);
List<RexNode> exprs = new ArrayList<>();
exprs.add(rexBuilder.makeFlag(range));
exprs.add(cx.convertExpression(call.getOperandList().get(1)));
RelDataTypeFactory typeFactory = cx.getTypeFactory();
final RelDataType returnType
= typeFactory.createTypeWithNullability(typeFactory.createSqlType(SqlTypeName.BIGINT), exprs.get(1).getType().isNullable());
return rexBuilder.makeCall(returnType, SqlStdOperatorTable.EXTRACT, exprs);
}
代码示例来源:origin: Qihoo360/Quicksql
public RexNode convertCall(SqlRexContext cx, SqlCall call) {
final RexBuilder rexBuilder = cx.getRexBuilder();
final RexNode operand =
cx.convertExpression(call.getOperandList().get(0));
return rexBuilder.makeCall(SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(flag), rexBuilder.makeLiteral(" "), operand);
}
}
代码示例来源:origin: org.apache.calcite/calcite-core
public RexNode convertCall(SqlRexContext cx, SqlCall call) {
final RexBuilder rexBuilder = cx.getRexBuilder();
final RexNode operand =
cx.convertExpression(call.getOperandList().get(0));
return rexBuilder.makeCall(SqlStdOperatorTable.TRIM,
rexBuilder.makeFlag(flag), rexBuilder.makeLiteral(" "), operand);
}
}
代码示例来源:origin: Qihoo360/Quicksql
Fixture2() {
exYearTs = rexBuilder.makeCall(SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.YEAR), ts));
exMonthTs = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.MONTH), ts));
exDayTs = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.DAY), ts));
exYearD = rexBuilder.makeCall(SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.YEAR), d));
exMonthD = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.MONTH), d));
exDayD = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.DAY), d));
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.YEAR)));
floorMonth = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.MONTH)));
floorDay = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.DAY)));
floorHour = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.HOUR)));
floorMinute = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.MINUTE)));
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.YEAR)));
ceilMonth = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.CEIL,
代码示例来源:origin: org.apache.calcite/calcite-core
Fixture2() {
exYearTs = rexBuilder.makeCall(SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.YEAR), ts));
exMonthTs = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.MONTH), ts));
exDayTs = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.DAY), ts));
exYearD = rexBuilder.makeCall(SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.YEAR), d));
exMonthD = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.MONTH), d));
exDayD = rexBuilder.makeCall(intRelDataType,
SqlStdOperatorTable.EXTRACT,
ImmutableList.of(rexBuilder.makeFlag(TimeUnitRange.DAY), d));
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.YEAR)));
floorMonth = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.MONTH)));
floorDay = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.DAY)));
floorHour = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.HOUR)));
floorMinute = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.FLOOR,
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.MINUTE)));
ImmutableList.of(ts, rexBuilder.makeFlag(TimeUnitRange.YEAR)));
ceilMonth = rexBuilder.makeCall(intRelDataType, SqlStdOperatorTable.CEIL,
代码示例来源:origin: Qihoo360/Quicksql
final RexNode innerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
final RexNode innerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
for (int j = 0; j <= i; j++) {
final RexNode outerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, innerFloorCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
final RexNode outerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, innerCeilCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
final RexCall floorSimplifiedExpr = (RexCall) defaultSimplifier.apply(outerFloorCall);
assertThat(floorSimplifiedExpr.getKind(), is(SqlKind.FLOOR));
final RexNode innerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
final RexNode innerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
for (int j = timeUnitRanges.size() - 1; j > i; j--) {
final RexNode outerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, innerFloorCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
final RexNode outerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, innerCeilCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
代码示例来源:origin: org.apache.calcite/calcite-core
final RexNode innerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
final RexNode innerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
for (int j = 0; j <= i; j++) {
final RexNode outerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, innerFloorCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
final RexNode outerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, innerCeilCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
final RexCall floorSimplifiedExpr =
(RexCall) f.simplify.simplifyPreservingType(outerFloorCall,
final RexNode innerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
final RexNode innerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, literalTs,
f.rexBuilder.makeFlag(timeUnitRanges.get(i)));
for (int j = timeUnitRanges.size() - 1; j > i; j--) {
final RexNode outerFloorCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.FLOOR, innerFloorCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
final RexNode outerCeilCall = f.rexBuilder.makeCall(
SqlStdOperatorTable.CEIL, innerCeilCall,
f.rexBuilder.makeFlag(timeUnitRanges.get(j)));
代码示例来源:origin: org.apache.calcite/calcite-core
"bottom_nw"));
RexNode after = builder.getRexBuilder().makeFlag(
SqlMatchRecognize.AfterOption.SKIP_TO_NEXT_ROW);
代码示例来源:origin: org.apache.calcite/calcite-core
return rexBuilder.makeBinaryLiteral(byteString);
case SYMBOL:
return rexBuilder.makeFlag(literal.getValueAs(Enum.class));
case TIMESTAMP:
return rexBuilder.makeTimestampLiteral(
内容来源于网络,如有侵权,请联系作者删除!