summaryrefslogtreecommitdiff
path: root/django/db/models/sql
AgeCommit message (Collapse)Author
2013-12-22Fixed #21643 -- repeated execution of qs with F() + timedeltaAlexey Voronov
Thanks Tim Graham for review.
2013-12-18Fixed #11629 -- Deprecated callable arguments to queryset methods.Baptiste Mispelon
Callable arguments were an untested and undocumented feature.
2013-12-18Fixed #21552 -- Allowed the use of None for the iexact lookup.Denis Moskalets
Thanks Anubhav Joshi for the documentation.
2013-12-14Fixed E127 pep8 warnings.Loic Bistuer
2013-12-06Fixed #21554 -- Incorrect SQL generated when using multiple inheritance.pegler
2013-11-30Fixed comment typos.Alex Hill
2013-11-28Fixed E125 pep8 warningsChristopher Medrela
2013-11-27Used simpler queries for m2m clearing when possible.Anssi Kääriäinen
Refs #21169
2013-11-15Fixed typo and slightly improved error message when db is missing time zone ↵Loic Bistuer
definitions. Refs #21432.
2013-11-14Fixed #21432 -- DateTimeQuery now copies tzinfo when cloning.Loic Bistuer
Thanks Enrique Martínez for the report and @bmispelon for the tests.
2013-11-07Fixed #20600 -- ordered distinct(*fields) in subqueriesAnssi Kääriäinen
2013-11-07Removed non-necessary code in Compiler._setup_joins()Anssi Kääriäinen
2013-11-07Removed Query.setup_joins() and join() argument outer_if_first.Anssi Kääriäinen
Instead always create new joins as OUTER.
2013-11-07Fixed #21376 -- New implementation for query join promotion logicAnssi Kääriäinen
This commit introduced a new class JoinPromoter that can be used to abstract away join promotion problems for complex filter conditions. Query._add_q() and Query.combine() now use the new class. Also, added a lot of comments about why join promotion is done the way it is. Thanks to Tim Graham for original report and testing the changes, and for Loic Bistuer for review.
2013-11-03Fixed regressions from 36ded01527b690b5df0574492af9cfcc2ea3d1dc.Florian Apolloner
Refs #21302
2013-11-02Fixed all E261 warningscoagulant
2013-11-02Fixed #14511 -- bug in .exclude() queryAnssi Kääriäinen
2013-11-02Fixed #21302 -- Fixed unused imports and import *.Tim Graham
2013-11-02Fixed #21366 -- regression in join promotion logicAnssi Kääriäinen
The regression was caused by ecaba3602837d1e02fe1e961f7d3bf9086453259 and affected OR connected filters.
2013-10-21Fixed #21249 -- variable name typo in compiler.get_grouping()Anssi Kääriäinen
The typo could have consequences in exceptional cases, but I didn't figure out a way to actually produce such a case, so not tests. Report & patch by Michael Manfre.
2013-10-21Fixed #21288 -- Fixed E126 pep8 warningsAlasdair Nicol
2013-10-15Fixed #16855 -- select_related() chains as expected.Marc Tamlyn
select_related('foo').select_related('bar') is now equivalent to select_related('foo', 'bar'). Also reworded docs to recommend select_related(*fields) over select_related()
2013-10-05Fixed #18414 -- qs.exists() for sliced distinct queriesAnssi Kääriäinen
2013-10-05Improved Query join promotion logicAnssi Kääriäinen
There were multiple cases where join promotion was a bit too aggressive. This resulted in using outer joins where not necessary. Refs #21150.
2013-10-01Fixed #21203 -- resolve_columns fields misalignmentAnssi Kääriäinen
In queries using .defer() together with .select_related() the values and fields arguments didn't align properly for resolve_columns().
2013-09-25Fixed #21126 -- QuerySet value conversion failureAnssi Kääriäinen
A .annotate().select_related() query resulted in misaligned rows vs columns for compiler.resolve_columns() method. Report & patch by Michael Manfre.
2013-09-24Added '*' to quote_cacheAnssi Kääriäinen
The commit for #18333 missed quote_cache default value for *. Refs #18333.
2013-09-24Fixed #18333 - Quoted annotated column namesMichael Manfre
2013-09-24Fix small grammatical error in comment.Andrei Picus
Changed 'there are no filtering' to 'there is no filtering'.
2013-09-22Removed a few trailing backslashes.Aymeric Augustin
We have always been at war with trailing backslashes.
2013-09-16Fixed #17627 -- Renamed util.py files to utils.pyTim Graham
Thanks PaulM for the suggestion and Luke Granger-Brown and Wiktor Kołodziej for the initial patch.
2013-09-14Fixed #20950 -- Instantiate OrderedDict() only when neededAnssi Kääriäinen
The use of OrderedDict (even an empty one) was surprisingly slow. By initializing OrderedDict only when needed it is possible to save non-trivial amount of computing time (Model.save() is around 30% faster for example). This commit targetted sql.Query only, there are likely other places which could use similar optimizations.
2013-09-06Minor factorization.Aymeric Augustin
2013-08-30Fixed #20989 -- Removed useless explicit list comprehensions.Simon Charette
2013-08-30Removed stale add_q() commentAnssi Kääriäinen
2013-08-29Fixed #20989 -- Removed explicit list comprehension inside dict() and tuple()Tim Graham
Thanks jeroen.pulles at redslider.net for the suggestion and helper script.
2013-08-22Fixed #20955 -- select_related regressionAnssi Kääriäinen
In cases where the same connection (from model A to model B along the same field) was needed multiple times in a select_related query, the join setup code mistakenly reused an existing join.
2013-08-20Fixed #14056 -- Made sure LEFT JOIN aren't trimmed in ORDER BYAnssi Kääriäinen
If LEFT JOINs are required for correct results, then trimming the join can lead to incorrect results. Consider case: TBL A: ID | TBL B: ID A_ID 1 1 1 2 Now A.order_by('b__a') did use a join to B, and B's a_id column. This was seen to contain the same value as A's id, and so the join was trimmed. But this wasn't correct as the join is LEFT JOIN, and for row A.id = 2 the B.a_id column is NULL.
2013-08-19Fixed #11881 -- removed junk from aggregation subqueriesAnssi Kääriäinen
There were clauses that weren't needed in the subqueries. These were ORDER BY, SELECT FOR UPDATE and related selections.
2013-08-19Fixed #12886 -- aggregation over sliced querysetAnssi Kääriäinen
2013-08-13Fixed #20874 -- bump_prefix() in nested subqueriesAnssi Kääriäinen
Also made some cleanup to build_filter() code by introducing submethods solve_lookup_type() and prepare_lookup_value().
2013-08-07Fixed #17424 -- annotate() + exclude() bugAnssi Kääriäinen
The bug was already fixed by 01b9c3d5193fe61b82ae8b26242a13fdec22f211, so only tests added. At the same time promote_joins()'s uncoditional flag is gone, it isn't needed for anything any more.
2013-08-04Deprecated SortedDict (replaced with collections.OrderedDict)Curtis Maloney
Thanks Loic Bistuer for the review.
2013-07-31Fixed #15624 -- Made sure aggregations are present in SELECTFlorian Hahn
2013-07-31Added field.attname to Options.name_mapAnssi Kääriäinen
The change also removed allow_explicit_fk from sql/query.py.
2013-07-31Fixed #20348 -- Consistently handle Promise objects in model fields.Tai Lee
All Promise objects were passed to force_text() deep in ORM query code. Not only does this make it difficult or impossible for developers to prevent or alter this behaviour, but it is also wrong for non-text fields. This commit changes `Field.get_prep_value()` from a no-op to one that resolved Promise objects. All subclasses now call super() method first to ensure that they have a real value to work with.
2013-07-29Removed most of absolute_import importsClaude Paroz
Should be unneeded with Python 2.7 and up. Added some unicode_literals along the way.
2013-07-23Fixed #20782 -- qs.values().aggregate() failureAnssi Kääriäinen
In the combination of .values().aggregate() the aggregate_select_mask didn't include the aggregates added. This resulted in bogus query. Thanks to Trac alias debanshuk for report.
2013-07-14Fixed #20746 -- Removed Python 2.6 specific code/docsTim Graham
2013-07-09Fixed #17339 -- Factor out has_result into database backend.Tim Graham
Thanks jonash.