I built 1.0.7dev from source and can verify that it resolved the issue we were seeing.
Thanks! Troy On Wednesday, July 1, 2015 at 12:20:17 PM UTC-5, Michael Bayer wrote: > > resolved in master / rel_1_0 > > > On 7/1/15 1:01 PM, Mike Bayer wrote: > > after two reports, it is: > https://bitbucket.org/zzzeek/sqlalchemy/issue/3469/comparison-in-persistencepy-can-trip-up-on > > > > On 7/1/15 12:23 PM, Troy Toman wrote: > > I am seeing a behavior similar to Issue #3402 but it exists in SQLAlchemy > 1.0.6 and it involves using geoalchemy2. I have filed an issue there but > since it is behaving differently in sqlalchemy 0.9.3, I wanted to raise it > here as well. > > Test program: > > import geoalchemy2 > > > > from sqlalchemy import * >> from sqlalchemy.orm import * >> from sqlalchemy.ext.declarative import declarative_base > > > > Base = declarative_base() >> user = 'user' >> password = 'pword' >> host = 'localhost' >> port = '5432' >> db_name = 'dev' >> db_uri = 'postgresql+psycopg2://%s:%s@%s:%s/%s' % (user, >> password, >> host, >> port, >> db_name) >> engine = create_engine(db_uri) >> Base.metadata.create_all(engine) >> >> class A(Base): >> __tablename__ = 'tests' >> id = Column(Integer, primary_key=True) >> geom = Column(geoalchemy2.Geometry('POLYGON')) >> >> s = Session(engine) >> A.__table__.create(engine) >> s.add(A(id = 1, geom='POLYGON((0 0,1 0,1 1,0 1,0 0))')) >> s.commit() >> a1 = s.query(A).first() >> a1.geom = None >> s.commit() >> A.__table__.drop(engine) > > > Trace: > >> Traceback (most recent call last): >> > File "sqatest.py", line 38, in <module> >> s.commit() >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line >> 790, in commit >> self.transaction.commit() >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line >> 392, in commit >> self._prepare_impl() >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line >> 372, in _prepare_impl >> self.session.flush() >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line >> 2004, in flush >> self._flush(objects) >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line >> 2122, in _flush >> transaction.rollback(_capture_exception=True) >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", >> line 60, in __exit__ >> compat.reraise(exc_type, exc_value, exc_tb) >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line >> 2086, in _flush >> flush_context.execute() >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line >> 373, in execute >> rec.execute(self) >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line >> 532, in execute >> uow >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", >> line 170, in save_obj >> mapper, table, update) >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", >> line 630, in _emit_update_statements >> lambda rec: ( >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", >> line 459, in _collect_update_commands >> value, state.committed_state[propkey]): >> File >> "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line >> 2726, in __bool__ >> raise TypeError("Boolean value of this clause is not defined") >> TypeError: Boolean value of this clause is not defined > > > This only happens when a 'geom' attribute is defined with a valid > geometry and then assigned 'None' > > Assigning an initial geom value of None does not cause an issue. It also > works fine as written in sqlalchemy 0.9.3 > > I would love to know if this needs to be addressed in geoalchemy2 or is > truly a sqlalchemy 1.0 > -- > 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+...@googlegroups.com <javascript:>. > To post to this group, send email to sqlal...@googlegroups.com > <javascript:>. > 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+...@googlegroups.com <javascript:>. > To post to this group, send email to sqlal...@googlegroups.com > <javascript:>. > 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.