Skip to content

expunge after delete() fails #3139

Closed
Closed
@sqlalchemy-bot

Description

@sqlalchemy-bot
Collaborator

Migrated issue, originally created by Michael Bayer (@zzzeek)

from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, object_session

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String)


if __name__ == "__main__":
    engine = create_engine("sqlite:///:memory:", echo=False)
    Base.metadata.create_all(engine)
    Session = sessionmaker(bind=engine)
    session = Session()

    ed = User(name="ed")

    session.add(ed)

    session.flush()

    session.delete(ed)

    session.flush()

    # should raise, or otherwise actually expunge
    session.expunge(ed)

    assert object_session(ed) is None
    assert ed not in session

Activity

sqlalchemy-bot

sqlalchemy-bot commented on Jul 24, 2014

@sqlalchemy-bot
CollaboratorAuthor

Changes by Michael Bayer (@zzzeek):

  • edited description
sqlalchemy-bot

sqlalchemy-bot commented on Jul 24, 2014

@sqlalchemy-bot
CollaboratorAuthor

Changes by Michael Bayer (@zzzeek):

  • added labels: orm
sqlalchemy-bot

sqlalchemy-bot commented on Oct 19, 2014

@sqlalchemy-bot
CollaboratorAuthor

Changes by Michael Bayer (@zzzeek):

  • edited description
sqlalchemy-bot

sqlalchemy-bot commented on Oct 19, 2014

@sqlalchemy-bot
CollaboratorAuthor

Michael Bayer (@zzzeek) wrote:

  • Fixed bug where :meth:.Session.expunge would not fully detach
    the given object if the object had been subject to a delete
    operation that was flushed, but not committed. This would also
    affect related operations like :func:.make_transient.
    fixes expunge after delete() fails #3139

38bc809

sqlalchemy-bot

sqlalchemy-bot commented on Oct 19, 2014

@sqlalchemy-bot
CollaboratorAuthor

Changes by Michael Bayer (@zzzeek):

  • changed status to closed
added this to the 1.0 milestone on Nov 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @sqlalchemy-bot

        Issue actions

          expunge after delete() fails · Issue #3139 · sqlalchemy/sqlalchemy