You need to use the cast() function here to do an explicit cast on the SQL side. array([cast(node.id, BigInteger)]). The "type_" argument in most other cases only describes the type on the Python side.
Sent from my iPhone On Apr 16, 2013, at 12:42 PM, Alexander Bachmeier <alexander.bachme...@gmail.com> wrote: > I'm trying to query an array of bigint[] using SQLAlchemy 0.8 on a Postgresql > database. > > > My query looks like this: > > ways_with_node = db.query(Ways).filter(Ways.nodes.contains(array([node1.id], > type_=BigInteger))).all() > > and I'm getting the following exception: > > cursor.execute(statement, parameters) > sqlalchemy.exc.ProgrammingError: (ProgrammingError) operator does not exist: > bigint[] @> integer[] > LINE 3: WHERE ways.nodes @> ARRAY[ -710] > > It looks like the array() function isn't changing the type to BigInteger. > I've tried CHAR and the second argument remains an integer[] array. > > The query should end up looking something like this: > > select * from ways where nodes @> '{-710}'::bigint[] > > Which successfully executes as plain SQL. I've tried different variations of > the query, including: > > db.query(Ways).filter(Ways.nodes.op('@>')(array([node1.id], > type_=BigInteger))).all() > > but the result is the same exception. Since I have run out of ideas, I was > wondering if there is a bug in the array() function or if I'm doing something > wrong here. > > > -- > 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?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > -- 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?hl=en. For more options, visit https://groups.google.com/groups/opt_out.