[orm] [bug] Fixed issue where _orm.Session.get() would bypass the identity map
and emit unnecessary SQL when with_for_update=False was passed,
rather than treating it equivalently to the default of None.
Pull request courtesy of Joshua Swanson.
[orm] [bug] Fixed issue where chained _orm.joinedload() options would not be
applied correctly when the final relationship in the chain is declared on a
base mapper and accessed through a subclass mapper in a
_orm.with_polymorphic() query. The path registry now correctly
computes the natural path when a property declared on a base class is
accessed through a path containing a subclass mapper, ensuring the loader
option can be located during query compilation.
[orm] [bug] [inheritance] Fixed issue where using _orm.Load.options() to apply a chained loader
option such as _orm.joinedload() or _orm.selectinload() with
_orm.PropComparator.of_type() for a polymorphic relationship would
not generate the necessary clauses for the polymorphic subclasses. The
polymorphic loading strategy is now correctly propagated when using a call
such as joinedload(A.b).options(joinedload(B.c.of_type(poly))) to match
the behavior of direct chaining e.g.
joinedload(A.b).joinedload(B.c.of_type(poly)).
[orm] [bug] [inheritance] Fixed issue where using chained loader options such as
_orm.selectinload() after _orm.joinedload() with
_orm.PropComparator.of_type() for a polymorphic relationship would
not properly apply the chained loader option. The loader option is now
correctly applied when using a call such as
joinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c) to eagerly
load related objects.
[typing] [bug] Fixed a typing issue where the typed members of :data:.func would return
the appropriate class of the same name, however this creates an issue for
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/24280
**Author:** [@dependabot[bot]](https://github.com/apps/dependabot)
**Created:** 5/1/2026
**Status:** ❌ Closed
**Base:** `dev` ← **Head:** `dependabot/uv/dev/sqlalchemy-2.0.49`
---
### 📝 Commits (1)
- [`a0ccd3d`](https://github.com/open-webui/open-webui/commit/a0ccd3d2eaa100a05970c02c54fb3e1a4cb75997) Bump sqlalchemy from 2.0.48 to 2.0.49
### 📊 Changes
**1 file changed** (+1 additions, -1 deletions)
<details>
<summary>View changed files</summary>
📝 `backend/requirements-min.txt` (+1 -1)
</details>
### 📄 Description
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.48 to 2.0.49.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/sqlalchemy/sqlalchemy/releases">sqlalchemy's releases</a>.</em></p>
<blockquote>
<h1>2.0.49</h1>
<p>Released: April 3, 2026</p>
<h2>orm</h2>
<ul>
<li>
<p><strong>[orm] [bug]</strong> Fixed issue where <code>_orm.Session.get()</code> would bypass the identity map
and emit unnecessary SQL when <code>with_for_update=False</code> was passed,
rather than treating it equivalently to the default of <code>None</code>.
Pull request courtesy of Joshua Swanson.</p>
<p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13176">#13176</a></p>
</li>
<li>
<p><strong>[orm] [bug]</strong> Fixed issue where chained <code>_orm.joinedload()</code> options would not be
applied correctly when the final relationship in the chain is declared on a
base mapper and accessed through a subclass mapper in a
<code>_orm.with_polymorphic()</code> query. The path registry now correctly
computes the natural path when a property declared on a base class is
accessed through a path containing a subclass mapper, ensuring the loader
option can be located during query compilation.</p>
<p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13193">#13193</a></p>
</li>
<li>
<p><strong>[orm] [bug] [inheritance]</strong> Fixed issue where using <code>_orm.Load.options()</code> to apply a chained loader
option such as <code>_orm.joinedload()</code> or <code>_orm.selectinload()</code> with
<code>_orm.PropComparator.of_type()</code> for a polymorphic relationship would
not generate the necessary clauses for the polymorphic subclasses. The
polymorphic loading strategy is now correctly propagated when using a call
such as <code>joinedload(A.b).options(joinedload(B.c.of_type(poly)))</code> to match
the behavior of direct chaining e.g.
<code>joinedload(A.b).joinedload(B.c.of_type(poly))</code>.</p>
<p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13202">#13202</a></p>
</li>
<li>
<p><strong>[orm] [bug] [inheritance]</strong> Fixed issue where using chained loader options such as
<code>_orm.selectinload()</code> after <code>_orm.joinedload()</code> with
<code>_orm.PropComparator.of_type()</code> for a polymorphic relationship would
not properly apply the chained loader option. The loader option is now
correctly applied when using a call such as
<code>joinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)</code> to eagerly
load related objects.</p>
<p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13209">#13209</a></p>
</li>
</ul>
<h2>typing</h2>
<ul>
<li><strong>[typing] [bug]</strong> Fixed a typing issue where the typed members of :data:<code>.func</code> would return
the appropriate class of the same name, however this creates an issue for</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/sqlalchemy/sqlalchemy/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/24280
Author: @dependabot[bot]
Created: 5/1/2026
Status: ❌ Closed
Base:
dev← Head:dependabot/uv/dev/sqlalchemy-2.0.49📝 Commits (1)
a0ccd3dBump sqlalchemy from 2.0.48 to 2.0.49📊 Changes
1 file changed (+1 additions, -1 deletions)
View changed files
📝
backend/requirements-min.txt(+1 -1)📄 Description
Bumps sqlalchemy from 2.0.48 to 2.0.49.
Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.