CAST function get removed after compiling the SQL expression

23 views
Skip to first unread message

Siddhesh Naik

unread,
Jul 17, 2019, 8:43:13 AM7/17/19
to ibm_db
Hi,
I am compiling SQL expression using IBM_DB_SA dialect. In my sql expression I am using the CAST function in select query. When I compile that expression , compiler return query without CAST.


Before compile: 
SELECT concat (CAST(:param_1 AS VARCHAR), CUSTOMER_ID) AS concat_1 FROM "CUSTOMERS"

After Compile:   SELECT concat (?,  CUSTOMER_ID) AS concat_1 FROM "CUSTOMERS"

Please help.

Siddhesh Naik

unread,
Jul 18, 2019, 2:31:30 AM7/18/19
to ibm_db
Sample program to recreate issue:

import ibm_db_sa
from sqlalchemy.sql import select
from sqlalchemy.sql import literal, literal_column
from sqlalchemy.sql.expression import cast
from sqlalchemy import String
from sqlalchemy.sql.functions import func
from sqlalchemy import Table, MetaData

column_list = [cast(literal("CUSTOMER_ID"), String),
func.concat(cast(literal("CUSTOMER_NAME: "), String), literal_column("CUSTOMER_NAME"))]
table_name = Table("CUSTOMERS", MetaData())
query = select(column_list, distinct=False).select_from(table_name)

query_str = query.compile(dialect=ibm_db_sa.dialect())
print(query)
print("param list: ", query_str.params)
print(query_str.__str__().replace("\n", ""))

Abhinav Radke

unread,
Jul 18, 2019, 10:40:24 AM7/18/19
to ibm_db
Hi Siddhesh,
Thankyou for your sample program.
I am able to reproduce. I am working on it.

Thanks,
Abhinav
Reply all
Reply to author
Forward
0 new messages