Maksim Zhuravkov created IGNITE-19353: -----------------------------------------
Summary: Sql. Incorrect type conversion for dynamic parameters - CAST operation ignores type precision. Key: IGNITE-19353 URL: https://issues.apache.org/jira/browse/IGNITE-19353 Project: Ignite Issue Type: Bug Components: sql Reporter: Maksim Zhuravkov Fix For: 3.0.0-beta2 Current implementation of expression execution runtime incorrectly translates types of dynamic parameters because (a) it losses type informations of dynamic parameters (see https://issues.apache.org/jira/browse/IGNITE-18831), (b) it goes against rules of calcite's enumerables/link4j (on which the code is based), which expect dynamic parameters to be converted into their java values according to their inferred types. The following code illustrates the problem: {code:java} @Test public void testReduceLength() { assertQuery("SELECT CAST(? AS VARCHAR(2))").withParams("abcd").returns("ab").check(); } {code} The code returns `abcd` when `ab` is expected. Solution: convert dynamic parameters to java value according their types inferred at the validation stage. -- This message was sent by Atlassian Jira (v8.20.10#820010)