[ https://issues.apache.org/jira/browse/DRILL-2313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14746017#comment-14746017 ]
Victoria Markman commented on DRILL-2313: ----------------------------------------- [~seanhychu], (1) Is this expected behavior ? {code} 0: jdbc:drill:schema=dfs> select * from t1 where c1 between cast('2015-01-01' as date) and '2015-01-03 xxxxxxxxxxxxxxx'; +-----+--------+-------------+ | a1 | b1 | c1 | +-----+--------+-------------+ | 1 | aaaaa | 2015-01-01 | | 2 | bbbbb | 2015-01-02 | | 3 | ccccc | 2015-01-03 | +-----+--------+-------------+ 3 rows selected (0.222 seconds) {code} Postgres, for example, only tolerates trailing spaces: {code} postgres=# select * from t1 where c1 between cast('2015-01-01' as date) and '2015-01-03 xxxxxx'; 'ERROR: invalid input syntax for type date: "2015-01-03 xxxxxx" LINE 1: ...1 where c1 between cast('2015-01-01' as date) and '2015-01-0... ^ postgres=# select * from t1 where c1 between cast('2015-01-01 ' as date) and '2015-01-03 '; a1 | b1 | c1 ----+-------+------------ 1 | aaaaa | 2015-01-01 2 | bbbbb | 2015-01-02 3 | ccccc | 2015-01-03 (3 rows) {code} (2) In this fix, did we only implement implicit cast from string to date or string to numeric should work as well ? (3) It feels that we maybe need to document this behavior as well. What do you think ? > Query fails when one of the operands is a DATE literal without an explicit > cast > ------------------------------------------------------------------------------- > > Key: DRILL-2313 > URL: https://issues.apache.org/jira/browse/DRILL-2313 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Affects Versions: 0.8.0 > Reporter: Abhishek Girish > Assignee: Sean Hsuan-Yi Chu > Fix For: 1.2.0 > > > For operations involving the date datatype, when one of the operands is a > DATE literal without a cast, query fails. > *The following query fails to validate:* > {code:sql} > SELECT > * > FROM > date_dim > > WHERE d_date BETWEEN '2002-3-01' AND cast('2002-3-01' AS DATE) > LIMIT 1; > {code} > Query failed: SqlValidatorException: Cannot apply 'BETWEEN' to arguments of > type '<ANY> BETWEEN <CHAR(9)> AND <DATE>'. Supported form(s): > '<COMPARABLE_TYPE> BETWEEN <COMPARABLE_TYPE> AND <COMPARABLE_TYPE>' > *The following query executes fine:* > {code:sql} > SELECT > * > FROM > date_dim > > WHERE d_date BETWEEN '2002-3-01' AND > '2002-3-01' > LIMIT 1; > {code} > Both the queries execute fine on postgres -- This message was sent by Atlassian JIRA (v6.3.4#6332)