if (pattern.getTypeName() == SqlTypeName.DECIMAL || pattern.getTypeName() == SqlTypeName.INTEGER) { patternStr = pattern.getValue().toString(); } else if (pattern.getTypeName() == SqlTypeName.CHAR) { patternStr = pattern.getValue2().toString(); if (pattern.getTypeName() == SqlTypeName.DECIMAL || pattern.getTypeName() == SqlTypeName.INTEGER) { patternStr = pattern.getValue().toString(); } else if (pattern.getTypeName() == SqlTypeName.CHAR) { patternStr = pattern.getValue2().toString(); if (escape.getTypeName() == SqlTypeName.DECIMAL || escape.getTypeName() == SqlTypeName.INTEGER) { escapeStr = escape.getValue().toString(); } else if (escape.getTypeName() == SqlTypeName.CHAR) { escapeStr = escape.getValue2().toString();
if (SqlTypeName.NUMERIC_TYPES.contains(rhsLiteral.getTypeName())) { val = String.valueOf(RexLiteral.value(rhsLiteral)); } else if (SqlTypeName.CHAR_TYPES.contains(rhsLiteral.getTypeName())) { val = String.valueOf(RexLiteral.stringValue(rhsLiteral)); } else if (SqlTypeName.TIMESTAMP == rhsLiteral.getTypeName() || SqlTypeName.DATE == rhsLiteral.getTypeName()) { val = String.valueOf( Calcites.calciteDateTimeLiteralToJoda(
public static boolean isLiteralNull(RexLiteral literal) { return literal.getTypeName().getName().equals("NULL"); } }
public static boolean isLiteralNull(RexLiteral literal) { return literal.getTypeName().getName().equals("NULL"); } }
final String val; final RexLiteral rhsLiteral = (RexLiteral) rexNode; if (SqlTypeName.NUMERIC_TYPES.contains(rhsLiteral.getTypeName())) { val = String.valueOf(RexLiteral.value(rhsLiteral)); } else if (SqlTypeName.CHAR_TYPES.contains(rhsLiteral.getTypeName())) { val = String.valueOf(RexLiteral.stringValue(rhsLiteral)); } else if (SqlTypeName.TIMESTAMP_WITH_LOCAL_TIME_ZONE == rhsLiteral.getTypeName() || SqlTypeName.TIMESTAMP == rhsLiteral.getTypeName() || SqlTypeName.DATE == rhsLiteral.getTypeName()) { Long millisSinceEpoch = DruidDateTimeUtils.literalValue(rexNode); if (millisSinceEpoch == null) { throw new AssertionError( "Cannot translate Literal" + rexNode + " of type " + rhsLiteral.getTypeName() + " to TimestampString");
@Override public Boolean visitCall(RexCall call) { if (call.getOperator() == SqlStdOperatorTable.ITEM) { final RexNode op0 = call.getOperands().get(0); final RexNode op1 = call.getOperands().get(1); if (op0 instanceof RexInputRef && op1 instanceof RexLiteral && ((RexLiteral) op1).getTypeName() == SqlTypeName.CHAR) { return true; } else if (op0 instanceof RexCall && op1 instanceof RexLiteral && ((RexLiteral) op1).getTypeName() == SqlTypeName.CHAR) { return op0.accept(this); } } return false; }
private static boolean isLimit0(RexNode fetch) { if (fetch != null && fetch.isA(SqlKind.LITERAL)) { RexLiteral l = (RexLiteral) fetch; switch (l.getTypeName()) { case BIGINT: case INTEGER: case DECIMAL: if (((long) l.getValue2()) == 0) { return true; } } } return false; }
@Override public StateHolder visitLiteral(RexLiteral literal) { if(literal.getTypeName().getName().equals("NULL")){ return new StateHolder(Type.OTHER, literal); } return new StateHolder(Type.LITERAL, literal); }
public static boolean isLimit0(RexNode fetch) { if (fetch != null && fetch.isA(SqlKind.LITERAL)) { RexLiteral l = (RexLiteral) fetch; switch (l.getTypeName()) { case BIGINT: case INTEGER: case DECIMAL: if (((long) l.getValue2()) == 0) { return true; } } } return false; }
@Override public Boolean visitCall(RexCall call) { if (call.getOperator() == SqlStdOperatorTable.ITEM) { final RexNode op0 = call.getOperands().get(0); final RexNode op1 = call.getOperands().get(1); if (op0 instanceof RexInputRef && op1 instanceof RexLiteral && ((RexLiteral) op1).getTypeName().getFamily() == SqlTypeFamily.CHARACTER) { return true; } else if (op0 instanceof RexCall && op1 instanceof RexLiteral && ((RexLiteral) op1).getTypeName().getFamily() == SqlTypeFamily.CHARACTER) { return op0.accept(this); } } return false; }
if (operands.get(0) instanceof RexLiteral) { oplit = (RexLiteral) operands.get(0); if (oplit.getTypeName() == SqlTypeName.CHAR) { newLiteral = builder.makeLiteral(((NlsString) oplit.getValue()).getValue() + "%"); input = operands.get(1); if (oplit.getTypeName() == SqlTypeName.CHAR) { newLiteral = builder.makeLiteral(((NlsString) oplit.getValue()).getValue() + "%"); input = operands.get(0);
public RexNode visitLiteral(RexLiteral literal) { // Get the value as is return new RexLiteral(RexLiteral.value(literal), copy(literal.getType()), literal.getTypeName()); }
public RexNode visitLiteral(RexLiteral literal) { // Get the value as is return new RexLiteral(RexLiteral.value(literal), copy(literal.getType()), literal.getTypeName()); }
private Calendar timestampValue(RexLiteral timeLiteral) { switch (timeLiteral.getTypeName()) { case TIMESTAMP_WITH_LOCAL_TIME_ZONE: final TimeZone tz = TimeZone.getTimeZone(this.timeZone); return Util.calendar( SqlFunctions.timestampWithLocalTimeZoneToTimestamp( timeLiteral.getValueAs(Long.class), tz)); case TIMESTAMP: return Util.calendar(timeLiteral.getValueAs(Long.class)); case DATE: // Cast date to timestamp with local time zone final DateString d = timeLiteral.getValueAs(DateString.class); return Util.calendar(d.getMillisSinceEpoch()); default: throw Util.unexpected(timeLiteral.getTypeName()); } }
private Calendar timestampValue(RexLiteral timeLiteral) { switch (timeLiteral.getTypeName()) { case TIMESTAMP_WITH_LOCAL_TIME_ZONE: final TimeZone tz = TimeZone.getTimeZone(this.timeZone); return Util.calendar( SqlFunctions.timestampWithLocalTimeZoneToTimestamp( timeLiteral.getValueAs(Long.class), tz)); case TIMESTAMP: return Util.calendar(timeLiteral.getValueAs(Long.class)); case DATE: // Cast date to timestamp with local time zone final DateString d = timeLiteral.getValueAs(DateString.class); return Util.calendar(d.getMillisSinceEpoch()); default: throw Util.unexpected(timeLiteral.getTypeName()); } }
@Override public SqlNode toSql(RexProgram program, RexNode rex) { if (rex.getKind() == SqlKind.LITERAL) { final RexLiteral literal = (RexLiteral) rex; if (literal.getTypeName().getFamily() == SqlTypeFamily.CHARACTER) { return new SqlIdentifier(RexLiteral.stringValue(literal), POS); } } return super.toSql(program, rex); } }
@Override public SqlNode toSql(RexProgram program, RexNode rex) { if (rex.getKind() == SqlKind.LITERAL) { final RexLiteral literal = (RexLiteral) rex; if (literal.getTypeName().getFamily() == SqlTypeFamily.CHARACTER) { return new SqlIdentifier(RexLiteral.stringValue(literal), POS); } } return super.toSql(program, rex); } }
switch(literal.getTypeName()){ case DECIMAL: case INTEGER:
@Override public String visitLiteral(RexLiteral literal) { RelDataType type = literal.getType(); if (type.getSqlTypeName() == SqlTypeName.BOOLEAN) { if (literal.isNull()) { return "nullBool"; } return literal.toString() + "Literal"; } if (type.getSqlTypeName() == SqlTypeName.INTEGER) { if (literal.isNull()) { return "nullInt"; } return "literal(" + literal.getValue() + ")"; } if (type.getSqlTypeName() == SqlTypeName.VARCHAR) { if (literal.isNull()) { return "nullVarchar"; } } return "/*" + literal.getTypeName().getName() + "*/" + literal.toString(); }
@Override public String visitLiteral(RexLiteral literal) { RelDataType type = literal.getType(); if (type.getSqlTypeName() == SqlTypeName.BOOLEAN) { if (literal.isNull()) { return "nullBool"; } return literal.toString() + "Literal"; } if (type.getSqlTypeName() == SqlTypeName.INTEGER) { if (literal.isNull()) { return "nullInt"; } return "literal(" + literal.getValue() + ")"; } if (type.getSqlTypeName() == SqlTypeName.VARCHAR) { if (literal.isNull()) { return "nullVarchar"; } } return "/*" + literal.getTypeName().getName() + "*/" + literal.toString(); }