Sergey Fedoseev
4dfd6b88d5
Refs #28459 -- Improved performance of FlatValuesListIterable.
2017-08-22 11:26:07 -04:00
Sergey Fedoseev
8a99a7d2d5
Simplified RelatedPopulator.populate().
2017-08-15 09:48:07 -04:00
Sergey Fedoseev
6542999c54
Removed redundant condition in QuerySet.resolve_expression().
2017-08-15 09:44:27 -04:00
Paulo
bfb746f983
Refs #16043 -- Refactored internal fields value cache.
...
* Removed all hardcoded logic for _{fieldname}_cache.
* Added an internal API for interacting with the field values cache.
Thanks carljm and MarkusH for support.
2017-08-10 12:06:02 -04:00
Sergey Fedoseev
fb0bdff981
Refs #28459 -- Improved performance of ValuesIterable.
2017-08-08 11:02:59 +05:00
Sergey Fedoseev
ba1d82df63
Refs #28459 -- Improved performance of select_related() when model is prefetched from its parent.
2017-08-07 18:55:13 -04:00
Sergey Fedoseev
ca46f4688c
Refs #28459 -- Improved performance of SQLCompiler.results_iter().
2017-08-07 17:06:15 -04:00
Sergey Fedoseev
7bd9639406
Simplified check that pk is fetched in RawQuerySet.__iter__().
2017-08-02 08:56:16 -04:00
Sergey Fedoseev
2d136ede8a
Fixed #28459 -- Improved performance of ValuesListIterable.
2017-08-01 14:44:02 -04:00
Anssi Kääriäinen
6155bc4a51
Refs #20880 -- Removed non-cloning logic from Query.clone().
2017-07-31 15:31:29 -04:00
Anssi Kääriäinen
66933a6619
Refs #20880 -- Removed non-cloning logic from QuerySet._clone().
2017-07-31 13:57:45 -04:00
Sergey Fedoseev
aadd3aeb2b
Avoided creating temporary lists for obtaining the first item.
2017-07-31 11:02:23 -04:00
Sergey Fedoseev
d17eaa868c
Removed obsolete references to add_to_query().
...
Support for it was removed in d3f00bd570
.
2017-07-25 07:52:05 -04:00
Tom Carrick
3159ad4df6
Fixed #27970 -- Allowed QuerySet.in_bulk() to fetch on fields besides primary key.
2017-07-21 08:34:35 -04:00
Ran Benita
b9f7dce84b
Fixed #28010 -- Added FOR UPDATE OF support to QuerySet.select_for_update().
2017-06-29 16:00:15 -04:00
Mariusz Felisiak
6e228d0b65
Fixed #28277 -- Added validation of QuerySet.annotate() and aggregate() args.
...
Thanks Tim Graham and Nick Pope for reviews.
2017-06-29 18:25:36 +02:00
Mads Jensen
550cb3a365
Fixed #27818 -- Replaced try/except/pass with contextlib.suppress().
2017-06-28 14:07:55 -04:00
Mariusz Felisiak
82175ead72
Fixed #28293 -- Fixed union(), intersection(), and difference() when combining with an EmptyQuerySet.
...
Thanks Jon Dufresne for the report and Tim Graham for the review.
2017-06-13 08:16:16 +02:00
Tim Graham
5a52d932ef
Replaced Model._get_pk_val() with pk property.
...
Model.pk was added after _get_pk_val() and many places weren't simplified.
2017-06-05 15:20:34 -04:00
François Freitag
edee5a8de6
Fixed #27639 -- Added chunk_size parameter to QuerySet.iterator().
2017-06-01 17:50:41 -04:00
Matthias Erll
eee34ef64c
Fixed #22550 -- Prohibited QuerySet.last()/reverse() after slicing.
2017-05-31 19:34:56 -04:00
Jon Dufresne
21046e7773
Fixed #28249 -- Removed unnecessary dict.keys() calls.
...
iter(dict) is equivalent to iter(dict.keys()).
2017-05-27 19:08:46 -04:00
Tom
7afb476469
Fixed #28226 -- Replaced use of str.join() with concatenation.
2017-05-27 13:59:05 -04:00
Alex
37ab3c3f9d
Fixed #28222 -- Allowed settable properties in QuerySet.update_or_create()/get_or_create() defaults.
2017-05-27 12:41:38 -04:00
Mariusz Felisiak
99df304c85
Fixed #28206 -- Fixed RawQuerySet crash on a model with a mixed case db_column pk on Oracle.
...
Thanks Tim Graham for the review.
2017-05-18 19:11:23 +02:00
François Freitag
88336fdbb5
Fixed #28062 -- Added a setting to disable server-side cursors on PostgreSQL.
...
When a connection pooler is set up in transaction pooling mode, queries
relying on server-side cursors fail. The DISABLE_SERVER_SIDE_CURSORS
setting in DATABASES disables server-side cursors for this use case.
2017-05-06 06:59:04 -04:00
François Freitag
c0a2b9508a
Fixed #27554 -- Fixed prefetch_related() crash when fetching relations in nested Prefetches.
2017-05-04 09:17:29 -04:00
Simon Charette
c9159a082e
Refs #20939 -- Removed the Query._prepare_as_filter_value() hack.
2017-04-25 23:43:33 -04:00
Simon Charette
ec50937bcb
Refs #20939 -- Removed the Query._forced_pk hack.
2017-04-25 23:43:33 -04:00
Claude Paroz
43b4a1618e
Fixed #28096 -- Allowed prefetch calls with ModelIterable subclasses
...
Regression in 7ec330eeb9
.
Thanks Tim Graham for the review.
2017-04-19 19:32:46 +02:00
Mads Jensen
ed0cbc8d8b
Refs #23919 -- Removed some Python 2 compatibility code and comments.
2017-03-27 13:12:27 -04:00
Mariusz Felisiak
1b6f05e91f
Fixed #21160 -- Fixed QuerySet.in_bulk() crash on SQLite when requesting more than 999 ids.
...
Thanks Andrei Picus and Anssi Kääriäinen for the initial patch
and Tim Graham for the review.
2017-03-27 18:43:40 +02:00
Anton Samarchyan
60e52a047e
Refs #27656 -- Updated django.db docstring verbs according to PEP 257.
2017-02-28 09:17:27 -05:00
Tim Graham
29f607927f
Fixed spelling of "nonexistent".
2017-02-03 08:01:45 -05:00
Vytis Banaitis
8838d4dd49
Refs #23919 -- Replaced kwargs.pop() with keyword-only arguments.
2017-02-01 11:41:56 -05:00
Claude Paroz
6e55e1d88a
Refs #23919 -- Replaced six.reraise by raise
2017-01-22 20:08:04 +01:00
Simon Charette
4c5ed3e683
Refs #23919 -- Removed __nonzero__() methods (for Python 2).
...
Thanks Tim for the review.
2017-01-19 11:26:26 -05:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Claude Paroz
2b281cc35e
Refs #23919 -- Removed most of remaining six usage
...
Thanks Tim Graham for the review.
2017-01-18 21:33:28 +01:00
Claude Paroz
7b2f2e74ad
Refs #23919 -- Removed six.<various>_types usage
...
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Tim Graham
b70094f040
Refs #26226 -- Removed support for related manager classes without a _apply_rel_filters() method.
...
Per deprecation timeline.
2017-01-17 20:52:03 -05:00
Florian Apolloner
84c1826ded
Fixed #27718 -- Added QuerySet.union(), intersection(), difference().
...
Thanks Mariusz Felisiak for review and Oracle assistance.
Thanks Tim Graham for review and writing docs.
2017-01-14 08:32:07 -05:00
François Freitag
f3b7c05936
Refs #16614 -- Made QuerySet.iterator() use server-side cursors on PostgreSQL.
...
Thanks to Josh Smeaton for the idea of implementing server-side cursors
in PostgreSQL from the iterator method, and Anssi Kääriäinen and Kevin
Turner for their previous work. Also Simon Charette and Tim Graham for
review.
2017-01-11 09:25:37 -05:00
Adam Chainz
8d94d575f8
Used @cached_property in RawQuerySet.
2016-12-23 10:12:48 -05:00
Adam Chainz
6ebf8f9057
Refs #27624 -- Made QuerySet._prefetch_related_lookups immutable.
2016-12-23 09:58:22 -05:00
Keda87
48826aa541
Fixed #27546 -- Removed hardcoded class names in __repr__() methods.
2016-12-01 08:11:09 -05:00
Adam Chainz
e044026dce
Fixed #27499 -- Made Prefetches pickle without evaluating their QuerySet.
2016-11-23 11:23:14 -05:00
Tim Graham
2e5fbe889f
Cleaned up some __getstate__() docstrings.
2016-11-23 09:45:21 -05:00
Tim Graham
1bc249c2a6
Fixed #20939 -- Simplified query generation by converting QuerySet to Query.
...
Thanks Anssi Kääriäinen for the initial patch and Anssi, Simon Charette,
and Josh Smeaton for review.
2016-10-28 11:20:23 -04:00
David Barragán Merino
b3bd3aa07c
Fixed #27385 -- Fixed QuerySet.bulk_create() on PostgreSQL when the number of objects is a multiple plus one of batch_size.
2016-10-25 19:21:08 -04:00
Tim Graham
50864b402b
Removed unused branch in ModelIterable.__iter__().
...
Unknown if it was ever used.
2016-10-15 10:19:47 -04:00
Tim Graham
274b227796
Removed DatabaseFeatures.can_combine_inserts_with_and_without_auto_increment_pk.
...
Unused (always False) after 29132ebdef
.
2016-10-14 17:18:28 -04:00
Tim Graham
8997750c43
Removed unused QuerySet.value_annotation attribute.
...
Unused since 5008a4db44
.
2016-10-14 16:46:37 -04:00
François Freitag
1db1f74617
Refs #27118 -- Reallowed using pk in QuerySet.get/update_or_create().
2016-10-04 10:10:39 -04:00
François Freitag
a5e13a0b92
Fixed #27118 -- Made QuerySet.get_or_create()/update_or_create() error for a non-field in their arguments.
2016-09-24 20:16:16 -04:00
Tim Graham
f4bde7d9a1
Removed unused Prefetch.get_current_prefetch_through().
...
Unused since its introduction in f51c1f5900
.
2016-09-23 17:11:15 -04:00
Berker Peksag
3c97ba2a0d
Replaced property() usage with decorator in a couple places.
2016-08-24 17:23:16 -04:00
Ian Foote
39f35d4b9d
Fixed #25871 -- Added expressions support to QuerySet.values().
2016-08-18 16:05:15 -04:00
Ian Foote
698be78d74
Fixed #24854 -- Refactored QuerySet._values
...
Added django.db.models.sql.query.Query.set_values() method to handle
query mutation.
2016-08-16 10:03:40 +10:00
Simon Charette
b8e6e1b43b
Fixed #26500 -- Added SKIP LOCKED support to select_for_update().
...
Thanks Tim for the review.
2016-08-08 12:01:43 -04:00
Sjoerd Job Postmus
3246d2b4bb
Fixed #27026 -- Fixed state initialization of bulk_create() objects if can_return_ids_from_bulk_insert.
2016-08-06 10:24:57 -04:00
Simon Charette
271bfe65d9
Fixed #26916 -- Fixed prefetch_related when using a cached_property as to_attr.
...
Thanks Trac alias karyon for the report and Tim for the review.
2016-07-19 16:05:07 -04:00
Jensen Cochran
d44afd8892
Fixed #26804 -- Fixed a race condition in QuerySet.update_or_create().
2016-07-14 12:10:19 -04:00
Kenneth
841cb45847
Fixed #26884 -- Evaluated callables in QuerySet.update_or_create()'s defaults when updating.
2016-07-12 22:09:53 -04:00
David Sanders
a84344bc53
Fixed #19513 , #18580 -- Fixed crash on QuerySet.update() after annotate().
2016-06-29 14:08:13 -04:00
Will Koster
9899347641
Fixed #26638 -- Allowed callable arguments for QuerySet.get_or_create()/update_or_create() defaults.
2016-06-03 10:00:53 -04:00
Simon Charette
53a5fb3cc0
Fixed #26676 -- Prevented prefetching to_attr from caching its result in through attr.
...
Thanks Ursidours for the report.
2016-05-31 14:32:58 -04:00
Josh Smeaton
2a4af0ea43
Fixed #25774 -- Refactor datetime expressions into public API
2016-05-18 20:14:58 +10:00
Tim Graham
3642835bde
Removed redundant code in QuerySet._batched_insert().
2016-05-14 06:42:50 -04:00
Simon Charette
7ec330eeb9
Refs #26565 -- Errored nicely when using Prefetch with a values() queryset.
...
Thanks Maxime Lorant for the report and Anssi for the suggestion.
2016-05-03 09:28:31 -04:00
Anssi Kääriäinen
7f51876f99
Fixed #26207 -- Replaced dynamic classes with non-data descriptors for deferred instance loading.
2016-04-29 13:06:32 -04:00
Tim Graham
df8d8d4292
Fixed E128 flake8 warnings in django/.
2016-04-08 09:51:06 -04:00
Tim Graham
2cd2d18851
Fixed W503 flake8 warnings.
2016-04-04 17:14:26 -04:00
Tim Graham
1c8c0837c6
Sorted single letter imports per the latest version of isort.
2016-03-28 11:45:31 -04:00
Jason Parrott
4c1c93032f
Fixed #26373 -- Fixed reverse lookup crash with a ForeignKey to_field in a subquery.
2016-03-19 17:54:29 -04:00
Simon Charette
c92123cc1d
Fixed #26226 -- Made related managers honor the queryset used for prefetching their results.
...
Thanks Loïc for the suggested improvements and Tim for the review.
2016-03-02 16:10:18 -05:00
acrefoot
04240b2365
Refs #19527 -- Allowed QuerySet.bulk_create() to set the primary key of its objects.
...
PostgreSQL support only.
Thanks Vladislav Manchev and alesasnouski for working on the patch.
2016-03-02 14:29:09 -05:00
Attila Tovt
5e2c4d7afb
Fixed #26264 -- Fixed prefetch_related() crashes with values_list(flat=True)
2016-02-26 19:26:15 -05:00
Adam Chainz
ef33bc2d4d
Fixed #25279 -- Made prefetch_related_objects() public.
2016-02-26 14:55:01 -05:00
Anssi Kääriäinen
46ecfb9b3a
Fixed #26196 -- Made sure __in lookups use to_field as default.
...
Thanks Simon Charette for the test.
2016-02-11 11:09:08 -05:00
François Freitag
bdbe50a491
Fixed #25546 -- Prevented duplicate queries with nested prefetch_related().
2016-01-26 07:20:13 -05:00
Anderson Resende
b5f8c81ce1
Fixed #26026 -- Fixed isinstance crash comparing EmptyQuerySet to non-QuerySet.
2016-01-07 10:57:05 -05:00
Bryan Marty
62ca2dea04
Fixed #8065 -- Made id_list an optional argument for QuerySet.in_bulk().
2015-12-26 17:57:19 -05:00
Ed Bartosh
423b3afce4
Fixed #25939 -- Removed redundant transaction in QuerySet.update_or_create().
...
There is no need to wrap the save() call in transaction.atomic() as
it's already done down the call stack in Model.save_base().
2015-12-14 19:41:11 -05:00
Simon Charette
4a9c32f5ee
Refs #25693 -- Avoided redundant calls to get_fields() in `to_attr` validation.
2015-11-11 12:25:10 -05:00
Ian Foote
4608573788
Fixed #25693 -- Prevented data loss with Prefetch and ManyToManyField.
...
Thanks to Jamie Matthews for finding and explaining the bug.
2015-11-10 12:12:07 -05:00
Tim Graham
e0837f2cb1
Fixed #25508 -- Modified QuerySet.__repr__() to disambiguate it from a list.
2015-10-06 12:38:34 -04:00
Alex Hill
134ca4d438
Fixed #24509 -- Added Expression support to SQLInsertCompiler
2015-09-22 23:35:24 +10:00
Nick Pope
1743efbe62
Fixed typos in django/db/models/query.py docstrings.
2015-09-07 15:47:02 -04:00
Gavin Wahl
627c7eb7bf
Fixed #25335 -- Fixed regression where QuerySet.iterator() didn't return an iterator.
2015-09-03 07:35:22 -04:00
Y3K
cbcf78fa94
Fixed #25252 -- Added friendly error message on incorrect .select_related() use
...
Using select_related() after .values() or .values_list() is not possible
because .values() or .values_list() already got the values they need.
2015-08-31 15:13:59 +10:00
Matt Johnson
e063ac2fae
Fixed #12768 -- Fixed QuerySet.raw() regression on FK with custom db_column.
2015-07-23 18:07:38 -04:00
Simon Charette
07577a2d05
Fixed #25081 -- Prevented DISTINCT ON ordering from being cleared in get().
...
Thanks to pdewacht for the patch.
2015-07-09 16:00:52 -04:00
William Schwartz
9a5cfa05a0
Fixed #24997 -- Enabled bulk_create() on proxy models
2015-07-02 13:53:51 -04:00
Anssi Kääriäinen
9ed82154bd
Fixed #23791 -- Corrected object type check for pk__in=qs
...
When the pk was a relation field, qs.filter(pk__in=qs) didn't work.
In addition, fixed Restaurant.objects.filter(place=restaurant_instance),
where place is an OneToOneField and the primary key of Restaurant.
A big thank you to Josh for review and to Tim for review and cosmetic
edits.
Thanks to Beauhurst for commissioning the work on this ticket.
2015-06-29 07:49:31 -04:00
Gagaro
74261bc593
Fixed #24873 -- Prevented nested Prefetch objects from being overwritten.
2015-06-18 15:42:47 -04:00
Alexander Sosnovskiy
04e8d890ae
Fixed #16891 -- Made Model/QuerySet.delete() return the number of deleted objects.
2015-05-22 13:27:16 -04:00
Piotr Jakimiak
4157c502a5
Removed unnecessary arguments in .get method calls
2015-05-13 20:51:18 +02:00
Anssi Kääriäinen
8f30556329
Renamed Field.rel attribute to remote_field
...
Field.rel is now deprecated. Rel objects have now also remote_field
attribute. This means that self == self.remote_field.remote_field.
In addition, made the Rel objects a bit more like Field objects. Still,
marked ManyToManyFields as null=True.
2015-03-25 08:16:12 -04:00
Marc Tamlyn
4755f8fc25
Fixed #24343 -- Ensure db converters are used for foreign keys.
...
Joint effort between myself, Josh, Anssi and Shai.
2015-02-20 11:35:51 +00:00