You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Justin Szeluga (JIRA)" <ji...@apache.org> on 2019/01/27 15:58:00 UTC

[jira] [Comment Edited] (CALCITE-2804) Cast does not work in Druid when casting to timestamp

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

Justin Szeluga edited comment on CALCITE-2804 at 1/27/19 3:57 PM:
------------------------------------------------------------------

I added a unit test to the pull request.


was (Author: jszeluga):
I added a unit test to the pull request. I can't get the test VM to work right but I put a breakpoint right before it issues the query and I can see the JSON there. With my fix it is correct so it should fail without my fix

> Cast does not work in Druid when casting to timestamp
> -----------------------------------------------------
>
>                 Key: CALCITE-2804
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2804
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.18.0
>            Reporter: Justin Szeluga
>            Assignee: Julian Hyde
>            Priority: Major
>             Fix For: 1.19.0
>
>
> When trying to execute a simple statement of 
> {code:java}
> select cast("__time" as timestamp) from my_datasource limit 10;{code}
> the query fails with a 500 error
>  
> {code:java}
> Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:58082/druid/v2/?pretty
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
> at org.apache.calcite.runtime.HttpUtils.executeMethod(HttpUtils.java:137)
> at org.apache.calcite.runtime.HttpUtils.post(HttpUtils.java:110)
> at org.apache.calcite.adapter.druid.DruidConnectionImpl.request(DruidConnectionImpl.java:109)
> ... 29 more
> {code}
> because the JSON generated is incorrect. Here is the generated JSON
>  
>  
> {code:java}
> {
>   "queryType": "scan",
>   "dataSource": "my_datasource",
>   "intervals": [
>     "1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"
>   ],
>   "virtualColumns": [
>     {
>       "type": "expression",
>       "name": "vc",
>       "expression": "timestamp_parse(timestamp_format(\"__time\",'yyyy-MM-dd\\u0027T\\u0027HH:mm:ss.SSS\\u0027Z\\u0027','America/New_York'),'','UTC')",
>       "outputType": "LONG"
>     }
>   ],
>   "columns": [
>     "vc"
>   ],
>   "resultFormat": "compactedList",
>   "limit": 10
> }
> {code}
> There are two problems. First, the "__time" dimension is not formatted correctly in timestamp_format. The escaped quotes need to be removed.
> Also, the call to timestamp_parse is incorrect. If a timezone is going to be provided then a date time format needs to be provided as well. Currently, it is only empty string
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)