You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Danny Chen (Jira)" <ji...@apache.org> on 2020/04/06 02:51:00 UTC

[jira] [Commented] (CALCITE-3894) The Union operation between DATE with TIMESTAMP returns a wrong result

    [ https://issues.apache.org/jira/browse/CALCITE-3894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17076014#comment-17076014 ] 

Danny Chen commented on CALCITE-3894:
-------------------------------------

This example query expects to trigger implicit type coercion, for CALCITE type coercion rules, DATE union TIMESTAMP outputs TIMESTAMP.

But it didn't, and outputs DATE, i think we should fix this. I checked this SQL in PostgreSQL:
```sql
select * from (VALUES(DATE '2018-02-03')) t1(a)
union all
select * from (VALUES(TIMESTAMP '2008-03-31 12:23:34')) t2(b)

-- outputs 
-- 2018-02-03T00:00:00Z
-- 2008-03-31T12:23:34Z
```

> The Union operation between DATE with TIMESTAMP returns a wrong result
> ----------------------------------------------------------------------
>
>                 Key: CALCITE-3894
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3894
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: TANG Wen-hui
>            Assignee: TANG Wen-hui
>            Priority: Major
>
> {code:java}
> @Test public void testUnionTime() {
>  CalciteAssert.AssertThat assertThat = CalciteAssert.that();
>  String query = "select * from (\n"
>  + "select \"id\" from (VALUES(DATE '2018-02-03')) \"foo\"(\"id\")\n"
>  + "union\n"
>  + "select \"id\" from (VALUES(TIMESTAMP '2008-03-31 12:23:34')) \"foo\"(\"id\"))";
>  assertThat.query(query).returns("id=2108-03-12\nid=2018-02-03\n");
> }{code}
> The test with wrong result passed.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)