]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Add support for multiple on-conflict clauses in inserts on SQLite
authorMasoNord <trotf233@gmail.com>
Mon, 3 Aug 2026 21:33:46 +0000 (17:33 -0400)
committerMichael Bayer <mike_mp@zzzcomputing.com>
Thu, 13 Aug 2026 01:01:17 +0000 (01:01 +0000)
commitc3efa7b70c10f79cbbd0acdc743b5b94f6996d60
tree886f18a7e5a32ab50014c2c3ccf57d661497748c
parentc9bb74277f4140a5896a370170be94de9c77f949
Add support for multiple on-conflict clauses in inserts on SQLite

Multiple on-conflict clauses support for SQLite

Fixes: #13113
### Description
Follows up to [#13113](https://github.com/sqlalchemy/sqlalchemy/issues/13113)
Add support for multiple on-conflict clauses in insert statements for SQLite database
As [CaselIT](https://github.com/CaselIT) proposed, this required a small change in `apply_to_insert()` function. I've replaced `self.append_replacing_same_type` to `lambda ex: [*ex, self]` and removed `@_on_conflict_exclusive` from `on_conflict_do_update()` and `on_conflict_do_nothing()` methods

This pull request is:
- [ ] A new feature implementation
    - Tests included

**Have a nice day!**

Closes: #13457
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/13457
Pull-request-sha: 356885a839850344cfdc0818b1d6bb64ee61c417

Change-Id: I4e184c4e57018048f97b9f7ff30deded6d9f1a9e
doc/build/changelog/unreleased_21/13113.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/sqlite/base.py
lib/sqlalchemy/dialects/sqlite/dml.py
test/dialect/sqlite/test_on_conflict.py