Pavel Pereslegin created IGNITE-24889:
-----------------------------------------
Summary: Incorrect precision is calculated for temporal value in
some cases
Key: IGNITE-24889
URL: https://issues.apache.org/jira/browse/IGNITE-24889
Project: Ignite
Issue Type: Bug
Components: sql
Reporter: Pavel Pereslegin
1. Literal with interval arithmetic
{code:java}
assertQuery("SELECT TIMESTAMP '2021-01-01 00:00:00.1' + INTERVAL '0.001'
SECOND")
.columnMetadata(new
MetadataMatcher().type(ColumnType.DATETIME).precision(3)) // Failing here:
expected: 3, actual: 1
.returns(LocalDateTime.of(2021, Month.JANUARY, 01, 00, 00, 00,
101000000))
.check();
{code}
2. Dynamic param
{code:java}
// precision = 1
sql("CREATE TABLE test(id int PRIMARY KEY, ts TIMESTAMP(1))");
LocalDateTime ts = LocalDateTime.of(2021, Month.JANUARY, 01, 00, 00, 00,
111000000);
sql("INSERT INTO test values (1, ?)", ts);
LocalDateTime truncated = LocalDateTime.of(2021, Month.JANUARY, 01, 00, 00,
00, 100000000);
assertQuery("SELECT ts FROM test")
.columnMetadata(new MetadataMatcher().precision(1))
// Expected: 2021-01-01T00:00:00.100 <class java.time.LocalDateTime>
// Actual: 2021-01-01T00:00:00.111 <class java.time.LocalDateTime>
.returns(truncated)
.check();
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)