Guillaume created HIVE-21144: -------------------------------- Summary: ODBC with prepared statement fail inside a CTE Key: HIVE-21144 URL: https://issues.apache.org/jira/browse/HIVE-21144 Project: Hive Issue Type: Bug Components: ODBC Affects Versions: 3.1.0 Reporter: Guillaume
I am trying to execute a very simple query, using python/pyodbc on Windows (with a working system-wide odbc DSN: HiveProd): {code:java} import pyodbc cnxn = pyodbc.connect('DSN=HiveProd', autocommit=True) cursor = cnxn.cursor() # works q="select ? as lic, ? as cpg" # fails q="with init as (select ? as lic, ? as cpg) select * from init" cursor.execute(q, '1', 'some string') for row in cursor: print(row.lic, row.cpg) {code} Basically, create an odbc connection, run a query with a prepared statement and print the result. A basic query works fine. If I put this query inside a CTE, I get: {{ cursor.execute("with init as (select ? as lic, ? as cpg) select * from init", '1', 'some string') pyodbc.ProgrammingError: ('42000', "[42000] [Hortonworks][Hardy] (80) Syntax or semantic analysis error thrown in server while executing query. Error message from server: Error while compiling statement: FAILED: ParseException line 1:21 can not recognize input near '?' 'as' 'lic' in select clause (80) (SQLPrepare)")}} This is not specific to python as I get the same issue with .Net. Trying the same with JDBC works fine. Testing on Hive 3.1.0 from Hdp 3.1.0 -- This message was sent by Atlassian JIRA (v7.6.3#76005)