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+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 <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