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

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

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

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(

相关文章

微信公众号

最新文章

更多