On 4/4/15 11:27 AM, biohege...@gmail.com wrote:
> Hi,
>
> I get a strange error when querying a many-to-many relationship
> (Protein - Omim / protein - omim).
> sqlalchemy 0.9.9
>
> o=Omim.query.filter(Omim.acc=="157140").one() # this is OK
> o.proteins # this gives an error
>
> 2015-04-04 17:16:09,984 INFO sqlalchemy.engine.base.Engine SELECT
> protein.id AS protein_id, protein.acc AS protein_acc,
> protein.entry_name AS protein_entry_name, protein.gene_name AS
> protein_gene_name, protein.is_human AS protein_is_human,
> protein.is_membrane AS protein_is_membrane, protein.is_reviewed AS
> protein_is_reviewed, protein.sprot_str AS protein_sprot_str
> FROM protein, omim_assoc
> WHERE %s = omim_assoc.omim_id AND protein.id = omim_assoc.protein_id
> 2015-04-04 17:16:09,985 INFO sqlalchemy.engine.base.Engine (16083L,)
> Traceback (most recent call last):
> [skipped]
>   File
> "/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.9.9-py2.7-linux-x86_64.egg/sqlalchemy/orm/strategies.py",
> line 169, in fetch_col
>     dict_[key] = row[col]
> ValueError: int_to_boolean only accepts None, 0 or 1
>
> ----
> However, when querying this in mysql client:
> SELECT protein.id AS protein_id FROM protein, omim_assoc WHERE 16083 =
> omim_assoc.omim_id AND protein.id = omim_assoc.protein_id;
> No problem, the protein is found.
>
> Moreover, if I query Omim with a different ac, it works.
>
> ----
> I have no idea how to debug...

you are using the Boolean() type in your table metadata for the column
called "acc" and you need to change it to be the type "Integer()";
additionally, in your query, you need to refer to this value as an
integer, 'Omin.acc==157140', without quotes around the numeric value.



>
> Thanks for your help in advance,
> Tamas
> -- 
> 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
> <mailto:sqlalchemy+unsubscr...@googlegroups.com>.
> To post to this group, send email to sqlalchemy@googlegroups.com
> <mailto: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.

Reply via email to