<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chango.git/django/db/backends/base/operations.py, branch devmain</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/chango.git/atom?h=devmain</id>
<link rel='self' href='http://cgit.adnoto.dev/chango.git/atom?h=devmain'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/'/>
<updated>2026-06-03T20:57:18Z</updated>
<entry>
<title>Fixed #36492 -- Restored exact boolean lookup against literals on SQLite.</title>
<updated>2026-06-03T20:57:18Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-07-06T01:19:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=4bbc27c8686f10f9556cef02dbfa9f5157fbcf56'/>
<id>urn:sha1:4bbc27c8686f10f9556cef02dbfa9f5157fbcf56</id>
<content type='text'>
Performance regression in 37e6c5b on SQLite. Just like MySQL, and presumably
Oracle, which don't have a native boolean type and incidently store booleans in
integer columns, indices on such columns cannot be used when explicit boolean
literal equalities are omitted.

Adapt the logic introduced by refs #32691 for MySQL to be used for all backends
that don't support native boolean fields instead of special casing MySQL,
SQLite, and Oracle in their own special way.

Note that review of this work surfaced that SQLite's query planner also cannot
make use of indices when dealing with expressions of form

   WHERE NOT (indexed_bool_field = false)

but that's a long standing problem unrelated to the restorative work performed
in this patch.

Thanks Klaas van Schelven for the report.
</content>
</entry>
<entry>
<title>Fixed #36727 -- Deprecated Field.get_placeholder in favor of get_placeholder_sql.</title>
<updated>2026-03-13T00:01:02Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-11-22T18:32:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=1a8fd5cf75bf855852f6bc2f75c3da9f7b145669'/>
<id>urn:sha1:1a8fd5cf75bf855852f6bc2f75c3da9f7b145669</id>
<content type='text'>
The lack of ability of the get_placeholder call chain to return SQL and
parameters separated so they can be mogrified by the backend at execution time
forced implementations to dangerously interpolate potentially user controlled
values.

The get_placeholder_sql name was chosen due to its proximity to the previous
method, but other options such as Field.as_sql were considered but ultimately
rejected due to its different input signature compared to Expression.as_sql
that might have lead to confusion.

There is a lot of overlap between what Field.get_db_prep_value and
get_placeholder_sql do but folding the latter in the former would require
changing its return signature to return expression which is a way more invasive
change than what is proposed here.

Given we always call get_db_prep_value it might still be an avenue worth
exploring in the future to offer a publicly documented interface to allow field
to take an active part in the compilation chain.

Thanks Jacob for the review.
</content>
</entry>
<entry>
<title>Added DatabaseOperations.convert_trunc_expression() hook.</title>
<updated>2026-02-28T15:01:08Z</updated>
<author>
<name>Tim Graham</name>
<email>timograham@gmail.com</email>
</author>
<published>2026-02-17T02:27:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=202eca7795710c82cd64a248650afc64f905a17e'/>
<id>urn:sha1:202eca7795710c82cd64a248650afc64f905a17e</id>
<content type='text'>
Needed on MongoDB.
</content>
</entry>
<entry>
<title>Refs #36822 -- Hoisted bulk_batch_size() implementations to base backend.</title>
<updated>2026-01-16T14:15:53Z</updated>
<author>
<name>JaeHyuck Sa</name>
<email>wogur981208@gmail.com</email>
</author>
<published>2026-01-15T13:06:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=b98075dc6205374746cf1ad6d3533b9a1d9cf22e'/>
<id>urn:sha1:b98075dc6205374746cf1ad6d3533b9a1d9cf22e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #21961 -- Added support for database-level delete options for ForeignKey.</title>
<updated>2025-10-18T13:03:50Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2025-10-18T13:03:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=0c487aa3a7b2417481bf48c1e5355c855873e210'/>
<id>urn:sha1:0c487aa3a7b2417481bf48c1e5355c855873e210</id>
<content type='text'>
Thanks Simon Charette for pair programming.

Co-authored-by: Nick Stefan &lt;NickStefan12@gmail.com&gt;
Co-authored-by: Akash Kumar Sen &lt;71623442+Akash-Kumar-Sen@users.noreply.github.com&gt;
Co-authored-by: Simon Charette &lt;charette.s@gmail.com&gt;</content>
</entry>
<entry>
<title>Fixed #36616 -- Added DatabaseOperations.adapt_durationfield_value().</title>
<updated>2025-09-23T16:36:49Z</updated>
<author>
<name>Tim Graham</name>
<email>timograham@gmail.com</email>
</author>
<published>2025-09-23T16:36:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=1acb00b26da13165e967bf2354fc917e38c382e4'/>
<id>urn:sha1:1acb00b26da13165e967bf2354fc917e38c382e4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #27222 -- Adapted RETURNING handling to be usable for UPDATE queries.</title>
<updated>2025-08-28T18:44:21Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-03-22T01:50:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=292b9e6fe8f23491680d9cc60f328562e2b1c823'/>
<id>urn:sha1:292b9e6fe8f23491680d9cc60f328562e2b1c823</id>
<content type='text'>
Renamed existing methods and abstractions used for INSERT … RETURNING
to be generic enough to be used in the context of UPDATEs as well.

This also consolidates SQL compliant implementations on
BaseDatabaseOperations.
</content>
</entry>
<entry>
<title>Refs #27222 -- Implemented BaseDatabaseOperations.return_insert_columns()/fetch_returned_insert_rows().</title>
<updated>2025-08-28T18:44:21Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-08-28T15:34:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=dc4ee9915228238bd24ce67645504f65eaf2f1fd'/>
<id>urn:sha1:dc4ee9915228238bd24ce67645504f65eaf2f1fd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #36500 -- Rewrapped long docstrings and block comments via a script.</title>
<updated>2025-07-23T23:17:55Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2025-07-23T03:41:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=69a93a88edb56ba47f624dac7a21aacc47ea474f'/>
<id>urn:sha1:69a93a88edb56ba47f624dac7a21aacc47ea474f</id>
<content type='text'>
Rewrapped long docstrings and block comments to 79 characters + newline
using script from https://github.com/medmunds/autofix-w505.
</content>
</entry>
<entry>
<title>Fixed #36085 -- Added JSONField support for negative array indexing on SQLite.</title>
<updated>2025-05-14T11:21:18Z</updated>
<author>
<name>savanto</name>
<email>savanto@users.noreply.github.com</email>
</author>
<published>2025-05-13T11:42:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=8620a3b0c79e4e8098b88f1176ed26fad0bf6c5c'/>
<id>urn:sha1:8620a3b0c79e4e8098b88f1176ed26fad0bf6c5c</id>
<content type='text'>
</content>
</entry>
</feed>
