For some reason if I use CAST directly in PG, it complains "cannot
change data type of view column".  Its rather cumbersome but it does
seem to at least work in SQLAlchemy.  Thanks.

On Jul 5, 3:43 pm, Michael Bayer <zzz...@gmail.com> wrote:
> any expression in SQL can be coerced into a particular type using
> casts.   PG supports the SQL standard CAST operator which SQLAlchemy
> provides as expression.cast, i.e.
>
> from sqlalchemy import cast, Integer
>
> cast(somevalue + someothervalue, Integer)
>
> This will instruct PG to cast the value as integer and also allow
> SQLAlchemy to treat the expression construct as an int in python.
>
> On Jul 5, 1:53 pm, Pongetti <owendea...@gmail.com> wrote:
>
> > Hello,
>
> > I have a View in a Postgres DB with some calculated columns.  In
> > Postgres the column types are getting "lost", so essentially, despite
> > all the math being on integers, Postgres is spitting out columns with
> > the type Numeric instead of type Integer.
>
> > Using SQLAlchemy, I am therefore getting values wrapped in Decimal
> > functions rather than the native Python Int type.  So for example, I
> > get Decimal("4") instead of just 4.
>
> > I have been using autoload but even if I override the column types in
> > SQLAlchemy to be Integers, I am still getting Decimal("n").
>
> > Any help on how I could best get a plain old int would be most
> > appreciated.  The ORM is a bit overkill for my project, I really just
> > need the SQL Expression language, so a solution not involving the ORM
> > would be preferred, though I will use it if I need to.
>
> > Thank you!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to