Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created 09-26-2024 06:25 AM
Hi folks,
I tried to submit a query with params via ODBC to Impala. Thi is my code:
import pyodbc
# connect
crsr = pyodbc.connect('DSN=impala', autocommit=True).cursor()
param1 = 1000000000
param2 = '2023-01-01'
# long query
query = """
select *
from target_test.test d
left outer join
(select cli, fsc, nom_rag_soc, dat_ini_val, dat_ccz_inl, dat_csz_efv, dta_cessata, sta, prg_var, cod_cau_csz_dl, rn
from
(select
c2.cod_cli as cli,
trim(c2.cod_fsc) as fsc,
trim(c2.nom_rag_soc) as nom_rag_soc,
c2.dat_ini_val,
dat_ccz_inl,
dat_csz_efv,
(case when c2.dat_csz_efv= '1900-01-01 00:00:00' then '2999-01-01 00:00:00' else c2.dat_csz_efv end) as dta_cessata,
sta,
prg_var,
cod_cau_csz_dl,
row_number() over (partition by cod_fsc order by (case when c2.dat_csz_efv='1900-01-01 00:00:00' then '2999-01-01 00:00:00' else c2.dat_csz_efv end) desc) as rn
from target_test.test2 c2
where
c2.sta='c'
and c2.dat_ini_val = (select max(c1.dat_ini_val) from target_test.test3 c1 where c1.sta='c' and c2.cod_cli=c1.cod_cli and c2.cod_fsc=c1.cod_fsc)
and prg_var = (select max(prg_var) from target_test.v_padln_t_cliente xc where c2.cod_cli = xc.cod_cli and sta ='c' and xc.dat_ini_val = c2.dat_ini_val)
) a
where rn=1
) k
on trim(d.cod_fsc)=k.fsc
where
d.prg_rig < ?
and d.dat_cre_flu >= ?
and d.tip_flu = 'f24';
"""
try:
res = crsr.execute(query, param1, param2).fetchall
print(res)
except pyodbc.Error as e:
e.args = (e.args[1],)
raise
But this is the output:
I installed this driver: ClouderaImpalaODBC-2.7.1.1009-1.x86_64.rpm
If I try whit simple query, without subqueries, it works.
Any suggestions?
Created 10-06-2024 12:35 PM
Hi-
If you are using the latest ODBC and seeing this issue, then this could be hitting an ODBC driver 'corner case' bug. Please open a ticket with Cloudera Support, and we will take it further to the Driver Team.
Created on 10-07-2024 07:52 AM - edited 10-07-2024 07:52 AM
Sure, it’s the latest version available. We have opened a case to cloudera, but being Impala and python widely used together I am surprised not finding lots bug report about this.