GP <[email protected]> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.