Should the session.update call raise an error?

-----------------------------------------------------------------------------------------------

import sqlalchemy as sa

engine = sa.create_engine('sqlite:///')
metadata = sa.BoundMetaData(engine)

usersTable = sa.Table('users', metadata,
   sa.Column('id', sa.Integer, primary_key=True),
   sa.Column('name', sa.String(100))
)

usersTable.create()

class User(object):
   def __init__(self, id, name):
       self.id = id
       self.name = name


sa.mapper(User, usersTable)

session = sa.create_session(bind_to=engine)

user = User(42, 'douglas')

session.save(user)
session.flush()

for u in session.query(User).select():
   print u.id, u.name

user = session.query(User).get(42)
user.id = 1
session.update(user)
session.flush()

for u in session.query(User).select():
   print u.id, u.name

-----------------------------------------------------------------------------------------------

The log system (toggled with echo=true on the engin creation) show me
that
session.update is a no-op

-----------------------------------------------------------------------------------------------
2006-12-28 13:13:44,509 INFO sqlalchemy.engine.base.Engine.0x..14 BEGIN
2006-12-28 13:13:44,551 INFO sqlalchemy.engine.base.Engine.0x..14
COMMIT
-----------------------------------------------------------------------------------------------

If I change my code to:
-----------------------------------------------------------------------------------------------
user = session.query(User).get(42)
user.id = 1
user.name = 'zaphod'
session.update(user)
session.flush()
-----------------------------------------------------------------------------------------------

I obtain:
-----------------------------------------------------------------------------------------------
Traceback (most recent call last):
sqlalchemy.exceptions.ConcurrentModificationError: Updated rowcount 0
does not match number of objects updated 1
-----------------------------------------------------------------------------------------------

I miss something... can you help me?

thanks in advance
david


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to