<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chango.git/django/contrib/postgres/fields/array.py, branch main</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/chango.git/atom?h=main</id>
<link rel='self' href='http://cgit.adnoto.dev/chango.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/'/>
<updated>2026-03-13T00:01:02Z</updated>
<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>Refs #31055 -- Adjusted passing of Field.check kwargs to ArrayField.base_field.</title>
<updated>2025-11-13T09:28:59Z</updated>
<author>
<name>Simon Charette</name>
<email>charette.s@gmail.com</email>
</author>
<published>2025-11-08T21:40:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=96ee097bd68a93e0f360326271ebe78553fae15b'/>
<id>urn:sha1:96ee097bd68a93e0f360326271ebe78553fae15b</id>
<content type='text'>
This was missed when Field.check(databases) was introduced.
</content>
</entry>
<entry>
<title>Refs #35381 -- Delegated ArrayField element prepping to base_field.get_db_prep_save.</title>
<updated>2025-10-29T19:00:52Z</updated>
<author>
<name>Clifford Gama</name>
<email>cliffygamy@gmail.com</email>
</author>
<published>2025-10-21T09:34:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=be7f68422d4c6ae568a17f1fa91aac67d284df82'/>
<id>urn:sha1:be7f68422d4c6ae568a17f1fa91aac67d284df82</id>
<content type='text'>
Previously, ArrayField always used base_field.get_db_prep_value when saving,
which could differ from how base_field prepares data for save. This change
overrides ArrayField.get_db_prep_save to delegate to the base_field's
get_db_prep_save, ensuring elements like None in JSONField arrays are saved
correctly as SQL NULL instead of JSON null.
</content>
</entry>
<entry>
<title>Replaced multi-level relative imports with absolute imports in django/.</title>
<updated>2025-10-13T21:27:07Z</updated>
<author>
<name>lyova24</name>
<email>lengthylyova@gmail.com</email>
</author>
<published>2025-08-05T11:14:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=54cfb5f328177b6fbf4eae827fbcbd757185dc85'/>
<id>urn:sha1:54cfb5f328177b6fbf4eae827fbcbd757185dc85</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #32770 -- Added system check to ensure django.contrib.postgres is installed when using its features.</title>
<updated>2025-06-18T06:36:49Z</updated>
<author>
<name>Clifford Gama</name>
<email>cliffygamy@gmail.com</email>
</author>
<published>2025-05-16T21:48:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=74b31cd26b9ad4ad85f131850a734f02aae988bb'/>
<id>urn:sha1:74b31cd26b9ad4ad85f131850a734f02aae988bb</id>
<content type='text'>
Added postgres.E005 to validate 'django.contrib.postgres' is in INSTALLED_APPS
when using:
* PostgreSQL-specific fields (ArrayField, HStoreField, range fields, SearchVectorField),
* PostgreSQL indexes (PostgresIndex and all subclasses), and
* ExclusionConstraint

The check provides immediate feedback during system checks rather than failing
later with obscure runtime and database errors.

Thanks to Simon Charette and Sarah Boyce for reviews.
</content>
</entry>
<entry>
<title>Fixed #36276 -- Omitted size=None from ArrayField.deconstruct().</title>
<updated>2025-03-25T11:02:14Z</updated>
<author>
<name>Tim Graham</name>
<email>timograham@gmail.com</email>
</author>
<published>2025-03-25T01:18:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=fecca298a2c6de22b054eaffeb4368b1167c7fd5'/>
<id>urn:sha1:fecca298a2c6de22b054eaffeb4368b1167c7fd5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Removed stray comment in ArrayField.check().</title>
<updated>2025-01-03T16:10:24Z</updated>
<author>
<name>Tim Graham</name>
<email>timograham@gmail.com</email>
</author>
<published>2025-01-03T15:30:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=a4d3f2535ec1f490c26ecf6c24b95105cd888dd9'/>
<id>urn:sha1:a4d3f2535ec1f490c26ecf6c24b95105cd888dd9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #35944 -- Handled serialization of Unicode values in ArrayField and HStoreField.</title>
<updated>2024-12-05T14:31:50Z</updated>
<author>
<name>Oleg Sverdlov</name>
<email>oleg@ols.co.il</email>
</author>
<published>2024-12-05T13:12:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=ded485464214a3f69b64402b7d82221279f80008'/>
<id>urn:sha1:ded485464214a3f69b64402b7d82221279f80008</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #29049 -- Added slicing notation to F expressions.</title>
<updated>2023-12-30T07:24:30Z</updated>
<author>
<name>Nick Pope</name>
<email>nick@nickpope.me.uk</email>
</author>
<published>2023-12-30T07:24:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=94b6f101f7dc363a8e71593570b17527dbb9f77f'/>
<id>urn:sha1:94b6f101f7dc363a8e71593570b17527dbb9f77f</id>
<content type='text'>
Co-authored-by: Priyansh Saxena &lt;askpriyansh@gmail.com&gt;
Co-authored-by: Niclas Olofsson &lt;n@niclasolofsson.se&gt;
Co-authored-by: David Smith &lt;smithdc@gmail.com&gt;
Co-authored-by: Mariusz Felisiak &lt;felisiak.mariusz@gmail.com&gt;
Co-authored-by: Abhinav Yadav &lt;abhinav.sny.2002@gmail.com&gt;</content>
</entry>
<entry>
<title>Fixed #34285 -- Fixed index/slice lookups on filtered aggregates with ArrayField.</title>
<updated>2023-02-07T12:16:41Z</updated>
<author>
<name>Nils VAN ZUIJLEN</name>
<email>nils.van-zuijlen@mailo.com</email>
</author>
<published>2023-02-06T21:46:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=ae1fe72e9b1f5fe3b05e5b670bd0c205cd305e71'/>
<id>urn:sha1:ae1fe72e9b1f5fe3b05e5b670bd0c205cd305e71</id>
<content type='text'>
Thanks Simon Charette for the review.
</content>
</entry>
</feed>
