summaryrefslogtreecommitdiff
path: root/django/db/models/sql/compiler.py
AgeCommit message (Collapse)Author
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
2014-04-30Fixed #19195 -- Allow explicit ordering by a relation `_id` field.Simon Charette
Thanks to chrisedgemon for the report and shaib, akaariai and timgraham for the review.
2014-04-26Fix many many typos in comments throughout the codebaseAlex Gaynor
2014-04-10Fixed #22343 -- Disallowed select_for_update in autocommit modeShai Berger
The ticket was originally about two failing tests, which are fixed by putting their queries in transactions. Thanks Tim Graham for the report, Aymeric Augustin for the fix, and Simon Charette, Tim Graham & Loïc Bistuer for review.
2014-03-12Flake8 correctionsShai Berger
2014-03-10Fixed #22210 -- Saving model instances to non-related fields.Daniel Pyrathon
Previously, saving a model instance to a non-related field (in particular a FloatField) would silently convert the model to an Integer (the pk) and save it. This is undesirable behaviour, and likely to cause confusion so the validatio has been hardened. Thanks to @PirosB3 for the patch and @jarshwah for the review.
2014-03-03Fixed many typos in comments and docstrings.Rodolfo Carvalho
Thanks Piotr Kasprzyk for help with the patch.
2014-02-02Removed an unused import which snuck in.Alex Gaynor
2014-02-02Ensure cursors are closed when no longer needed.Michael Manfre
This commit touchs various parts of the code base and test framework. Any found usage of opening a cursor for the sake of initializing a connection has been replaced with 'ensure_connection()'.
2014-02-02Made SQLCompiler.execute_sql(result_type) more explicit.Michael Manfre
Updated SQLUpdateCompiler.execute_sql to match the behavior described in the docstring; the 'first non-empty query' will now include all queries, not just the main and first related update. Added CURSOR and NO_RESULTS result_type constants to make the usages more self documenting and allow execute_sql to explicitly close the cursor when it is no longer needed.