Commit Graph

4181 Commits

Author SHA1 Message Date
Tim Graham 100b8dd163
Renamed QuerySet.earliest()/latest() helper method. 2018-12-30 11:43:39 -05:00
Mariusz Felisiak dd8ed64113
Fixed #29851 -- Fixed crash of annotations with window expressions in Subquery. 2018-12-27 20:21:57 +01:00
Tim Graham b74b6736d0
Refs #29547 -- Skipped an unsupported partial index test on older versions of SQLite.
Follow up to e5b8626c0e.
2018-12-26 11:20:11 -05:00
Simon Charette ec7bf6d826 Refs #20483 -- Cached Oracle references retrieval on sql_flush(). 2018-12-26 09:20:21 -05:00
Simon Charette 2b2ae4eeb7 Refs #30054, #20483 -- Cached SQLite references graph retrieval on sql_flush(). 2018-12-26 09:19:44 -05:00
Nick Pope 83677faf86 Fixed #30056 -- Added SQLite support for StdDev and Variance functions. 2018-12-24 11:14:58 -05:00
Nick Pope e626a3f993 Renamed Sqlite and Sqlite3 references to SQLite. 2018-12-22 18:52:54 -05:00
Sergey Fedoseev a68ea23101 Fixed #29970, #30041 -- Made ModelBase.__new__() pass attrs without contribute_to_class() to type.__new__(). 2018-12-22 18:11:24 -05:00
Simon Charette ce8b65ac5e Fixed #30054 -- Implemented cascaded flush on SQLite.
This is required to maintain foreign key integrity when using
TransactionTestCase.available_apps.

Refs #30033, #14204, #20483.
2018-12-22 17:47:48 -05:00
Tim Graham d5af14aa84 Fixed #30055 -- Dropped support for SQLite < 3.8.3. 2018-12-22 16:59:28 -05:00
Simon Charette 790d108c97 Refs #30033 -- Checked constraints before committing SQLite schema changes.
This order of operations is more in line with SQLite's documented table
rebuild procedure and ensures that changes aren't committed if foreign key
integrity is broken.
2018-12-22 15:26:46 -05:00
Simon Charette 6b9bd0933e Refs #29928 -- Added supports_pragma_foreign_key_check SQLite feature flag. 2018-12-22 15:14:33 -05:00
Simon Charette f3eb1cfb58 Refs #29928 -- Corrected SQLite's can_defer_constraint_checks feature flag. 2018-12-22 15:13:46 -05:00
Simon Charette 25a0781a16 Refs #29182 -- Corrected SQLite's supports_atomic_references_rename feature flag. 2018-12-22 14:58:08 -05:00
Simon Charette e5b8626c0e Refs #29547 -- Corrected SQLite's supports_partial_indexes feature flag. 2018-12-22 14:51:59 -05:00
Simon Charette 20f6f9eaa1 Renamed SQLite3 references to to SQLite.
The version suffix isn't part of the product name.
2018-12-22 14:20:43 -05:00
Dakota Hawkins 8d3147e130 Fixed #30031 -- Added --no-header option to makemigrations/squashmigrations. 2018-12-19 12:41:31 +01:00
Simon Charette 1939dd49d1 Fixed #29928 -- Enabled deferred constraint checks on SQLite 3.20+.
Refs #11665, #14204.

Thanks Michel Samia for the report.
2018-12-17 11:03:44 +01:00
Simon Charette 894cb13779 Refs #29182 -- Stopped relying on legacy alter table semantic on SQLite 3.26+.
SQLite 3.26 changed the behavior of table and column renaming operations to
repoint foreign key references even if foreign key checks are disabled.

This makes the workarounds in place to simulate this behavior unnecessary on
SQLite 3.26+. Refs #30033.
2018-12-17 10:44:05 +01:00
Simon Charette 7289874adc Fixed #30033 -- Conformed to the recommended table alterations procedure on SQlite3.
Refs #29182.

The previous implementation was following a procedure explicitly documented
as incorrect and was the origin of the breakage experienced on SQLite 3.26
release that were addressed by c8ffdbe514.

Thanks to Richard Hipp for pointing out the usage of the incorrect procedure.
2018-12-17 10:44:05 +01:00
Simon Charette a939d630a4 Refs #29928 -- Implemented fast constraint checking on SQLite 3.20+. 2018-12-17 10:44:05 +01:00
Simon Charette 315357ad25 Fixed #30023 -- Prevented SQLite schema alterations while foreign key checks are enabled.
Prior to this change foreign key constraint references could be left pointing
at tables dropped during operations simulating unsupported table alterations
because of an unexpected failure to disable foreign key constraint checks.

SQLite3 does not allow disabling such checks while in a transaction so they
must be disabled beforehand.

Thanks ezaquarii for the report and Carlton and Tim for the review.
2018-12-15 18:51:59 -05:00
Mariusz Felisiak f0082b9a77
Refs #28670 -- Fixed DatabaseFeatures.supports_slicing_ordering_in_compound on Oracle. 2018-12-10 12:56:09 +00:00
Simon Charette c8ffdbe514 Fixed #29182 -- Fixed schema table alteration on SQLite 3.26+.
SQLite 3.26 repoints foreign key constraints on table renames even when
foreign_keys pragma is off which breaks every operation that requires
a table rebuild to simulate unsupported ALTER TABLE statements.

The newly introduced legacy_alter_table pragma disables this behavior
and restores the previous schema editor assumptions.

Thanks Florian Apolloner, Christoph Trassl, Chris Lamb for the report and
troubleshooting assistance.
2018-12-07 13:32:37 -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
Simon Charette 53269bcaaf Fixed #30011 -- Fixed queries that reuse filtered aggregates.
Thanks Taqi Abbas and Raphael Kimmig for the report.
2018-12-06 14:55:35 -05:00
Tim Graham 88619e6129
Bumped mysqlclient requirement to >= 1.3.13.
There are test failures with older versions.
2018-12-06 14:49:27 -05:00
Tim Graham 284b3221a2 Fixed #30013 -- Fixed DatabaseOperations.last_executed_query() with mysqlclient 1.3.14+. 2018-12-05 14:46:23 -05:00
Nick Pope c3bbf1fd4c Refs #28643 -- Skipped ATan2() workaround on SpatiaLite 5+. 2018-11-30 13:59:05 -05:00
Prabakaran Kumaresshan 0d724ce916 Fixed #30001 -- Marked UUIDField.description for translation. 2018-11-30 11:23:17 -05:00
Tim Fiedler b07273a0f7 Fixed #29987 -- Detected unmanaged model deletions. 2018-11-30 09:57:43 -05:00
Mariusz Felisiak f091ea3515
Refs #29722 -- Added introspection of materialized views for Oracle.
Thanks Tim Graham for the review.
2018-11-26 19:45:05 +01:00
Nick Pope c512912463 Refs #23801 -- Made integer field max_length warning show correct field type. 2018-11-23 14:40:46 -05:00
Nick Pope 856ba1ec86 Removed redundant BigIntegerField.empty_strings_allowed (already inherited). 2018-11-23 14:22:58 -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
Mariusz Felisiak d5f4ce9849
Fixed #29949 -- Refactored db introspection identifier converters.
Removed DatabaseIntrospection.table_name_converter()/column_name_converter()
and use instead DatabaseIntrospection.identifier_converter().

Removed DatabaseFeatures.uppercases_column_names.

Thanks Tim Graham for the initial patch and review and Simon Charette
for the review.
2018-11-21 09:06:50 +01:00
Tim Graham acdd18dffc
Changed BaseDatabaseSchemaEditor._effective_default() to staticmethod.
Follow up to 9cac10eee4.
2018-11-20 18:01:18 -05:00
Nick Pope ebd270627c Refs #29722 -- Added introspection of partitions for PostgreSQL. 2018-11-19 14:06:01 -05:00
Sergey Fedoseev 80ba7a881f Fixed cached_properties that share a common property.
The aliases aren't cached and thus the old usage will be an error after
refs #29478.
2018-11-19 08:59:46 -05:00
Tim Graham 9cac10eee4 Added BaseDatabaseSchemaEditor._effective_default() to allow testing without a connection. 2018-11-17 19:27:53 -05:00
Tim Graham e62f6e0968 Fixed #29505 -- Removed SchemaEditor's calling of callable defaults.
Thanks Eugene Pakhomov for the suggested fix.
2018-11-17 19:27:53 -05:00
Simon Charette 0cf85e6b07 Refs #29908 -- Optimized known related objects assignment.
Since CPython implements a C level attrgetter(*attrs) it even outperforms the
most common case of a single known related object since the resulting attribute
values tuple is built in C.
2018-11-17 18:56:11 -05:00
Ian Foote e1fc07c047 Fixed #17930 -- Allowed ORing (|) with sliced QuerySets. 2018-11-15 09:43:58 -05:00
Hasan Ramezani 6d4e5feb79 Fixed #29835 -- Made RelatedFieldListFilter respect ModelAdmin.ordering. 2018-11-14 14:29:39 -05:00
Mariusz Felisiak ff8020ed49 Fixed #29788 -- Added support for Oracle Managed File (OMF) tablespaces. 2018-11-13 18:22:41 -05:00
Simon Charette db13bca60a Fixed #29641 -- Added support for unique constraints in Meta.constraints.
This constraint is similar to Meta.unique_together but also allows
specifying a name.

Co-authored-by: Ian Foote <python@ian.feete.org>
2018-11-13 17:57:27 -05:00
Simon Charette dba4a634ba Refs #29641 -- Refactored database schema constraint creation.
Added a test for constraint names in the database.

Updated SQLite introspection to use sqlparse to allow reading the
constraint name for table check and unique constraints.

Co-authored-by: Ian Foote <python@ian.feete.org>
2018-11-13 15:25:44 -05:00
Tim Graham f82be9ebc7
Fixed #29934 -- Added sqlparse as a require dependency. 2018-11-09 19:09:36 -05:00
Srinivas Reddy Thatiparthy 978ad6d4c0 Removed unused 'tz' variable in typecast_timestamp(). 2018-11-09 12:47:02 -05:00
Simon Charette 75dfa92a05 Fixed #29908 -- Fixed setting of foreign key after related set access if ForeignKey uses to_field.
Adjusted known related objects handling of target fields which relies on
from and to_fields and has the side effect of fixing a bug bug causing
N+1 queries when using reverse foreign objects.

Thanks Carsten Fuchs for the report.
2018-11-08 19:51:15 -05:00