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.

Reply via email to