Maksim Zhuravkov created IGNITE-22965:
-----------------------------------------

             Summary: Decimal type precision is ignored by client kv/record APIs
                 Key: IGNITE-22965
                 URL: https://issues.apache.org/jira/browse/IGNITE-22965
             Project: Ignite
          Issue Type: Bug
            Reporter: Maksim Zhuravkov


Example:

{noformat}
  @Test
    public void testDec() {
        sql("CREATE TABLE t(k INT PRIMARY KEY, v DECIMAL(3,1))");

        RuntimeException err1 = assertThrows(RuntimeException.class, () -> 
sql("INSERT INTO t(k, v) VALUES (1, 300.1)"));
        assertEquals("Numeric field overflow", err1.getMessage());

        RuntimeException err2 = assertThrows(RuntimeException.class, () -> {
            IgniteImpl ignite = CLUSTER.aliveNode();
            KeyValueView<Tuple, Tuple> kv = 
ignite.tables().table("t").keyValueView();

            kv.put(null, Tuple.create().set("k", 1), Tuple.create().set("v", 
new BigDecimal("300.1")));
        });
        assertEquals("Numeric field overflow in column 'V'", err2.getMessage());

        // This assertion fails.
        RuntimeException err3 = assertThrows(RuntimeException.class, () -> {
            KeyValueView<Tuple, Tuple> kv = 
client.tables().table("t").keyValueView();

            kv.put(null, Tuple.create().set("k", 1), Tuple.create().set("v", 
new BigDecimal("300.1")));
        });
        assertEquals(err3.getMessage(), "Numeric field overflow in column 'V'");
    }
{noformat}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to