Calendar cal = new GregorianCalendar(); cal.setTime((Date) value); calciteLiteral = rexBuilder.makeDateLiteral(cal); break; case TIMESTAMP:
literal = rexBuilder.makeDateLiteral( Calcites.jodaToCalciteDateString( DateTimes.utc(exprResult.asLong()),
case DATE: final Date date = (Date) value; calciteLiteral = rexBuilder.makeDateLiteral( DateString.fromDaysSinceEpoch(date.toEpochDay())); break;
@Override public RexNode convertCall(final SqlRexContext cx, final SqlCall call) { final SqlOperator operator = call.getOperator(); if (operator.equals(SqlStdOperatorTable.CURRENT_TIMESTAMP) || operator.equals(SqlStdOperatorTable.LOCALTIMESTAMP)) { return cx.getRexBuilder().makeTimestampLiteral( Calcites.jodaToCalciteTimestampString(plannerContext.getLocalNow(), plannerContext.getTimeZone()), RelDataType.PRECISION_NOT_SPECIFIED ); } else if (operator.equals(SqlStdOperatorTable.CURRENT_TIME) || operator.equals(SqlStdOperatorTable.LOCALTIME)) { return cx.getRexBuilder().makeTimeLiteral( Calcites.jodaToCalciteTimeString(plannerContext.getLocalNow(), plannerContext.getTimeZone()), RelDataType.PRECISION_NOT_SPECIFIED ); } else if (operator.equals(SqlStdOperatorTable.CURRENT_DATE)) { return cx.getRexBuilder().makeDateLiteral( Calcites.jodaToCalciteDateString( plannerContext.getLocalNow().hourOfDay().roundFloorCopy(), plannerContext.getTimeZone() ) ); } else { throw new ISE("WTF?! Should not have got here, operator was: %s", operator); } } }
/** @deprecated Use {@link #makeDateLiteral(DateString)}. */ @Deprecated // to be removed before 2.0 public RexLiteral makeDateLiteral(Calendar calendar) { return makeDateLiteral(DateString.fromCalendarFields(calendar)); }
/** @deprecated Use {@link #makeDateLiteral(DateString)}. */ @Deprecated // to be removed before 2.0 public RexLiteral makeDateLiteral(Calendar calendar) { return makeDateLiteral(DateString.fromCalendarFields(calendar)); }
public RexNode dateLiteral(DateString d) { return rexBuilder.makeDateLiteral(d); }
public RexNode dateLiteral(DateString d) { return rexBuilder.makeDateLiteral(d); }
/** Reduces several expressions to constants. */ @Test public void testConstant2() throws Exception { // Same as testConstant; 10 -> 10 checkConstant(10L, rexBuilder -> rexBuilder.makeExactLiteral(BigDecimal.TEN)); // 10 + 1 -> 11 checkConstant(11L, rexBuilder -> rexBuilder.makeCall(SqlStdOperatorTable.PLUS, rexBuilder.makeExactLiteral(BigDecimal.TEN), rexBuilder.makeExactLiteral(BigDecimal.ONE))); // date 'today' <= date 'today' -> true checkConstant(true, rexBuilder -> { final DateString d = DateString.fromCalendarFields(Util.calendar()); return rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN_OR_EQUAL, rexBuilder.makeDateLiteral(d), rexBuilder.makeDateLiteral(d)); }); // date 'today' < date 'today' -> false checkConstant(false, rexBuilder -> { final DateString d = DateString.fromCalendarFields(Util.calendar()); return rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN, rexBuilder.makeDateLiteral(d), rexBuilder.makeDateLiteral(d)); }); }
/** Reduces several expressions to constants. */ @Test public void testConstant2() throws Exception { // Same as testConstant; 10 -> 10 checkConstant(10L, rexBuilder -> rexBuilder.makeExactLiteral(BigDecimal.TEN)); // 10 + 1 -> 11 checkConstant(11L, rexBuilder -> rexBuilder.makeCall(SqlStdOperatorTable.PLUS, rexBuilder.makeExactLiteral(BigDecimal.TEN), rexBuilder.makeExactLiteral(BigDecimal.ONE))); // date 'today' <= date 'today' -> true checkConstant(true, rexBuilder -> { final DateString d = DateString.fromCalendarFields(Util.calendar()); return rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN_OR_EQUAL, rexBuilder.makeDateLiteral(d), rexBuilder.makeDateLiteral(d)); }); // date 'today' < date 'today' -> false checkConstant(false, rexBuilder -> { final DateString d = DateString.fromCalendarFields(Util.calendar()); return rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN, rexBuilder.makeDateLiteral(d), rexBuilder.makeDateLiteral(d)); }); }
@Override public RexNode convertCall(SqlRexContext cx, SqlCall call) { final int timeZoneIndex = getContextInformation().getRootFragmentTimeZone(); final DateTimeZone timeZone = DateTimeZone.forID(DateUtility.getTimeZone(timeZoneIndex)); final LocalDateTime dateTime = new LocalDateTime(getContextInformation().getQueryStartTime(), timeZone); final long midNightAsMillis = new DateMidnight(dateTime.getYear(), dateTime.getMonthOfYear(), dateTime.getDayOfMonth(), timeZone) .withZoneRetainFields(DateTimeZone.UTC) .getMillis(); return cx.getRexBuilder() .makeDateLiteral(DateTimes.toDateTime( new LocalDateTime(midNightAsMillis, DateTimeZone.UTC)) .toCalendar(null)); // null sets locale to default locale } }
private RexLiteral dateTimeLiteral(RexBuilder rexBuilder, Calendar calendar, RexNode operand) { final TimestampString ts; final int p; switch (operand.getType().getSqlTypeName()) { case TIMESTAMP: ts = TimestampString.fromCalendarFields(calendar); p = operand.getType().getPrecision(); return rexBuilder.makeTimestampLiteral(ts, p); case TIMESTAMP_WITH_LOCAL_TIME_ZONE: ts = TimestampString.fromCalendarFields(calendar); final TimeZone tz = TimeZone.getTimeZone(this.timeZone); final TimestampString localTs = new TimestampWithTimeZoneString(ts, tz) .withTimeZone(DateTimeUtils.UTC_ZONE) .getLocalTimestampString(); p = operand.getType().getPrecision(); return rexBuilder.makeTimestampWithLocalTimeZoneLiteral(localTs, p); case DATE: final DateString d = DateString.fromCalendarFields(calendar); return rexBuilder.makeDateLiteral(d); default: throw Util.unexpected(operand.getType().getSqlTypeName()); } }
private RexLiteral dateTimeLiteral(RexBuilder rexBuilder, Calendar calendar, RexNode operand) { final TimestampString ts; final int p; switch (operand.getType().getSqlTypeName()) { case TIMESTAMP: ts = TimestampString.fromCalendarFields(calendar); p = operand.getType().getPrecision(); return rexBuilder.makeTimestampLiteral(ts, p); case TIMESTAMP_WITH_LOCAL_TIME_ZONE: ts = TimestampString.fromCalendarFields(calendar); final TimeZone tz = TimeZone.getTimeZone(this.timeZone); final TimestampString localTs = new TimestampWithTimeZoneString(ts, tz) .withTimeZone(DateTimeUtils.UTC_ZONE) .getLocalTimestampString(); p = operand.getType().getPrecision(); return rexBuilder.makeTimestampWithLocalTimeZoneLiteral(localTs, p); case DATE: final DateString d = DateString.fromCalendarFields(calendar); return rexBuilder.makeDateLiteral(d); default: throw Util.unexpected(operand.getType().getSqlTypeName()); } }
literal = rexBuilder.makeDateLiteral( Calcites.jodaToCalciteDateString( DateTimes.utc(exprResult.asLong()),
rexBuilder.makeLiteral(new ByteString(new byte[] {1, 2, -34, 0, -128}), typeFactory.createSqlType(SqlTypeName.BINARY, 5), false)); literals.add(rexBuilder.makeDateLiteral(new DateString(1974, 8, 9))); literals.add(rexBuilder.makeTimeLiteral(new TimeString(1, 23, 45), 0)); literals.add(
@Override public RexNode convertCall(final SqlRexContext cx, final SqlCall call) { final SqlOperator operator = call.getOperator(); if (operator.equals(SqlStdOperatorTable.CURRENT_TIMESTAMP) || operator.equals(SqlStdOperatorTable.LOCALTIMESTAMP)) { return cx.getRexBuilder().makeTimestampLiteral( Calcites.jodaToCalciteTimestampString(plannerContext.getLocalNow(), plannerContext.getTimeZone()), RelDataType.PRECISION_NOT_SPECIFIED ); } else if (operator.equals(SqlStdOperatorTable.CURRENT_TIME) || operator.equals(SqlStdOperatorTable.LOCALTIME)) { return cx.getRexBuilder().makeTimeLiteral( Calcites.jodaToCalciteTimeString(plannerContext.getLocalNow(), plannerContext.getTimeZone()), RelDataType.PRECISION_NOT_SPECIFIED ); } else if (operator.equals(SqlStdOperatorTable.CURRENT_DATE)) { return cx.getRexBuilder().makeDateLiteral( Calcites.jodaToCalciteDateString( plannerContext.getLocalNow().hourOfDay().roundFloorCopy(), plannerContext.getTimeZone() ) ); } else { throw new ISE("WTF?! Should not have got here, operator was: %s", operator); } } }
((SqlTimeLiteral) literal).getPrec()); case DATE: return rexBuilder.makeDateLiteral(literal.getValueAs(DateString.class));
((SqlTimeLiteral) literal).getPrec()); case DATE: return rexBuilder.makeDateLiteral(literal.getValueAs(DateString.class));
@Test public void testSimplifyCastLiteral3() { final RexLiteral literalDate = rexBuilder.makeDateLiteral(new DateString("2011-07-20")); final RexLiteral literalTime = rexBuilder.makeTimeLiteral(new TimeString("12:34:56"), 0); final RexLiteral literalTimestamp = rexBuilder.makeTimestampLiteral(
@Test public void testSimplifyCastLiteral3() { final RexLiteral literalDate = rexBuilder.makeDateLiteral(new DateString("2011-07-20")); final RexLiteral literalTime = rexBuilder.makeTimeLiteral(new TimeString("12:34:56"), 0); final RexLiteral literalTimestamp = rexBuilder.makeTimestampLiteral(