- Fix ``psycopg.errors.OperationalError.sqlstate`` can be ``None``. (`81 <https://github.com/zopefoundation/zope.sqlalchemy/issues/81>`_)
3.0
----------------
- Add support for SQLAlchemy 2.0 and for new psycopg v3 backend. (`79 <https://github.com/zopefoundation/zope.sqlalchemy/pull/79>`_)
**Breaking Changes**
- No longer allow calling ``session.commit()`` within a manual nested database transaction (a savepoint). If you want to use savepoints directly in code that is not aware of ``transaction.savepoint()`` with ``session.begin_nested()`` then use the savepoint returned by the function to commit just the nested transaction i.e. ``savepoint = session.begin_nested(); savepoint.commit()`` or use it as a context manager i.e. ``with session.begin_nested():``. (`for details see 79 <https://github.com/zopefoundation/zope.sqlalchemy/pull/79#issuecomment-1516069841>`_)
2.0
----------------
- Drop support for Python 2.7, 3.5, 3.6.
- Drop support for ``SQLAlchemy < 1.1`` (`65 <https://github.com/zopefoundation/zope.sqlalchemy/issues/65>`_)
- Add support for Python 3.10, 3.11.
1.6
----------------
- Add support for Python 2.7 on SQLAlchemy 1.4. (`71 <https://github.com/zopefoundation/zope.sqlalchemy/issues/71>`_)
1.5
----------------
- Call ``mark_changed`` also on the ``do_orm_execute`` event if the operation is an insert, update or delete. This is SQLAlchemy >= 1.4 only, as it introduced that event. (`67 <https://github.com/zopefoundation/zope.sqlalchemy/issues/67>`_)
- Fixup get transaction. There was regression introduced in 1.4. (`66 <https://github.com/zopefoundation/zope.sqlalchemy/issues/66>`_)