From e7e09649761cfb4afc242c541ab403258e75edd5 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 27 Apr 2023 16:48:25 -0400 Subject: improve natural_path usage in two places Fixed loader strategy pathing issues where eager loaders such as :func:`_orm.joinedload` / :func:`_orm.selectinload` would fail to traverse fully for many-levels deep following a load that had a :func:`_orm.with_polymorphic` or similar construct as an interim member. Here we can take advantage of 2.0's refactoring of strategy_options to identify the "chop_path" concept can be simplified to work with "natural" paths alone. In addition, identified existing logic in PropRegistry that works fine, but needed the "is_unnatural" attribute to be more accurate for a given path, so we set that up front to True if the ancestor is_unnatural. Fixes: #9715 Change-Id: Ie6b3f55b6a23d0d32628afd22437094263745114 --- doc/build/changelog/unreleased_20/9715.rst | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/build/changelog/unreleased_20/9715.rst (limited to 'doc') diff --git a/doc/build/changelog/unreleased_20/9715.rst b/doc/build/changelog/unreleased_20/9715.rst new file mode 100644 index 000000000..107051b72 --- /dev/null +++ b/doc/build/changelog/unreleased_20/9715.rst @@ -0,0 +1,8 @@ +.. change:: + :tags: bug, orm + :tickets: 9715 + + Fixed loader strategy pathing issues where eager loaders such as + :func:`_orm.joinedload` / :func:`_orm.selectinload` would fail to traverse + fully for many-levels deep following a load that had a + :func:`_orm.with_polymorphic` or similar construct as an interim member. -- cgit v1.2.1