OMG, I didn't read the second sentence on the page. Sorry for that.

Klaus


On 19 Mai, 19:21, Michael Bayer <[email protected]> wrote:
> log in as guest/guest
>
> On May 19, 2009, at 11:52 AM, klaus wrote:
>
>
>
> > How do I get the privileges for that?
>
> > On 19 Mai, 17:33, Michael Bayer <[email protected]> wrote:
> >> it seems like a small bug and you can file a ticket for that,  but  
> >> the
> >> intent is that you'd be using None to represent NULL in the general
> >> case.
>
> >> On May 19, 2009, at 11:21 AM, klaus wrote:
>
> >>> Hi!
>
> >>> Here is a small (and not very useful) example to demonstrate the
> >>> problem. A table "user" contains a reference to itself (so that I
> >>> don't need a second table). This foreign key translates to a  
> >>> relation.
> >>> When I compare the corresponding attribute to null(), I get a
> >>> traceback. It all works if I compare it to None instead.
>
> >>> from sqlalchemy.engine import create_engine
> >>> from sqlalchemy.schema import MetaData, Table, Column, ForeignKey
> >>> from sqlalchemy.types import Integer
> >>> from sqlalchemy.orm import mapper, relation, create_session
> >>> from sqlalchemy.sql import null
>
> >>> engine = create_engine("postgres://...")
> >>> metadata = MetaData(engine)
>
> >>> user = Table("user", metadata,
> >>>             Column("id", Integer, nullable=False, primary_key=True),
> >>>             Column("fk", Integer, ForeignKey("public.user.id")),
> >>>             schema="public", useexisting=True, autoload=False)
>
> >>> class User(object):
> >>>    pass
>
> >>> mapper(User, user, properties={"ref": relation(User,  
> >>> uselist=False)})
>
> >>> metadata.create_all()
>
> >>> session = create_session()
>
> >>> print session.query(User).filter(User.ref == null()).all()
>
> >>> metadata.drop_all()
>
> >>> (The last line is not executed.)
>
> >>> Here's the traceback:
>
> >>> Traceback (most recent call last):
> >>>  File "sqlatest.py", line 24, in ?
> >>>    print session.query(User).filter(User.ref == null()).all()
> >>>  File "/home/barthelmannk/PortaleHeadZope/sandbox/eggs/
> >>> SQLAlchemy-0.5.4p1-py2.4.egg/sqlalchemy/sql/expression.py", line  
> >>> 1253,
> >>> in __eq__
> >>>    return self.operate(operators.eq, other)
> >>>  File "/home/barthelmannk/PortaleHeadZope/sandbox/eggs/
> >>> SQLAlchemy-0.5.4p1-py2.4.egg/sqlalchemy/orm/attributes.py", line  
> >>> 120,
> >>> in operate
> >>>    return op(self.comparator, *other, **kwargs)
> >>>  File "/home/barthelmannk/PortaleHeadZope/sandbox/eggs/
> >>> SQLAlchemy-0.5.4p1-py2.4.egg/sqlalchemy/orm/properties.py", line  
> >>> 492,
> >>> in __eq__
> >>>    return _orm_annotate(self.property._optimized_compare(other,
> >>> adapt_source=self.adapter))
> >>>  File "/home/barthelmannk/PortaleHeadZope/sandbox/eggs/
> >>> SQLAlchemy-0.5.4p1-py2.4.egg/sqlalchemy/orm/properties.py", line  
> >>> 623,
> >>> in _optimized_compare
> >>>    value = attributes.instance_state(value)
> >>> AttributeError: '_Null' object has no attribute '_sa_instance_state'
>
> >>> Cheers
> >>> Klaus
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to