[Sqlalchemy-tickets] Issue #3405: query.update check, warning in 0.9 execption in 1.0, incorrect fo
Brought to you by:
zzzeek
|
From: Mike B. <iss...@bi...> - 2015-05-01 01:18:49
|
New issue 3405: query.update check, warning in 0.9 execption in 1.0, incorrect for pypy https://bitbucket.org/zzzeek/sqlalchemy/issue/3405/queryupdate-check-warning-in-09-execption Mike Bayer: ``` #!python from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class A(Base): __tablename__ = 'a' id = Column(Integer, primary_key=True) data = Column(String) e = create_engine("sqlite://", echo=True) Base.metadata.create_all(e) s = Session(e) s.query(A).update({"data": "foo"}) ``` run w/ pypy: ``` #! Traceback (most recent call last): File "app_main.py", line 75, in run_toplevel File "test.py", line 19, in <module> s.query(A).update({"data": "foo"}) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/query.py", line 2939, in update self, synchronize_session, values, update_args) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/persistence.py", line 1183, in factory }, synchronize_session, query, values, update_kwargs) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/persistence.py", line 1069, in _factory return klass(*arg) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/persistence.py", line 1173, in __init__ super(BulkUpdate, self).__init__(query) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/persistence.py", line 1034, in __init__ self._validate_query_state() File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/persistence.py", line 1052, in _validate_query_state (methname, ) InvalidRequestError: Can't call Query.update() or Query.delete() when join(), outerjoin(), select_from(), or from_self() has been called ``` because we are testing `() is ()`, bzzt |