Hello Calcite devs, I have come across some strange behavior when Decimal literals are being casted to a different precision and scale. For example for something like:
: jdbc:calcite:model=src/test/resources/mode> select cast(1.11 as numeric(3,1)); +--------+ | EXPR$0 | +--------+ | 1.11 | +--------+ 1 row selected (0.509 seconds) Is this not the wrong result? No casting takes place, the actual cast is removed, the literal is given the new RelDataType of Numeric(3, 1), but the actual Java BigDecimal is not modified (the java object has precision 3 and scale 2). Unless I am misunderstanding the semantics of Numeric, 1.11 is not representable in type Numeric(3,1). This is using Calcite 1.38.0-SNAPSHOT I have seen more issues when repeated casts are removed (deemed superfluous by the simplifier), but it may be the same issue so let's deal with this simpler case first. Thank you for any help, Neo