Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-2804

Druid adapter: Cast does not work when casting to timestamp

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.18.0
    • Fix Version/s: 1.20.0
    • Component/s: None

      Description

      When trying to execute a simple statement of 

      select cast("__time" as timestamp) from my_datasource limit 10;

      the query fails with a 500 error

       

      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
      

      because the JSON generated is incorrect. Here is the generated JSON

       

       

      {
        "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
      }
      

      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

       

       

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                jszeluga Justin Szeluga
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 4h 40m
                  4h 40m