| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-04-18 | Fixed #37028 -- Added BitAnd(), BitOr(), and BitXor() aggregates. | Mariusz Felisiak | |
| 2026-02-27 | Fixed #36946 -- Respected test database name when running tests in parallel ↵ | Sage Abdullah | |
| on SQLite. The "spawn" and "forkserver" multiprocessing modes were affected. | |||
| 2026-02-12 | Improved error message in SQLite ↵ | Adam Johnson | |
| `DatabaseOperations.check_expression_support()`. | |||
| 2026-02-12 | Optimized SQLite `DatabaseOperations.check_expression_support()`. | Adam Johnson | |
| Avoided reconstructing the same tuples on every call by defining them as module-level constants. | |||
| 2026-01-28 | Fixed #36233 -- Avoided quantizing integers stored in DecimalField on SQLite. | Samriddha9619 | |
| Co-authored-by: Simon Charette <charette.s@gmail.com> Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com> | |||
| 2026-01-18 | Applied Black's 2026 stable style. | Mariusz Felisiak | |
| https://github.com/psf/black/releases/tag/26.1.0 | |||
| 2026-01-16 | Refs #36822 -- Hoisted bulk_batch_size() implementations to base backend. | JaeHyuck Sa | |
| 2025-12-22 | Fixed #36818 -- Ensured SQLite connection before accessing max_query_params. | guro-Ishiguro | |
| Regression in 358fd21c47cdf7bda520ce73c5cfd82bba57827b. | |||
| 2025-12-12 | Fixed #36735 -- Added UUID4 and UUID7 database functions. | Lily Acorn | |
| Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2025-11-17 | Fixed #24920 -- Added support for DecimalField with no precision. | Mariusz Felisiak | |
| Thanks Lily for the review. | |||
| 2025-11-07 | Fixed #36420 -- Used actual SQLite limits in last_executed_query() quoting. | myoungjinGo | |
| 2025-10-31 | Fixed #36661 -- Added introspection of database-level delete options. | Mariusz Felisiak | |
| 2025-10-28 | Fixed #36596 -- Made parallel test runner respect django_test_skips and ↵ | Mariusz Felisiak | |
| django_test_expected_failures. | |||
| 2025-10-18 | Fixed #36671 -- Dropped support for SQLite < 3.37. | Mariusz Felisiak | |
| 2025-10-18 | Fixed #21961 -- Added support for database-level delete options for ForeignKey. | Mariusz Felisiak | |
| Thanks Simon Charette for pair programming. Co-authored-by: Nick Stefan <NickStefan12@gmail.com> Co-authored-by: Akash Kumar Sen <71623442+Akash-Kumar-Sen@users.noreply.github.com> Co-authored-by: Simon Charette <charette.s@gmail.com> | |||
| 2025-09-22 | Fixed #35453 -- Made ManyToManyField.concrete False. | Ryan P Kilby | |
| ManyToManyField was already excluded from fields, concrete_fields, and local_concrete_fields in Options. | |||
| 2025-09-14 | Refs #27222 -- Refreshed GeneratedFields values on save() initiated update. | Simon Charette | |
| This required implementing UPDATE RETURNING machinery that heavily borrows from the INSERT one. | |||
| 2025-08-28 | Refs #27222 -- Implemented ↵ | Simon Charette | |
| BaseDatabaseOperations.return_insert_columns()/fetch_returned_insert_rows(). | |||
| 2025-08-21 | Fixed #36430 -- Removed artificially low limit on single field bulk ↵ | Jacob Walls | |
| operations on SQLite. | |||
| 2025-08-12 | Remove unused OneToOneField from DatabaseWrapper.data_types. | Tim Graham | |
| OneToOneField uses the type of the related field. | |||
| 2025-07-29 | Fixed #36531 -- Added forkserver support to parallel test runner. | Mariusz Felisiak | |
| 2025-07-23 | Refs #36500 -- Rewrapped long docstrings and block comments via a script. | django-bot | |
| Rewrapped long docstrings and block comments to 79 characters + newline using script from https://github.com/medmunds/autofix-w505. | |||
| 2025-05-20 | Fixed #34262 -- Added support for AnyValue for SQLite, MySQL, Oracle, and ↵ | ontowhee | |
| Postgresql 16+. Thanks Simon Charette for the guidance and review. Thanks Tim Schilling for the documentation review. Thanks David Wobrock for investigation and solution proposals. | |||
| 2025-05-14 | Fixed #36085 -- Added JSONField support for negative array indexing on SQLite. | savanto | |
| 2025-05-08 | Fixed #36143 -- Made max_query_params respect SQLITE_LIMIT_VARIABLE_NUMBER. | Sage Abdullah | |
| Co-authored-by: Xavier Frankline <xf.xavierfrank@gmail.com> | |||
| 2025-04-30 | Fixed #36358 -- Corrected introspection of composite primary keys on SQLite. | Simon Charette | |
| Previously, any first field of a composite primary key with type `INTEGER` was incorrectly introspected as an `AutoField` due to SQLite treating `INTEGER PRIMARY KEY` as an alias for the `ROWID`. This change ensures that integer fields in composite PKs are not mistaken for auto-incrementing fields. Thanks Jacob Walls and Sarah Boyce for the reviews. | |||
| 2025-04-30 | Refs #36052, #32234 -- Removed create_test_table_with_composite_primary_key ↵ | Simon Charette | |
| flag in favor of using CompositePrimaryKey. Now that Django properly supports creating models with composite primary keys, the tests should use a `CompositePrimaryKey` field instead of a feature flag to inline backend specific SQL for creating a composite PK. Specifcially, the inspectdb's test_composite_primary_key was adjusted to use schema editor instead of per-backend raw SQL. | |||
| 2025-03-31 | Refs #28909 -- Simplified code using unpacking generalizations. | Aarni Koskela | |
| 2025-03-09 | Fixed #35487 -- Removed CASCADE from RemoveField() on PostgreSQL. | petr.prikryl | |
| Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> Co-authored-by: Adam Johnson <me@adamj.eu> Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | |||
| 2025-03-03 | Fixed #35444 -- Added generic support for Aggregate.order_by. | Chris Muthig | |
| This moves the behaviors of `order_by` used in Postgres aggregates into the `Aggregate` class. This allows for creating aggregate functions that support this behavior across all database engines. This is shown by moving the `StringAgg` class into the shared `aggregates` module and adding support for all databases. The Postgres `StringAgg` class is now a thin wrapper on the new shared `StringAgg` class. Thank you Simon Charette for the review. | |||
| 2025-02-09 | Fixed #36148 -- Enabled native tuple comparison lookups on SQLite 3.37+ and ↵ | Simon Charette | |
| Oracle 23.4+. VALUES must be explicitly specified when declaring a sequence of tuples on SQLite < 3.37 but it's not required on >= 3.37. See sqlite/sqlite@9289f51 which addressed the last remaining issue with IN. | |||
| 2025-02-09 | Refs #36148 -- Relied on a feature switch to define tuple lookups support. | Simon Charette | |
| This should allow backends more easily opt-in or out of native support and rely on the fallback if unavailable. | |||
| 2025-01-29 | Fixed #36118 -- Accounted for multiple primary keys in bulk_update ↵ | Sarah Boyce | |
| max_batch_size. Co-authored-by: Simon Charette <charette.s@gmail.com> | |||
| 2025-01-10 | Refs #36064 -- Added Model.has_db_default() to encapsulate NOT_PROVIDED checks. | Simon Charette | |
| This avoids many awkward checks against NOT_PROVIDED and provides symmetry with Field.has_default() which is also the reason why it wasn't made a property. | |||
| 2024-12-16 | Refs #35842 -- Fixed test_lookups_special_chars_double_quotes on SQLite 3.47+. | Sage Abdullah | |
| 2024-12-03 | Refs #35842 -- Fixed handling of quotes in JSONField key lookups on Oracle. | Sage Abdullah | |
| 2024-11-29 | Fixed #373 -- Added CompositePrimaryKey. | Bendeguz Csirmaz | |
| Thanks Lily Foote and Simon Charette for reviews and mentoring this Google Summer of Code 2024 project. Co-authored-by: Simon Charette <charette.s@gmail.com> Co-authored-by: Lily Foote <code@lilyf.org> | |||
| 2024-11-11 | Fixed typo in django/db/backends/sqlite3/features.py. | Mariusz Felisiak | |
| 2024-09-17 | Fixed #35762 -- Avoided unneeded quote_name() calls in SQLite introspection. | Claude Paroz | |
| Double-quoting string literals is deprecated in recent SQLite versions. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> | |||
| 2024-09-16 | Fixed #34887 -- Added support for unlimited models.CharField on SQLite. | saJaeHyukc | |
| Signed-off-by: saJaeHyukc <wogur981208@gmail.com> | |||
| 2024-04-29 | Fixed #35412 -- Dropped support for SQLite < 3.31. | Mariusz Felisiak | |
| 2024-04-16 | Fixed #35373 -- Fixed a crash when indexing a generated field on SQLite. | Simon Charette | |
| Generated fields have to be excluded from the INSERT query against the remade table including the index. Thanks Moshe Dicker for the report, David Sanders and Mariusz Felisiak for the review. | |||
| 2024-03-14 | Fixed #28541 -- Fixed migrations crash when changing primary key on SQLite. | Ben Cail | |
| 2024-03-14 | Refs #35295 -- Added BaseDatabaseOperations.bulk_insert_sql(). | Mariusz Felisiak | |
| Co-authored-by: Nick Pope <nick@nickpope.me.uk> | |||
| 2024-03-06 | Fixed #35021 -- Fixed capturing queries when using client-side parameters ↵ | Michail Chatzis | |
| binding with psycopg 3+. | |||
| 2024-02-16 | Fixed #24018 -- Allowed setting pragma options on SQLite. | Aaron Linville | |
| 2024-02-15 | Fixed #33037 -- Fixed Trunc() with offset timezones on MySQL, SQLite, Oracle. | Shafiya Adzhani | |
| 2024-01-30 | Fixed #29280 -- Made the transactions behavior configurable on SQLite. | Anže Pečar | |
| 2024-01-26 | Applied Black's 2024 stable style. | Mariusz Felisiak | |
| https://github.com/psf/black/releases/tag/24.1.0 | |||
| 2024-01-16 | Fixed #35111 -- Fixed compilation of DateField __in/__range rhs on SQLite ↵ | Simon Charette | |
| and MySQL. Also removed tests that ensured that adapt_(date)timefield backend operations where able to deal with expressions when it's not the case for any other adapt methods. | |||
