GP <pandit.gau...@gmail.com> wrote:
> So that's what was happening: > > This select construct fails: > select_query = select() > select_query.append_column(contract_id) > select_query.append_column(cancel_dt) > select_query.append_column(cancellation_obj) > select_query.append_from(source_table_name) > > > But this select construct works: > select_query = select([source_table.c.contract_id, source_table.c.cancel_dt, > source_table.c.cancellation_quote_obj]) > > So it's just matter of rewriting select query in the 'right' way. > > Thanks for pointing in the right direction! OK, is “cancellation_obj” a column object with CLOB as the datatype ? even if you just made it this: from sqlalchemy.sql import column append_column(column(‘cancellation_obj’, CLOB)) that should work. otherwise, what’s interesting here is to add a “column” without a datatype both bypasses the usual Table metadata feature, but also, bypasses if it was totally a plain text SQL string there’s logic in place to intercept the CLOB in that case also. the recipe above managed to avoid both. > GP > > On Monday, March 16, 2015 at 4:57:28 PM UTC-4, GP wrote: > I think now I (probably) know where this may be coming from. > > You asked > > is the original query a plain string and not a Core SQL expression > > The way I am forming the query is by using select , append_column, > append_whereclause and finally append_from('my_table'). I think this pretty > much generates a plain string query and not the one that's tied to a > sqlalchemy table type object. And this may be why sqlalchemy is not applying > necessary conversion because it doesn't really know the data types of the > columns I am selecting? > > Apologies if I am simplifying this too much and/or talking nonsense. > > Thanks > GP > > On Monday, March 16, 2015 at 3:49:32 PM UTC-4, GP wrote: > Thank you Michael. > > auto_covert_lobs : I ran with all three possible values: True, False, and > without supplying it. The results are the same. > > The original query is a bit more complicated than the example I gave, and is > built dynamically. But I am using sqlalchemy select, and not a plain string. > Query is of object type "sqlalchemy.select.sql.selectable.Select" (Or > "sqlalchemy.sql.expression.Select"?), if it helps. > > Here is what the query object value looks like: > SELECT CAST(contract_id AS FLOAT) AS contract_id, cancel_dt AS cancel_dt, > cancellation_obj AS cancellation_obj FROM contract_cancellation WHERE > updated_ts BETWEEN :updated_ts_1 AND :updated_ts_2 > > Let me try calling value(). > > > Thanks > GP > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.