Khurram Faraaz created DRILL-4924: ------------------------------------- Summary: Can not use case expression within an IN predicate. Key: DRILL-4924 URL: https://issues.apache.org/jira/browse/DRILL-4924 Project: Apache Drill Issue Type: Bug Components: Query Planning & Optimization Affects Versions: 1.9.0 Reporter: Khurram Faraaz
Can not use case expression within an IN predicate. Drill 1.9.0 git commit ID: f3c26e34 Similar query works on Postgres 9.3 {noformat} postgres=# select * from t1 where c1 in ( select case when c1=2 then 30 else c1 end); c1 | c2 ----+----- 1 | 0 3 | 19 -1 | 11 5 | 13 10 | 17 11 | -1 13 | 1 17 | 20 0 | 9 19 | 100 (10 rows) {noformat} Drill 1.9.0 returns an error {noformat} 0: jdbc:drill:schema=dfs.tmp> select * from `emp_tbl` where id IN ( SELECT CASE WHEN id=2 THEN 30 else id end ); Error: PARSE ERROR: Encountered ")" at line 1, column 81. Was expecting one of: "FROM" ... "," ... "AS" ... <IDENTIFIER> ... <QUOTED_IDENTIFIER> ... <BACK_QUOTED_IDENTIFIER> ... <BRACKET_QUOTED_IDENTIFIER> ... <UNICODE_QUOTED_IDENTIFIER> ... "NOT" ... "IN" ... "BETWEEN" ... "LIKE" ... "SIMILAR" ... "=" ... ">" ... "<" ... "<=" ... ">=" ... "<>" ... "+" ... "-" ... "*" ... "/" ... "||" ... "AND" ... "OR" ... "IS" ... "MEMBER" ... "SUBMULTISET" ... "MULTISET" ... "[" ... SQL Query select * from `emp_tbl` where id IN ( SELECT CASE WHEN id=2 THEN 30 else id end ) ^ [Error Id: e6c3f120-8776-476e-8df7-7ef30f6b7307 on centos-01.qa.lab:31010] (state=,code=0) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)