Comment 11 for bug 1814199

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to oslo.db (stable/queens)

Reviewed: https://review.openstack.org/641724
Committed: https://git.openstack.org/cgit/openstack/oslo.db/commit/?id=c015a89f34f6f3e339439424e0d96002c60ced49
Submitter: Zuul
Branch: stable/queens

commit c015a89f34f6f3e339439424e0d96002c60ced49
Author: Mike Bayer <email address hidden>
Date: Fri Feb 1 11:53:26 2019 -0500

    Resolve SAWarning in Query.soft_delete()

    We currently see a lot of warnings like this from
    the soft_delete() method:

      sqlalchemy.exc.SAWarning: Evaluating non-mapped column expression
      'updated_at' onto ORM instances; this is a deprecated use case.
      Please make use of the actual mapped columns in ORM-evaluated
      UPDATE / DELETE expressions.

    This is because the "evaluate" synchronization strategy would like
    to search for objects and update them based on the UPDATE criteria
    passed, however the columns given, literal_column('id'),
    literal_column('updated_at'), are not mapped to anything. The
    evaluator has to make a guess that the string contained in these
    expressions should be matched to a mapped attribute on the given
    entity and this guess was first removed in [1], then added back in
    [2] with a warning (likely since oslo.db is invoking it).

    This uses the actual entity-mapped column for the query rather
    than the literal string column.

    [1] https://docs.sqlalchemy.org/en/latest/changelog/changelog_12.html#change-b1e620dece39006ab44c47044e9a6fee
    [2] https://docs.sqlalchemy.org/en/latest/changelog/changelog_12.html#change-dff3a469788c81a46440584406cb22be

    Change-Id: I192e84ce757d12d33085a209dd58d8ea46fb90fb
    Closes-Bug: #1814199
    (cherry picked from commit af4b2263e4852de2bd4e66848a18be4d2282bacc)
    (cherry picked from commit ddc4129a6dfdc16296d16e052c882717a4125611)