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)

Reply via email to