sage 
							
						 
					 
					
						
						
							
						
						6789ded0a6 
					 
					
						
						
							
							Fixed   #12990 , Refs  #27694  -- Added JSONField model field.  
						
						... 
						
						
						
						Thanks to Adam Johnson, Carlton Gibson, Mariusz Felisiak, and Raphael
Michel for mentoring this Google Summer of Code 2019 project and
everyone else who helped with the patch.
Special thanks to Mads Jensen, Nick Pope, and Simon Charette for
extensive reviews.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com > 
						
						
					 
					
						2020-05-08 07:23:31 +02:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						8f10ceaa90 
					 
					
						
						
							
							Changed '%s' % value pattern to str(value).  
						
						
						
						
					 
					
						2020-05-04 08:27:18 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						513948735b 
					 
					
						
						
							
							Fixed   #31426  -- Added proper field validation to QuerySet.order_by().  
						
						... 
						
						
						
						Resolve the field reference instead of using fragile regex based string
reference validation. 
						
						
					 
					
						2020-04-06 10:19:49 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						98ea4f0f46 
					 
					
						
						
							
							Refs  #7098  -- Deprecated passing raw column aliases to order_by().  
						
						... 
						
						
						
						Now that order_by() has expression support passing RawSQL() can achieve
the same result.
This was also already supported through QuerySet.extra(order_by) for
years but this API is more or less deprecated at this point. 
						
						
					 
					
						2020-04-06 10:01:02 +02:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						335c9c94ac 
					 
					
						
						
							
							Simplified imports from django.db and django.contrib.gis.db.  
						
						
						
						
					 
					
						2020-02-04 13:20:06 +01:00 
						 
				 
			
				
					
						
							
							
								Hasan Ramezani 
							
						 
					 
					
						
						
							
						
						eef3ea847e 
					 
					
						
						
							
							Fixed   #31148  -- Added error messages on update()/delete() operations following union(), intersection(), and difference().  
						
						
						
						
					 
					
						2020-01-09 12:20:54 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						f97a6123c0 
					 
					
						
						
							
							Refs  #25367  -- Made Query.build_filter() raise TypeError on non-conditional expressions.  
						
						
						
						
					 
					
						2019-11-21 11:56:35 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						e9a0e1d4f6 
					 
					
						
						
							
							Fixed   #30484  -- Added conditional expressions support to CheckConstraint.  
						
						
						
						
					 
					
						2019-11-21 11:56:35 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						306b687520 
					 
					
						
						
							
							Refs  #11964  -- Removed SimpleCol in favor of Query(alias_cols).  
						
						... 
						
						
						
						This prevent having to pass simple_col through multiple function calls
by defining whether or not references should be resolved with aliases
at the Query level. 
						
						
					 
					
						2019-11-21 11:56:35 +01:00 
						 
				 
			
				
					
						
							
							
								Jon Dufresne 
							
						 
					 
					
						
						
							
						
						e649d691f8 
					 
					
						
						
							
							Removed unnecessary parentheses in various code.  
						
						
						
						
					 
					
						2019-11-18 15:25:59 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						11e327a3ff 
					 
					
						
						
							
							Fixed   #30988  -- Deprecated the InvalidQuery exception.  
						
						... 
						
						
						
						It was barely documented without pointers at its defining location and
was abused to prevent misuse of the QuerySet field deferring feature. 
						
						
					 
					
						2019-11-18 14:06:51 +01:00 
						 
				 
			
				
					
						
							
							
								George Marshall 
							
						 
					 
					
						
						
							
						
						8be79984dc 
					 
					
						
						
							
							Fixed   #30971  -- Prevented Query.resolve_lookup_value() from coercing list values to tuples.  
						
						... 
						
						
						
						Regression in 8a281aa7fe 
						
						
					 
					
						2019-11-13 08:27:26 +01:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						55df1750be 
					 
					
						
						
							
							Refs  #30897  -- Added support for ANALYZE option to Queryset.explain() on MariaDB and MySQL 8.0.18+.  
						
						
						
						
					 
					
						2019-10-24 15:13:26 +02:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						742961332e 
					 
					
						
						
							
							Refs  #30897  -- Added support for TREE format to Queryset.explain() on MySQL 8.0.16+.  
						
						
						
						
					 
					
						2019-10-24 15:13:23 +02:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						6e9189c080 
					 
					
						
						
							
							Refs  #30897  -- Added test for SETTINGS option to Queryset.explain() on PostgreSQL 12+.  
						
						
						
						
					 
					
						2019-10-23 14:07:18 +02:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						a5c5ae7d91 
					 
					
						
						
							
							Refs  #28574  -- Used feature flag for PostgreSQL version check.  
						
						
						
						
					 
					
						2019-10-23 14:07:13 +02:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						01104368ff 
					 
					
						
						
							
							Refs  #29444  -- Removed redundant DatabaseFeatures.can_return_multiple_columns_from_insert.  
						
						... 
						
						
						
						Unnecessary since b31e63879e 
						
						
					 
					
						2019-09-24 10:37:22 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						37f8f29377 
					 
					
						
						
							
							Fixed   #30796  -- Prevented select_related() from mutating a queryset on chaining.  
						
						... 
						
						
						
						Thanks Darren Maki for the report. 
						
						
					 
					
						2019-09-24 09:17:45 +02:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						0ddb4ebf7b 
					 
					
						
						
							
							Refs  #14357  -- Made Meta.ordering not affect GROUP BY queries.  
						
						... 
						
						
						
						Per deprecation timeline. 
						
						
					 
					
						2019-09-10 12:01:00 +02:00 
						 
				 
			
				
					
						
							
							
								Johannes Hoppe 
							
						 
					 
					
						
						
							
						
						7254f1138d 
					 
					
						
						
							
							Refs  #29444  -- Allowed returning multiple fields from INSERT statements on PostgreSQL.  
						
						... 
						
						
						
						Thanks Florian Apolloner, Tim Graham, Simon Charette, Nick Pope, and
Mariusz Felisiak for reviews. 
						
						
					 
					
						2019-09-09 10:51:14 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						13a8884a08 
					 
					
						
						
							
							Fixed   #30739  -- Fixed exclusion of multi-valued lookup against outer rhs.  
						
						... 
						
						
						
						OuterRef right hand sides have to be nested, just like F rhs have to,
during the subquery pushdown split_exclude performs to ensure they are
resolved against the outer query aliases. 
						
						
					 
					
						2019-09-02 10:52:36 +02:00 
						 
				 
			
				
					
						
							
							
								Diederik van der Boor 
							
						 
					 
					
						
						
							
						
						25f21bd237 
					 
					
						
						
							
							Fixed   #28393  -- Added helpful error messages for invalid AutoField/FloatField/IntegerField values.  
						
						... 
						
						
						
						Co-authored-by: Diederik van der Boor <vdboor@edoburu.nl >
Co-authored-by: Nick Pope <nick.pope@flightdataservices.com > 
						
						
					 
					
						2019-08-05 08:41:29 +02:00 
						 
				 
			
				
					
						
							
							
								Hasan Ramezani 
							
						 
					 
					
						
						
							
						
						1853383969 
					 
					
						
						
							
							Fixed   #27995  -- Added error messages on unsupported operations following union(), intersection(), and difference().  
						
						
						
						
					 
					
						2019-07-25 12:39:55 +02:00 
						 
				 
			
				
					
						
							
							
								Jon Dufresne 
							
						 
					 
					
						
						
							
						
						d89053585e 
					 
					
						
						
							
							Improved error message when index in __getitem__() is invalid.  
						
						
						
						
					 
					
						2019-07-23 20:12:08 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						ee6e93ec87 
					 
					
						
						
							
							Fixed   #30628  -- Adjusted expression identity to differentiate bound fields.  
						
						... 
						
						
						
						Expressions referring to different bound fields should not be
considered equal.
Thanks Julien Enselme for the detailed report.
Regression in bc7e288ca9 
						
						
					 
					
						2019-07-10 07:46:08 +02:00 
						 
				 
			
				
					
						
							
							
								can 
							
						 
					 
					
						
						
							
						
						325d5d6445 
					 
					
						
						
							
							Fixed   #30477  -- Made reverse lookup use Field.get_db_prep_value() from the target field.  
						
						
						
						
					 
					
						2019-06-25 10:20:33 +02:00 
						 
				 
			
				
					
						
							
							
								can 
							
						 
					 
					
						
						
							
						
						2cbd3967e0 
					 
					
						
						
							
							Fixed   #29834  -- Fixed column mismatch crash with QuerySet.values()/values_list() and order_by() on combined querysets.  
						
						
						
						
					 
					
						2019-06-19 12:11:28 +02:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						14d026cccb 
					 
					
						
						
							
							Fixed   #30572  -- Prevented values()/values_list() on combined queryset from mutating the list of columns in querysets.  
						
						
						
						
					 
					
						2019-06-19 10:44:53 +02:00 
						 
				 
			
				
					
						
							
							
								can 
							
						 
					 
					
						
						
							
						
						719b746620 
					 
					
						
						
							
							Fixed   #30412  -- Fixed crash when adding check constraints with OR'ed condition on Oracle and SQLite.  
						
						
						
						
					 
					
						2019-04-30 12:32:27 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						0cb4062482 
					 
					
						
						
							
							Refs  #23758  -- Used RecursionError instead of RuntimeError to raise nested subquery errors.  
						
						... 
						
						
						
						RecursionError was introduced in Python 3.5 and subclasses RuntimeError. 
						
						
					 
					
						2019-04-15 15:20:41 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						c0969ee227 
					 
					
						
						
							
							Refs  #27149  -- Based recursive nested subquery detection on sys.getrecursionlimit().  
						
						... 
						
						
						
						This makes sure the test_avoid_infinite_loop_on_too_many_subqueries test
doesn't fail on systems with a non-default recursion limit. 
						
						
					 
					
						2019-04-15 15:20:41 +02:00 
						 
				 
			
				
					
						
							
							
								can 
							
						 
					 
					
						
						
							
						
						96446c7152 
					 
					
						
						
							
							Refs  #29697  -- Added test for excluding m2m intermediary table.  
						
						
						
						
					 
					
						2019-03-30 14:46:59 +01:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						9ab1d55596 
					 
					
						
						
							
							Refs  #18726  -- Added test for excluding circular related fields with F() expression.  
						
						... 
						
						
						
						Fixed in f19a4945e1 
						
						
					 
					
						2019-03-28 07:10:54 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						f19a4945e1 
					 
					
						
						
							
							Fixed   #21703  -- Fixed a crash when excluding a related field with a F().  
						
						
						
						
					 
					
						2019-03-23 09:48:28 -04:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						3543129822 
					 
					
						
						
							
							Refs  #27149  -- Moved subquery expression resolving to Query.  
						
						... 
						
						
						
						This makes Subquery a thin wrapper over Query and makes sure it respects
the Expression source expression API by accepting the same number of
expressions as it returns. Refs #30188 .
It also makes OuterRef usable in Query without Subquery wrapping. This
should allow Query's internals to more easily perform subquery push downs
during split_exclude(). Refs #21703 . 
						
						
					 
					
						2019-03-21 20:36:31 -04:00 
						 
				 
			
				
					
						
							
							
								Sergey Fedoseev 
							
						 
					 
					
						
						
							
						
						1933e56eca 
					 
					
						
						
							
							Removed uneeded generator expressions and list comprehensions.  
						
						
						
						
					 
					
						2019-02-09 09:18:48 -05:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						24b82cd201 
					 
					
						
						
							
							Fixed   #30159  -- Removed unneeded use of OrderedDict.  
						
						... 
						
						
						
						Dicts preserve order since Python 3.6. 
						
						
					 
					
						2019-02-06 13:48:39 -05:00 
						 
				 
			
				
					
						
							
							
								Sergey Fedoseev 
							
						 
					 
					
						
						
							
						
						b86bb47818 
					 
					
						
						
							
							Fixed   #30093  -- Fixed ordering of combined queryset ordered by F expressions.  
						
						
						
						
					 
					
						2019-01-14 10:28:11 -05:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						f9a33e3c3f 
					 
					
						
						
							
							Fixed   #29932  -- Fixed combining compound queries with sub-compound queries on SQLite and Oracle.  
						
						
						
						
					 
					
						2018-12-06 15:31:33 -05:00 
						 
				 
			
				
					
						
							
							
								Tim Graham 
							
						 
					 
					
						
						
							
						
						193c109327 
					 
					
						
						
							
							Switched TestCase to SimpleTestCase where possible in Django's tests.  
						
						
						
						
					 
					
						2018-11-27 08:58:44 -05:00 
						 
				 
			
				
					
						
							
							
								Tom Forbes 
							
						 
					 
					
						
						
							
						
						31408446b3 
					 
					
						
						
							
							Fixed   #29974  -- Fixed non-truthy primary key values for QuerySet.bulk_update().  
						
						
						
						
					 
					
						2018-11-21 22:58:43 -05:00 
						 
				 
			
				
					
						
							
							
								Ian Foote 
							
						 
					 
					
						
						
							
						
						e1fc07c047 
					 
					
						
						
							
							Fixed   #17930  -- Allowed ORing (|) with sliced QuerySets.  
						
						
						
						
					 
					
						2018-11-15 09:43:58 -05:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						024abe5b82 
					 
					
						
						
							
							Fixed   #29630  -- Fixed crash of sliced queries with multiple columns with the same name on Oracle 12.1.  
						
						... 
						
						
						
						Regression in 0899d583bd 
						
						
					 
					
						2018-09-26 20:18:48 +02:00 
						 
				 
			
				
					
						
							
							
								Tom Forbes 
							
						 
					 
					
						
						
							
						
						9cbdb44014 
					 
					
						
						
							
							Fixed   #23646  -- Added QuerySet.bulk_update() to efficiently update many models.  
						
						
						
						
					 
					
						2018-09-18 16:14:44 -04:00 
						 
				 
			
				
					
						
							
							
								Ramiro Morales 
							
						 
					 
					
						
						
							
						
						1b1f64ee5a 
					 
					
						
						
							
							Refs  #14357  -- Deprecated Meta.ordering affecting GROUP BY queries.  
						
						... 
						
						
						
						Thanks Ramiro Morales for contributing to the patch. 
						
						
					 
					
						2018-09-13 12:29:48 -04:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						39461a83c3 
					 
					
						
						
							
							Fixed   #29694  -- Fixed column mismatch crash with QuerySet.values() or values_list() after combining querysets with extra() with union(), difference(), or intersection().  
						
						... 
						
						
						
						Regression in 0b66c3b442 
						
						
					 
					
						2018-08-29 10:00:15 +02:00 
						 
				 
			
				
					
						
							
							
								Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) 
							
						 
					 
					
						
						
							
						
						233c70f047 
					 
					
						
						
							
							Fixed   #29658  -- Registered model lookups in tests with a context manager.  
						
						
						
						
					 
					
						2018-08-21 12:17:46 -04:00 
						 
				 
			
				
					
						
							
							
								Andrew Brown 
							
						 
					 
					
						
						
							
						
						55810d94d0 
					 
					
						
						
							
							Refs  #29563  -- Fixed SQLCompiler.execute_sql() to respect DatabaseFeatures.can_use_chunked_reads.  
						
						
						
						
					 
					
						2018-07-25 18:08:57 -04:00 
						 
				 
			
				
					
						
							
							
								Josh Schneier 
							
						 
					 
					
						
						
							
						
						4d48ddd8f9 
					 
					
						
						
							
							Fixed   #28917  -- Prevented Paginator's unordered warning on EmptyQuerySet.  
						
						... 
						
						
						
						Thanks carltongibson for the idea and weijunji for the initial patch. 
						
						
					 
					
						2018-07-16 14:28:47 -04:00 
						 
				 
			
				
					
						
							
							
								Ian Foote 
							
						 
					 
					
						
						
							
						
						952f05a6db 
					 
					
						
						
							
							Fixed   #11964  -- Added support for database check constraints.  
						
						
						
						
					 
					
						2018-07-10 15:32:33 -04:00