summaryrefslogtreecommitdiff
path: root/django/db/models/sql/compiler.py
AgeCommit message (Collapse)Author
2016-04-08Fixed E128 flake8 warnings in django/.Tim Graham
2016-03-05Refs #19527 -- Fixed SQL compiler regression causing Oracle failure.Tim Graham
2016-03-02Refs #19527 -- Allowed QuerySet.bulk_create() to set the primary key of its ↵acrefoot
objects. PostgreSQL support only. Thanks Vladislav Manchev and alesasnouski for working on the patch.
2016-01-20Fixed #26092 -- Fixed QuerySet.order_by() regression with an M2M through model.Anssi Kääriäinen
2015-12-17Refs #25894 -- Fixed evaluation of zero-length slices of QuerySet.values() ↵Sergey Fedoseev
on Oracle.
2015-12-15Fixed #25894 -- Fixed evaluation of zero-length slices of QuerySet.values().Sergey Fedoseev
2015-11-17Simplified lists creation in three places.Dmitry Dygalo
2015-10-10Fixed #24687 -- Added select_related() validation for nested non-relational ↵Tim Graham
fields. The removed test was added in the original select_related() validation patch (45d4e43d2d25b902e3821b612209afa951a8bcb8), but there doesn't seem to be any reason for it. Thanks Claude Paroz for help and review.
2015-09-23Removed SQLCompiler.__call__() per deprecation timeline.Tim Graham
2015-09-22Fixed #24509 -- Added Expression support to SQLInsertCompilerAlex Hill
2015-09-04Fixed #19263 -- Fixed crash when filtering using __in and an empty QuerySet.Tim Graham
Thanks Marcin Biernat for the initial patch and tests.
2015-08-20Fixed #24951 -- Fixed AssertionError in delete queries involving a ↵Tim Graham
foreign/primary key. Thanks Anssi Kääriäinen for help.
2015-08-15Fixed #24986 -- Added support for annotations in DISTINCT queries.Valentina Mukhamedzhanova
2015-07-28Adjusted SQLCompiler.get_order_by()'s docstring return value.risicle
2015-06-24Renamed RemovedInDjangoXYWarnings for new roadmap.Tim Graham
Forwardport of ae1d663b7913f6da233c55409c4973248372d302 from stable/1.8.x plus more.
2015-05-11Fixed #24748 -- Fixed incorrect GROUP BY on MySQL in some queriesAnssi Kääriäinen
When the query's model had a self-referential foreign key, the compiler.get_group_by() code incorrectly used the self-referential foreign key's column (for example parent_id) as GROUP BY clause when it should have used the model's primary key column (id).
2015-04-20Fixed #24654 -- Based ordering circular references detection on columns.Simon Charette
Thanks to Elmar Bucher for the report and Tim for the review.
2015-04-16Fixed #24605 -- Fixed incorrect reference to alias in subquery.Anssi Kääriäinen
Thanks to charettes and priidukull for investigating the issue, and to kurevin for the report.
2015-04-16Fixed #24615 -- ordering by expression not part of SELECTAnssi Kääriäinen
Fixed queries where an expression was used in order_by() but the expression wasn't in the query's select clause (for example the expression could be masked by .values() call) Thanks to Trac alias MattBlack85 for the report.
2015-04-13Fixed #24611 -- Fixed update() crash with related UUID pk object.Jay Wineinger
2015-03-29Fixed #19259 -- Added group by selected primary keys support.Simon Charette
2015-03-25Renamed Field.rel attribute to remote_fieldAnssi Kääriäinen
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-25Removed field.field check in setup_joins()Anssi Kääriäinen
2015-02-20Update converters to take a consistent set of parameters.Marc Tamlyn
As suggested by Anssi. This has the slightly strange side effect of passing the expression to Expression.convert_value has the expression passed back to it, but it allows more complex patterns of expressions.
2015-02-06Sorted imports with isort; refs #23860.Tim Graham
2015-02-04Fixed #24268 -- removed Query.havingAnssi Kääriäinen
Instead of splitting filter clauses to where and having parts before adding them to query.where or query.having, add all filter clauses to query.where, and when compiling the query split the where to having and where parts.
2015-01-30Fixed #14483 -- Allowed using subqueries with GIS lookupsClaude Paroz
2015-01-30Fixed #24164 -- Fixed Oracle GIS limited aggregation test failure.Tim Graham
2015-01-19Fixed #24174 -- Fixed extra order by descendingJosh Smeaton
2015-01-12Fixed #24031 -- Added CASE expressions to the ORM.Michał Modzelewski
2015-01-13Fixed #24060 -- Added OrderBy ExpressionsJosh Smeaton
2015-01-08Fixed #24020 -- Refactored SQL compiler to use expressionsAnssi Kääriäinen
Refactored compiler SELECT, GROUP BY and ORDER BY generation. While there, also refactored select_related() implementation (get_cached_row() and get_klass_info() are now gone!). Made get_db_converters() method work on expressions instead of internal_type. This allows the backend converters to target specific expressions if need be. Added query.context, this can be used to set per-query state. Also changed the signature of database converters. They now accept context as an argument.
2015-01-06Fixed #12663 -- Formalized the Model._meta API for retrieving fields.Daniel Pyrathon
Thanks to Russell Keith-Magee for mentoring this Google Summer of Code 2014 project and everyone else who helped with the patch!
2014-12-24Fixed #10414 -- Made select_related() fail on invalid field names.Niclas Olofsson
2014-12-18Refs #24020 -- return expressions from get_group_by_cols()Anssi Kääriäinen
2014-11-28Fixed #23853 -- Added Join class to replace JoinInfoAnssi Kääriäinen
Also removed Query.join_map. This structure was used to speed up join reuse calculation. Initial benchmarking shows that this isn't actually needed. If there are use cases where the removal has real-world performance implications, it should be relatively straightforward to reintroduce it as map {alias: [Join-like objects]}.
2014-11-27Fixed #23877 -- aggregation's subquery missed target colAnssi Kääriäinen
Aggregation over subquery produced syntactically incorrect queries in some cases as Django didn't ensure that source expressions of the aggregation were present in the subquery.
2014-11-27Fixed #23875 -- cleaned up query.get_count()Anssi Kääriäinen
2014-11-26Fixed #23867 -- removed DateQuerySet hacksAnssi Kääriäinen
The .dates() queries were implemented by using custom Query, QuerySet, and Compiler classes. Instead implement them by using expressions and database converters APIs.
2014-11-20Fixed #23605 -- Fixed nested subquery regressionAnssi Kääriäinen
Added relabeled_clone() method to sql.Query to fix the problem. It manifested itself in rare cases where at least double nested subquery's filter condition might target non-existing alias. Thanks to Trac alias ris for reporting the problem.
2014-11-20Fixed #23876 -- Removed dead code in SQLAggregateCompiler.Carl Meyer
2014-11-18Deprecated calling a SQLCompiler instance.Carl Meyer
2014-11-16Renamed qn to compilerJosh Smeaton
2014-11-15Fixed #14030 -- Allowed annotations to accept all expressionsJosh Smeaton
2014-09-05Limited lines to 119 characters in django/Tim Graham
refs #23395.
2014-09-03Fixed #18757, #14462, #21565 -- Reworked database-python type conversionsMarc Tamlyn
Complete rework of translating data values from database Deprecation of SubfieldBase, removal of resolve_columns and convert_values in favour of a more general converter based approach and public API Field.from_db_value(). Now works seamlessly with aggregation, .values() and raw queries. Thanks to akaariai in particular for extensive advice and inspiration, also to shaib, manfre and timograham for their reviews.
2014-08-11Fixed #23259 -- Corrected insertion order of extra() select_paramsRajiv Makhijani
A regression caused queries to produce incorrect results for cases where extra(select) is excluded by values() but included by extra(order_by) The regression was caused by 2f35c6f10fcbae541691207fb0c0560a13b754fc.
2014-07-01Fixed #14334 -- Query relation lookups now check object types.Anubhav Joshi
Thanks rpbarlow for the suggestion; and loic, akaariai, and jorgecarleitao for reviews.
2014-06-14Improved code style of Query.table_alias() usage.Jorge C. Leitão
2014-06-14Removed unnecessary attribute assigment to SQLCompiler.Jorge C. Leitão