Tim Graham
419b6ec7d0
Removed unused branch in SQLCompiler.as_subquery_condition().
...
Unused since dcdc579d16
.
2016-09-27 09:58:53 -04:00
François Freitag
631ef6b272
Made FieldError/FieldDoesNotExist messages uniform across Python versions.
...
Removed possible u'' prefixes on Python 2.
2016-09-17 09:29:14 -04:00
Mikhail Denisenko
bae64dd0f1
Fixed #27062 -- Eased implementing select_for_update() on MSSQL.
2016-09-09 11:57:38 -04:00
Matthew Wilkes
4f138fe5a4
Fixed #22288 -- Fixed F() expressions with the __range lookup.
2016-08-19 13:40:56 -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
Johannes Dollinger
46509cf13d
Moved EmpytResultSet to django.core.exceptions.
...
This removes the need for some inner imports.
2016-08-08 10:43:34 -04:00
Johannes Dollinger
c002a0d39f
Fixed #26517 -- Fixed ExpressionWrapper with empty queryset.
2016-08-08 10:43:33 -04:00
David Sanders
a84344bc53
Fixed #19513 , #18580 -- Fixed crash on QuerySet.update() after annotate().
2016-06-29 14:08:13 -04:00
darius BERNARD
a7ad473ad2
Fixed #26515 -- Fixed Query.trim_joins() for nested ForeignObjects.
2016-05-19 09:56:24 -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
Tim Graham
359be4460e
Refs #19527 -- Fixed SQL compiler regression causing Oracle failure.
2016-03-05 14:02:35 -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
chenesan
b84f5ab4ec
Fixed #26230 -- Made default_related_name affect related_query_name.
2016-02-27 08:48:32 -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
Anssi Kääriäinen
ee596888e1
Fixed #26092 -- Fixed QuerySet.order_by() regression with an M2M through model.
2016-01-20 19:13:05 -05:00
Sergey Fedoseev
ed1bcf0515
Refs #25894 -- Fixed evaluation of zero-length slices of QuerySet.values() on Oracle.
2015-12-17 17:07:10 -05:00
Sergey Fedoseev
69b69f6d60
Fixed #25894 -- Fixed evaluation of zero-length slices of QuerySet.values().
2015-12-15 07:29:35 -05:00
Simon Charette
8035cee922
Fixed #25882 -- Prevented fast deletes matching no rows from crashing on MySQL.
...
Thanks to Trac aliases gerricom for the report, raphaelmerx for the
attempts to reproduce and Sergey Fedoseev and Tim for the review.
Refs #16891
2015-12-14 13:12:36 -05:00
Dmitry Dygalo
92eced62cd
Simplified lists creation in three places.
2015-11-17 07:58:49 -05:00
Ian Foote
32ef48aa56
Fixed #25609 -- Fixed regression in related field nested lookup error.
2015-10-27 13:49:00 -04:00
Tim Graham
67732a9b18
Fixed #24687 -- Added select_related() validation for nested non-relational fields.
...
The removed test was added in the original select_related() validation
patch (45d4e43d2d
), but there doesn't
seem to be any reason for it.
Thanks Claude Paroz for help and review.
2015-10-10 09:48:50 -04:00
Tim Graham
fd6a299cd0
Refs #14030 -- Removed backwards compatiblity for old-style aggregates.
...
Per deprecation timeline.
2015-09-23 19:31:10 -04:00
Tim Graham
3f50dc2be5
Removed SQLCompiler.__call__() per deprecation timeline.
2015-09-23 19:31:09 -04:00
Alex Hill
134ca4d438
Fixed #24509 -- Added Expression support to SQLInsertCompiler
2015-09-22 23:35:24 +10:00
Josh Smeaton
534aaf56f4
Fixed #24629 -- Unified Transform and Expression APIs
2015-09-21 19:56:24 +10:00
Simon Charette
4d886db078
Removed the unused JoinPromoter.outer_votes attribute.
2015-09-17 13:47:06 -04:00
Tim Graham
2dc9ec5616
Fixed #24525 -- Fixed AssertionError in some complex queries.
...
Thanks Anssi Kääriäinen for providing the solution.
2015-09-05 07:51:17 -04:00
Tim Graham
233b46f931
Fixed #19263 -- Fixed crash when filtering using __in and an empty QuerySet.
...
Thanks Marcin Biernat for the initial patch and tests.
2015-09-04 07:44:36 -04:00
Maxime Lorant
5153a3bfdc
Fixed #25331 -- Removed trailing blank lines in docstrings.
2015-08-31 17:37:21 -04:00
Tim Graham
333cbdcd2d
Fixed #24951 -- Fixed AssertionError in delete queries involving a foreign/primary key.
...
Thanks Anssi Kääriäinen for help.
2015-08-20 08:14:16 -04:00
Valentina Mukhamedzhanova
1f7b25c1a7
Fixed #24986 -- Added support for annotations in DISTINCT queries.
2015-08-15 08:23:32 -04:00
Alex Hill
98bcdfa8bd
Fixed #25064 -- Allowed empty join columns.
2015-08-15 07:26:44 -04:00
Valentina Mukhamedzhanova
6bd7ee4eab
Made Options.get_base_chain() always return a list.
2015-08-14 13:15:31 -04:00
risicle
5d60d2b457
Adjusted SQLCompiler.get_order_by()'s docstring return value.
2015-07-28 10:49:26 -04:00
Mitchell Kotler
6024fd5dc2
Fixed #25095 -- Fixed annotate() + values() group by bug
...
Thanks Josh Smeaton for help on the tests.
2015-07-27 07:44:48 -04:00
Anssi Kääriäinen
6f403056f0
Fixed #24923 -- errored out nicely when using aggregates in order_by()
2015-07-13 08:36:25 -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
Tim Graham
7da3923ba0
Sorted imports in __init__.py files.
2015-06-27 11:53:33 -04:00
Tim Graham
aaacaeb096
Renamed RemovedInDjangoXYWarnings for new roadmap.
...
Forwardport of ae1d663b79
from stable/1.8.x plus more.
2015-06-24 16:08:20 -04:00
Andriy Sokolovskiy
286d0e6ab1
Refs #24833 -- Forwardported some of "Fixed Case expressions with exclude()."
...
Partial forwardport of 469f1e362b
from stable/1.8.x
as the issue was already fixed in master.
2015-06-05 11:21:31 -04:00
Paweł Marczewski
801a84ae32
Fixed #24835 -- Fixed QuerySet.exists() after an annotation with Count()
...
QuerySet.exists() incorrectly handled query.group_by = True
case (grouping by all select fields), causing GROUP BY
expressions to be wiped along with select fields.
2015-05-25 20:46:20 -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
Anssi Kääriäinen
bc87061a3c
Fixed #24705 -- Fixed negated Q objects in expressions.
...
Avoided split_exclude() for Q when used as an expression.
2015-05-20 09:41:04 -04:00
Aymeric Augustin
54026f1e8d
Renamed value_to_db_xxx to adapt_xxxfield_value.
...
This mirrors convert_xxxfield_value nicely, taking advantage of the
adapter/converter terminology which is commonly used by DB-API modules.
2015-05-17 09:39:34 +02:00
Aymeric Augustin
d9521f66b1
Removed global timezone-aware datetime adapters.
...
Refs #23820 .
Fixed #19738 .
Refs #17755 . In order not to introduce a regression for raw queries,
parameters are passed through the connection.ops.value_to_db_* methods,
depending on their type.
2015-05-17 09:38:48 +02:00
Anssi Kääriäinen
adc57632bc
Fixed #24748 -- Fixed incorrect GROUP BY on MySQL in some queries
...
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-05-11 11:42:27 -04:00
Aric Coady
9c2d8cde77
Fixed #24719 -- Restored the ability to use interators as queryset related object filters.
2015-04-28 10:51:27 -04:00
Simon Charette
b44ed404c7
Fixed #24654 -- Based ordering circular references detection on columns.
...
Thanks to Elmar Bucher for the report and Tim for the review.
2015-04-20 15:49:58 -04:00
Anssi Kääriäinen
355c5edd93
Fixed #24605 -- Fixed incorrect reference to alias in subquery.
...
Thanks to charettes and priidukull for investigating the issue, and to
kurevin for the report.
2015-04-16 09:22:00 -04:00
Anssi Kääriäinen
fb5c7748da
Fixed #24615 -- ordering by expression not part of SELECT
...
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-16 09:40:47 +02:00
Alex Wilson
99d40c6f65
Fixed #24277 -- Added exception when dict used in QuerySet filtering
2015-04-14 13:28:53 -04:00
Jay Wineinger
923da0274a
Fixed #24611 -- Fixed update() crash with related UUID pk object.
2015-04-13 12:18:24 -04:00
Simon Charette
dc27f3ee0c
Fixed #19259 -- Added group by selected primary keys support.
2015-03-29 22:03:30 -04: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
Anssi Kääriäinen
d43aa28f67
Removed field.field check in setup_joins()
2015-03-25 08:11:27 -04:00
Anssi Kääriäinen
b68212f539
Refs #24267 -- Implemented lookups for related fields
...
Previously related fields didn't implement get_lookup, instead
related fields were treated specially. This commit removed some of
the special handling. In particular, related fields return Lookup
instances now, too.
Other notable changes in this commit is removal of support for
annotations in names_to_path().
2015-03-25 08:05:22 -04:00
Anssi Kääriäinen
fb146193c4
Fixed #24171 -- Fixed failure with complex aggregate query and expressions
...
The query used a construct of qs.annotate().values().aggregate() where
the first annotate used an F-object reference and the values() and
aggregate() calls referenced that F-object.
Also made sure the inner query's select clause is as simple as possible,
and made sure .values().distinct().aggreate() works correctly.
2015-03-09 07:49:23 -04:00
Marc Tamlyn
32d4db66b9
Update converters to take a consistent set of parameters.
...
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-20 11:35:52 +00: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
Tim Graham
0ed7d15563
Sorted imports with isort; refs #23860 .
2015-02-06 08:16:28 -05:00
Anssi Kääriäinen
4d3470e52e
Removed non-used EmptyShortCircuit
2015-02-04 09:26:40 -05:00
Anssi Kääriäinen
7145c8a62a
Removed EverythingNode
...
At the same time, made sure that empty nodes in where clause match
everything.
2015-02-04 09:26:40 -05:00
Anssi Kääriäinen
afe0bb7b13
Fixed #24268 -- removed Query.having
...
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-02-04 09:26:40 -05:00
Tim Graham
f79ce63fdb
Removed query.alias_diff()
...
This function is unused since 6fe2b001db
2015-02-01 21:37:25 -05:00
Tim Graham
99ca7c2bd3
Removed Query.raise_field_error()
...
This method was inadvertently reintroduced in
f59fd15c49
2015-02-01 20:26:04 -05:00
Claude Paroz
a0b5f15ea5
Fixed #14483 -- Allowed using subqueries with GIS lookups
2015-01-30 20:27:18 +01:00
Loic Bistuer
4c3bfe9053
Fixed #24211 -- Removed ValuesQuerySet() and ValuesListQuerySet().
...
Thanks Anssi Kääriäinen, Marc Tamlyn, and Tim Graham for the reviews.
2015-01-30 22:02:58 +07:00
Tim Graham
29c0073335
Fixed #24164 -- Fixed Oracle GIS limited aggregation test failure.
2015-01-30 06:28:47 -05:00
Josh Smeaton
8196e4bdf4
Fixed #24154 -- Backends can now check support for expressions
2015-01-27 12:20:06 +11:00
Tim Graham
be1357e709
Fixed a query failure on Python 3.5; refs #23763 .
...
The failure was introduced in Django by
c7fd9b242d
and the change in
Python 3.5 is https://hg.python.org/cpython/rev/a3c345ba3563 .
2015-01-20 08:13:53 -05:00
Tim Graham
5008a4db44
Removed legacy ORM lookup support per deprecation timeline; refs #16187 .
2015-01-19 11:11:30 -05:00
Josh Smeaton
69c6a6868f
Fixed #24174 -- Fixed extra order by descending
2015-01-19 12:51:27 +11:00
Tim Graham
2cd00424c4
Removed support for callable QuerySet arguments per deprecation timeline; refs #11629 .
2015-01-18 14:01:25 -05:00
Simon Charette
47bdad4e6b
Replaced inner functions by class methods.
...
refs #24031
Thanks to Tim Graham and Michał Modzelewski for the review.
2015-01-15 13:03:34 -05:00
Michał Modzelewski
65246de7b1
Fixed #24031 -- Added CASE expressions to the ORM.
2015-01-12 18:15:34 -05:00
Josh Smeaton
21b858cb67
Fixed #24060 -- Added OrderBy Expressions
2015-01-13 09:39:55 +11:00
Anssi Kääriäinen
0c7633178f
Fixed #24020 -- Refactored SQL compiler to use expressions
...
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-08 14:07:54 -05:00
Daniel Pyrathon
fb48eb0581
Fixed #12663 -- Formalized the Model._meta API for retrieving fields.
...
Thanks to Russell Keith-Magee for mentoring this Google Summer of
Code 2014 project and everyone else who helped with the patch!
2015-01-06 19:25:12 -05:00
Daniel Pyrathon
8958170755
Fixed #9104 -- Moved FieldDoesNotExist to core.exceptions
2015-01-02 10:46:04 -05:00
Piotr Pawlaczek
41fc1c0b5e
Fixed #23758 -- Allowed more than 5 levels of subqueries
...
Refactored bump_prefix() to avoid infinite loop and allow more than
than 5 subquires by extending the alphabet to use multi-letters.
2014-12-31 08:48:28 -05:00
Niclas Olofsson
3daa9d60be
Fixed #10414 -- Made select_related() fail on invalid field names.
2014-12-24 14:54:30 -05:00
Anssi Kääriäinen
f233bf47dd
Fixed #21414 -- Removed RelatedObject and deprecated Field.related.
2014-12-23 10:54:25 -05:00
Anssi Kääriäinen
4a2a433e7d
Refs #24020 -- return expressions from get_group_by_cols()
2014-12-18 06:01:07 -07:00
Michael Hall
895dc880eb
Fixed #23812 -- Changed django.utils.six.moves.xrange imports to range
2014-12-13 12:45:58 -05:00
Jon Dufresne
4468c08d70
Fixed #23968 -- Replaced list comprehension with generators and dict comprehension
2014-12-08 07:58:23 -05:00
Anssi Kääriäinen
ab89414f40
Fixed #23853 -- Added Join class to replace JoinInfo
...
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-28 07:30:26 -05:00
Anssi Kääriäinen
bd337184f1
Fixed #23877 -- aggregation's subquery missed target col
...
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-27 06:50:08 -05:00
Anssi Kääriäinen
c7fd9b242d
Fixed #23875 -- cleaned up query.get_count()
2014-11-27 06:26:53 -05:00
Anssi Kääriäinen
cbb5cdd155
Fixed #23867 -- removed DateQuerySet hacks
...
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-26 17:49:25 -05:00
Anssi Kääriäinen
5c481db295
Fixed #23605 -- Fixed nested subquery regression
...
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-20 13:38:08 -05:00
Carl Meyer
d6e2bbe734
Fixed #23876 -- Removed dead code in SQLAggregateCompiler.
2014-11-20 04:18:08 -07:00
Carl Meyer
08fbbaa45b
Deprecated calling a SQLCompiler instance.
2014-11-18 19:47:16 -07:00
Anssi Kääriäinen
4252a14c39
Moved bilateral transform fetching to models.lookups
2014-11-17 18:04:08 +01:00
Josh Smeaton
f61256da3a
Renamed qn to compiler
2014-11-16 13:19:34 +01:00
Josh Smeaton
f59fd15c49
Fixed #14030 -- Allowed annotations to accept all expressions
2014-11-15 14:00:43 +00:00
Anssi Kääriäinen
4e9a6c94e6
Removed extra enumerate() from Query.setup_joins()
2014-11-12 13:22:08 +02:00
Anssi Kääriäinen
d647764a53
Improved Query.names_to_path docstring
2014-11-12 12:40:55 +02:00