You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Chun Chang (JIRA)" <ji...@apache.org> on 2014/05/22 01:10:38 UTC

[jira] [Created] (DRILL-805) when we cast a string to date, we add time component and timezone too, which is wrong

Chun Chang created DRILL-805:
--------------------------------

             Summary: when we cast a string to date, we add time component and timezone too, which is wrong
                 Key: DRILL-805
                 URL: https://issues.apache.org/jira/browse/DRILL-805
             Project: Apache Drill
          Issue Type: Bug
          Components: Execution - Operators
            Reporter: Chun Chang
            Assignee: Jinfeng Ni


tested with git.commit.id.abbrev=2fad21d

c_date column holds string of date information. when cast it into date type, we add time component, as well as timezone. and the timezone value seems to be random.

0: jdbc:drill:schema=dfs> select c_row, cast(c_date as varchar(20)), cast(c_date as date) from data where c_row < 23;
+------------+------------+------------+
|   c_row    |   EXPR$1   |   EXPR$2   |
+------------+------------+------------+
| 1          | 1957-04-09 | 1957-04-09T00:00:00.000-08:00 |
| 2          | 1957-06-13 | 1957-06-13T00:00:00.000-07:00 |
| 3          | 1996-02-28 | 1996-02-28T00:00:00.000-08:00 |
| 4          | 1996-01-29 | 1996-01-29T00:00:00.000-08:00 |
| 5          | 1996-03-01 | 1996-03-01T00:00:00.000-08:00 |
| 6          | 1996-03-02 | 1996-03-02T00:00:00.000-08:00 |
| 7          | 1997-02-28 | 1997-02-28T00:00:00.000-08:00 |
| 8          | 1997-01-29 | 1997-01-29T00:00:00.000-08:00 |
| 9          | 1997-03-01 | 1997-03-01T00:00:00.000-08:00 |
| 10         | 1997-03-02 | 1997-03-02T00:00:00.000-08:00 |
| 11         | 2000-04-01 | 2000-04-01T00:00:00.000-08:00 |
| 12         | 2000-04-02 | 2000-04-02T00:00:00.000-08:00 |
| 13         | 2000-04-03 | 2000-04-03T00:00:00.000-07:00 |
| 14         | 2038-04-08 | 2038-04-08T00:00:00.000-07:00 |
| 15         | 2039-04-09 | 2039-04-09T00:00:00.000-07:00 |
| 16         | 2040-04-10 | 2040-04-10T00:00:00.000-07:00 |
| 17         | 1999-01-08 | 1999-01-08T00:00:00.000-08:00 |
| 18         | 1999-02-08 | 1999-02-08T00:00:00.000-08:00 |
| 19         | 1999-03-08 | 1999-03-08T00:00:00.000-08:00 |
| 20         | 1999-01-18 | 1999-01-18T00:00:00.000-08:00 |
| 21         | 2003-01-02 | 2003-01-02T00:00:00.000-08:00 |
| 22         | 1999-04-08 | 1999-04-08T00:00:00.000-07:00 |
+------------+------------+------------+
22 rows selected (0.1 seconds)

physical plan for the query:

0: jdbc:drill:schema=dfs> explain plan for select c_row, cast(c_date as varchar(20)), cast(c_date as date) from data where c_row < 23;
+------------+------------+
|    text    |    json    |
+------------+------------+
| ScreenPrel
  ProjectPrel(c_row=[$1], EXPR$1=[CAST($2):VARCHAR(20) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary"], EXPR$2=[CAST($2):DATE])
    FilterPrel(condition=[<($1, 23)])
      ScanPrel(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=maprfs:/user/root/mondrian/data]], selectionRoot=/user/root/mondrian/data, columns=[SchemaPath [`c_row`], SchemaPath [`c_date`]]]])
 | {
  "head" : {
    "version" : 1,
    "generator" : {
      "type" : "ExplainHandler",
      "info" : ""
    },
    "type" : "APACHE_DRILL_PHYSICAL",
    "options" : [ ],
    "resultMode" : "EXEC"
  },
  "graph" : [ {
    "pop" : "parquet-scan",
    "@id" : 1,
    "entries" : [ {
      "path" : "maprfs:/user/root/mondrian/data"
    } ],
    "storage" : {
      "type" : "file",
      "connection" : "maprfs:///",
      "workspaces" : {
        "default" : {
          "location" : "/user/root/mondrian/",
          "writable" : false,
          "storageformat" : null
        },
        "home" : {
          "location" : "/",
          "writable" : false,
          "storageformat" : null
        },
        "root" : {
          "location" : "/",
          "writable" : false,
          "storageformat" : null
        },
        "tmp" : {
          "location" : "/tmp",
          "writable" : true,
          "storageformat" : "csv"
        }
      },
      "formats" : {
        "psv" : {
          "type" : "text",
          "extensions" : [ "tbl" ],
          "delimiter" : "|"
        },
        "csv" : {
          "type" : "text",
          "extensions" : [ "csv" ],
          "delimiter" : ","
        },
        "tsv" : {
          "type" : "text",
          "extensions" : [ "tsv" ],
          "delimiter" : "\t"
        },
        "parquet" : {
          "type" : "parquet"
        },
        "json" : {
          "type" : "json"
        }
      }
    },
    "format" : {
      "type" : "parquet"
    },
    "columns" : [ "`c_row`", "`c_date`" ],
    "selectionRoot" : "/user/root/mondrian/data"
  }, {
    "pop" : "filter",
    "@id" : 2,
    "child" : 1,
    "expr" : "less_than(`c_row`, 23) ",
    "initialAllocation" : 1000000,
    "maxAllocation" : 10000000000
  }, {
    "pop" : "project",
    "@id" : 3,
    "exprs" : [ {
      "ref" : "`c_row`",
      "expr" : "`c_row`"
    }, {
      "ref" : "`EXPR$1`",
      "expr" : "cast( (`c_date` ) as VARCHAR(20) )"
    }, {
      "ref" : "`EXPR$2`",
      "expr" : "cast( (`c_date` ) as DATE )"
    } ],
    "child" : 2,
    "initialAllocation" : 1000000,
    "maxAllocation" : 10000000000
  }, {
    "pop" : "screen",
    "@id" : 4,
    "child" : 3,
    "initialAllocation" : 1000000,
    "maxAllocation" : 10000000000
  } ]
} |



--
This message was sent by Atlassian JIRA
(v6.2#6252)