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 <mike...@zzzcomputing.com> 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 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 -~----------~----~----~----~------~----~------~--~---