Farhaan Bukhsh
664c98f1f8
Fixed #30413 -- Fixed test database signature on SQLite when test database name is provided.
...
Previously, the same signature was created for multiple in-memory
databases on SQLite when they had tests databases names
DATABASES['TEST']['NAME'].
2019-11-21 19:50:24 +01:00
Simon Charette
37e6c5b79b
Refs #25367 -- Moved conditional expression wrapping to the Exact lookup.
2019-11-21 11:56:35 +01:00
Jon Dufresne
f5ebdfce5c
Fixed #25388 -- Added an option to allow disabling of migrations during test database creation.
2019-11-20 20:42:38 +01:00
Caio Ariede
555bebe774
Fixed #30987 -- Added models.PositiveBigIntegerField.
2019-11-19 09:34:11 +01:00
Jon Dufresne
57a3d96ff5
Replaced unnecessary str()/bytes() calls with literals.
2019-11-18 15:30:10 +01:00
Mariusz Felisiak
8685e764ef
Fixed #30986 -- Fixed queryset crash when filtering against boolean RawSQL expressions on Oracle.
2019-11-18 08:50:09 +01:00
Hannes Ljungberg
6d590bcf1f
Fixed #30961 -- Fixed spaces in columns list SQL generated for indexes.
2019-11-08 08:52:47 +01:00
Nick Pope
02983c5242
Fixed #30943 -- Added BloomIndex to django.contrib.postgres.
2019-11-07 11:23:53 +01:00
Jon Dufresne
77aa74cb70
Refs #29983 -- Added support for using pathlib.Path in all settings.
2019-11-07 10:26:22 +01:00
Mariusz Felisiak
a20ea33ca6
Fixed DatabaseFeatures.has_select_for_update_nowait on MariaDB 10.3+.
...
Thanks Kola Erinoso for the report.
2019-11-05 10:18:47 +01:00
Nick Pope
7286eaf681
Refs #13312 -- Simplified handling of nulls ordering on MySQL.
...
MySQL & MariaDB support the standard IS NULL and IS NOT NULL so
the same workaround used for NULLS FIRST and NULLS LAST that is
used for SQLite < 3.30.0 can be used.
Thanks Simon Charette for the discussion.
2019-11-04 14:47:58 +01:00
Simon Charette
377c7cb2f7
Refs #23576 -- Disabled MySQL multi-alias deletion path on MariaDB 10.3.2+.
2019-10-31 08:14:30 +01:00
Hasan Ramezani
e3d0b4d550
Fixed #30899 -- Lazily compiled import time regular expressions.
2019-10-29 09:22: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
Simon Charette
7acef095d7
Fixed #23576 -- Implemented multi-alias fast-path deletion in MySQL backend.
...
This required moving the entirety of DELETE SQL generation to the
compiler where it should have been in the first place and implementing
a specialized compiler on MySQL/MariaDB.
The MySQL compiler relies on the "DELETE table FROM table JOIN" syntax
for queries spanning over multiple tables.
2019-10-24 12:24:53 +02:00
Mariusz Felisiak
e645f27907
Fixed DatabaseFeatures.update_can_self_select on MariaDB 10.3.2+.
2019-10-24 12:18:13 +02:00
Hannes Ljungberg
fa5f3291e7
Fixed #30903 -- Fixed migrations crash on PostgreSQL when adding Index with opclasses and ordering.
2019-10-24 09:33:14 +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
Hasan Ramezani
ef4beafa2c
Refs #28816 -- Prevented silencing data loss when decreasing CharField.max_length for ArrayField.base_field on PostgreSQL.
2019-10-17 12:50:53 +02:00
Mariusz Felisiak
187a64608d
Fixed #30885 -- Dropped support for MariaDB 10.1.
2019-10-16 18:40:48 +02:00
Mariusz Felisiak
4a849b6701
Fixed #30859 -- Fixed DatabaseFeatures.supports_aggregate_filter_clause on SQLite 3.30.1+.
2019-10-15 20:55:49 +02:00
Mariusz Felisiak
02c63b8f2f
Refs #26608 -- Fixed DatabaseFeatures.supports_frame_range_fixed_distance on SQLite 3.28+, MariaDB 10.2+, and MySQL 8.0.2+.
2019-10-09 13:07:50 +02:00
Anatol Ulrich
8ed6788aa4
Fixed #30821 -- Added ExtractIsoWeekYear database function and iso_week_day lookup.
2019-10-02 10:41:34 +02:00
Mariusz Felisiak
67e7dffe95
Fixed typo in BulkInsertMapper constant name.
2019-10-01 14:46:10 +02:00
Ahmet Kucuk
dc890bef5a
Fixed #30510 -- Fixed crash of QuerySet.bulk_create() with mixed-length texts on Oracle.
...
Text with more than 4000 characters must be set to as a CLOB on Oracle
what caused a mixed datatype error (ORA-01790) when shorter text
appeared in the same operation.
2019-10-01 12:38:58 +02:00
Mariusz Felisiak
580e644f24
Fixed #30800 -- Fixed migrations crash when altering a field with custom db_type().
...
Regression in 1378d665a1
.
2019-09-25 12:32:24 +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
Johannes Hoppe
b31e63879e
Fixed #29444 -- Allowed returning multiple fields from INSERT statements on Oracle.
2019-09-24 10:22:43 +02:00
Andrew
3346b78a8a
Fixed #30786 -- Used CONVERT_TZ to check if the time zone definitions are installed on MySQL.
...
Replaced a timezone check in the MySQL backend with one that doesn't
require access to the mysql.time_zone database.
2019-09-20 08:17:27 +02:00
Adnan Umer
241deed259
Fixed #30591 -- Fixed recreation of foreign key constraints on MySQL when altering type of referenced unique field.
...
Thanks Mariusz Felisiak for tests and Matthijs Kooijman for
investigation and initial patch.
2019-09-11 11:21:08 +02:00
Vojtech Bocek
b1d37fea8f
Fixed #28107 -- Added DatabaseFeatures.allows_group_by_selected_pks_on_model() to allow enabling optimization for unmanaged models.
2019-09-09 14:04:46 +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
Johannes Hoppe
736e7d44de
Refs #29444 -- Fixed DateField constructor in db.backends.oracle.utils.InsertVar.
2019-09-09 10:51:07 +02:00
Mariusz Felisiak
addabc492b
Fixed DatabaseFeatures.can_introspect_check_constraints on MariaDB < 10.2.22, 10.3.0 - 10.3.9.
...
Regression in e2c6a0858d
.
2019-09-06 11:53:54 +02:00
Mariusz Felisiak
e2c6a0858d
Fixed #30750 -- Added support for check constraints on MySQL 8.0.16+.
2019-09-05 09:18:34 +02:00
Johannes Hoppe
003bb34b21
Refs #29444 -- Made db.backends.oracle.utils.InsertVar use str as default.
2019-09-03 10:34:55 +02:00
Matthew Schinckel
4137fc2efc
Fixed #25367 -- Allowed boolean expressions in QuerySet.filter() and exclude().
...
This allows using expressions that have an output_field that is a
BooleanField to be used directly in a queryset filters, or in the
When() clauses of a Case() expression.
Thanks Josh Smeaton, Tim Graham, Simon Charette, Mariusz Felisiak, and
Adam Johnson for reviews.
Co-Authored-By: NyanKiyoshi <hello@vanille.bid>
2019-08-29 09:45:29 +02:00
Mariusz Felisiak
579909a13f
Refs #30591 -- Fixed introspection of check and unique column constraints on MariaDB.
...
Unnamed unique and check columns constraints have the same name as
a column. Ensure uniqueness by using custom names.
Thanks Adnan Umer for the report.
2019-08-26 09:15:37 +02:00
Claude Paroz
9386586f31
Replaced subprocess commands by run() wherever possible.
2019-08-23 10:53:36 +02:00
Nasir Hussain
6b16c91157
Fixed #30712 -- Allowed BLOB/TEXT defaults on MySQL 8.0.13+.
2019-08-22 12:23:10 +02:00
Mads Jensen
85ac838d9e
Fixed #21039 -- Added AddIndexConcurrently/RemoveIndexConcurrently operations for PostgreSQL.
...
Thanks to Simon Charettes for review.
Co-Authored-By: Daniel Tao <daniel.tao@gmail.com>
2019-08-21 13:10:06 +02:00
Nick Pope
21e559495b
Fixed #29979 , Refs #17337 -- Extracted AutoField field logic into a mixin and refactored AutoFields.
...
This reduces duplication by allowing AutoField, BigAutoField and
SmallAutoField to inherit from IntegerField, BigIntegerField and
SmallIntegerField respectively. Doing so also allows for enabling the
max_length warning check and minimum/maximum value validation for auto
fields, as well as providing a mixin that can be used for other possible
future auto field types such as a theoretical UUIDAutoField.
2019-08-20 09:22:25 +02:00
Adam Johnson
7da6a28a44
Fixed #27676 -- Allowed BLOB/TEXT defaults on MariaDB 10.2.1+.
2019-08-16 11:39:37 +02:00
Simon Charette
efa1908f66
Refs #25367 -- Moved Oracle Exists() handling to contextual methods.
...
Oracle requires the EXISTS expression to be wrapped in a CASE WHEN in
the following cases.
1. When part of a SELECT clause.
2. When part of a ORDER BY clause.
3. When compared against another expression in the WHERE clause.
This commit moves the systematic CASE WHEN wrapping of Exists.as_oracle
to contextual .select_format, Lookup.as_oracle, and OrderBy.as_oracle
methods in order to avoid unnecessary wrapping.
2019-08-13 06:48:14 +02:00
Simon Charette
2fb872e56f
Refs #23879 -- Made introspection respect required_db_features.
2019-08-12 06:33:46 +02:00
Nick Pope
194d1dfc18
Fixed #30661 -- Added models.SmallAutoField.
2019-08-02 11:39:01 +02:00
Mariusz Felisiak
d14fa04ab3
Removed obsolete mentions of a check constraint in BaseDatabaseSchemaEditor.add_constraint()/remove_constraint() docstrings.
2019-08-02 07:09:37 +02:00
Mariusz Felisiak
ff111ea5e3
Refs #30664 -- Fixed migrations crash when altering AutoField/BigAutoField with quoted db_column on PostgreSQL.
2019-08-01 12:06:32 +02:00
Ngalim Siregar
e4684220af
Fixed #30664 -- Fixed migrations crash when altering table on SQLite or altering AutoField/BigAutoField on PostgreSQL for models with quoted db_table.
2019-08-01 12:06:32 +02:00
Hasan Ramezani
e3fc9af4ab
Refs #30593 -- Fixed introspection of check constraints columns on MariaDB.
2019-07-30 16:32:13 +02:00
Hasan Ramezani
b2aad9ad4d
Refs #30593 -- Added _parse_constraint_columns() hook to introspection on MariaDB.
2019-07-30 16:32:13 +02:00
Mariusz Felisiak
8d52a525c8
Refs #29548 -- Fixed DatabaseWrapper.display_name on MariaDB.
2019-07-23 13:34:06 +02:00
Georgi Yanchev
c6581a40be
Fixed #30644 -- Made introspection use pg_table_is_visible() instead of filtering by public schema on PostgreSQL.
2019-07-22 08:14:53 +02:00
Mariusz Felisiak
842fd620ff
Simplified get_key_columns()/get_relations() introspection methods for PostgreSQL.
2019-07-20 15:15:41 +02:00
Hasan Ramezani
1fc2c70f76
Fixed #30593 -- Added support for check constraints on MariaDB 10.2+.
2019-07-19 11:05:06 +02:00
Yann Sionneau
e47b8293a7
Fixed #30636 -- Fixed options ordering when cloning test database on MySQL.
...
--defaults-file must be given before other options.
2019-07-16 07:25:43 +02:00
Johannes Hoppe
bc91f27a86
Refs #29444 -- Added support for fetching a returned non-integer insert values on Oracle.
...
This is currently not actively used, since the ORM will ask the
SQL compiler to only return auto fields.
2019-07-08 08:53:08 +02:00
Min ho Kim
fbb83fefd4
Fixed typos in comments and docs.
2019-07-02 09:36:17 +02:00
Andrew Godwin
a415ce70be
Fixed #30451 -- Added ASGI handler and coroutine-safety.
...
This adds an ASGI handler, asgi.py file for the default project layout,
a few async utilities and adds async-safety to many parts of Django.
2019-06-20 12:29:43 +02:00
can
fde9b7d35e
Fixed #30128 -- Fixed handling timedelta timezone in database functions.
2019-06-13 09:29:43 +02:00
Mariusz Felisiak
b6c4766f53
Refs #29548 -- Updated docs for MariaDB support.
2019-05-27 19:59:49 +02:00
Hasan Ramezani
1378d665a1
Fixed #28816 -- Prevented silencing data loss when decreasing CharField.max_length on PostgreSQL.
2019-05-21 14:15:43 +02:00
Przemysław Suliga
af5ec222cc
Used time.monotonic() instead of time.time() where applicable.
...
time.monotonic() available from Python 3.3:
- Nicely communicates a narrow intent of "get a local system monotonic
clock time" instead of possible "get a not necessarily accurate Unix
time stamp because it needs to be communicated to outside of this
process/machine" when time.time() is used.
- Its result isn't affected by the system clock updates.
There are two classes of time.time() uses changed to time.monotonic()
by this change:
- measuring time taken to run some code.
- setting and checking a "close_at" threshold for for persistent db
connections (django/db/backends/base/base.py).
2019-05-08 18:34:22 +02:00
Rob Golding-Day
4043dc69cd
Fixed #30444 -- Moved SQL generation for tables to BaseDatabaseSchemaEditor.table_sql().
2019-05-07 10:28:14 +02:00
Daniel Hahler
6d37c089ae
Readded comment about the default params of cursor.execute().
...
It was removed in in 728548e483
.
2019-05-07 08:13:30 +02:00
Simon Charette
a8b3f96f6a
Fixed #30408 -- Fixed crash when adding check constraints with LIKE operator on Oracle and PostgreSQL.
...
The LIKE operator wildcard generated for contains, startswith, endswith and
their case-insensitive variant lookups was conflicting with parameter
interpolation on CREATE constraint statement execution.
Ideally we'd delegate parameters interpolation in DDL statements on backends
that support it but that would require backward incompatible changes to the
Index and Constraint SQL generating methods.
Thanks David Sanders for the report.
2019-04-30 07:38:22 +02:00
kingbuzzman
673fe2e3ec
Fixed #30148 -- Logged COPY ... TO statements in connection.queries on PostgreSQL.
2019-04-29 14:20:17 +02:00
kingbuzzman
f7408b49a5
Refs #30148 -- Moved logging queries in CursorDebugWrapper to debug_sql() contextmanager.
2019-04-29 13:34:32 +02:00
Jon Dufresne
8b3f1c35dd
Removed unnecessary assignments in various code.
2019-04-24 13:09:29 +02:00
Mariusz Felisiak
994a00eb70
Refs #30380 -- Used cursor._executed in DatabaseOperations.last_executed_query() on MySQL.
...
Regression in a41b09266d
.
Thanks Tobias Krönke for the report.
2019-04-21 12:17:05 +02:00
Mariusz Felisiak
a41b09266d
Fixed #30380 -- Handled bytes in MySQL backend for PyMySQL support.
...
This commit partly reverts efd8a82e26
.
2019-04-19 20:34:20 +02:00
Ville Skyttä
03db5fddfd
Fixed typos in docs, comments, and exception messages.
2019-04-18 09:33:53 +02:00
Oleh Mykytiuk
177fa08339
Fixed #30370 -- Added dbshell support for client TLS certificates on PostgreSQL.
2019-04-18 08:10:31 +02:00
Dolan Antenucci
f944cb3d3b
Fixed #30266 -- Kept a sequence owner when altering an AutoField/BigAutoField on PostgreSQL.
2019-04-08 22:24:18 +02:00
can
cef3f2d3c6
Fixed #28373 -- Used connection timezone instead of UTC when making dates timezone-aware on MySQL, SQLite, and Oracle.
...
Thanks vtalpaert for the initial patch.
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-04-08 08:59:17 +02:00
Mariusz Felisiak
79065b55a7
Refs #20010 -- Unified DatabaseOperations.last_executed_query() on Oracle with other db backends.
...
Thanks Simon Charette for the review.
2019-04-05 21:35:51 +02:00
Mariusz Felisiak
5efaf078f7
Fixed #30331 -- Added support for psycopg2 2.8.
2019-04-05 11:05:53 +02:00
msg
755673e1bc
Fixed #30307 -- Fixed incorrect quoting of database user password when using dbshell on Oracle.
...
Regression in acfc650f2a
.
2019-04-04 08:33:28 +02:00
Nick Pope
198a2a9381
Removed unnecessary /static from links to PostgreSQL docs.
2019-03-29 21:49:44 -04:00
Mariusz Felisiak
881362986a
Fixed "byte string" typo in various docs and comments.
2019-03-28 10:00:12 +01:00
Nick Pope
d26b242443
Fixed #30271 -- Added the Sign database function.
2019-03-22 12:52:39 +01:00
Nick Pope
0b70985f42
Fixed #30240 -- Added SHA1, SHA224, SHA256, SHA384, and SHA512 database functions.
...
Thanks Mariusz Felisiak and Tim Graham for reviews.
2019-03-20 19:30:43 +01:00
Simon Charette
386d89ab55
Fixed #30258 -- Adjusted postgres schema value quoting of ranges.
...
Thanks Tilman Koschnick for the report and patch.
2019-03-18 09:05:39 +01:00
Paveł Tyślacki
5c17c273ae
Refs #30172 -- Prevented removing a model Meta's index/unique_together from removing Meta constraints/indexes.
2019-03-17 20:50:57 -04:00
Paveł Tyślacki
4bb859e246
Refs #30172 -- Prevented removing a field's check or unique constraint from removing Meta constraints.
2019-03-17 20:50:22 -04:00
Paveł Tyślacki
782d85b6df
Fixed #30183 -- Added introspection of inline SQLite constraints.
2019-03-13 10:24:28 -04:00
Hang Park
142e1ead76
Fixed #30242 -- Removed extra space before LIMIT/OFFSET SQL.
2019-03-09 21:32:20 +01:00
Paveł Tyślacki
4492be348a
Refs #30183 -- Moved SQLite table constraint parsing to a method.
2019-03-01 17:05:36 -05:00
Paveł Tyślacki
b777c0675e
Unified nonexistent foreign key introspection value for SQLite.
2019-03-01 15:51:37 -05:00
Mariusz Felisiak
9ff18c08c3
Refs #28643 -- Added MD5 database function.
...
Thanks Tim Graham, Nick Pope and Simon Charette for reviews.
2019-02-21 10:52:51 +01:00
Simon Charette
7071f8f272
Fixed #30193 , Refs #28478 -- Avoided PostgreSQL connection health checks on initialization.
...
This addressed a regression introduced by a96b901932
as identified by Ran Benita.
2019-02-20 10:59:40 +01:00
Jon Dufresne
76990cbbda
Fixed #30171 -- Fixed DatabaseError in servers tests.
...
Made DatabaseWrapper thread sharing logic reentrant. Used a reference
counting like scheme to allow nested uses.
The error appeared after 8c775391b7
.
2019-02-14 10:04:55 -05:00
Daniel Bowring
cf826c9a91
Fixed #30173 -- Simplified db.backends.postgresql.client.
2019-02-13 17:12:02 -05:00
Dan Davis
2bd8df243a
Fixed #30184 -- Removed ellipsis characters from shell output strings.
...
Partially reverted 50b8493581
(refs #29654 )
to avoid a crash when the user shell doesn't support non-ASCII characters.
2019-02-13 13:59:44 -05:00
Sergey Fedoseev
1933e56eca
Removed uneeded generator expressions and list comprehensions.
2019-02-09 09:18:48 -05:00
Simon Charette
b8c48d06fa
Refs #26608 -- Added a database feature for fixed frame range distance support.
2019-02-09 08:47:41 -05:00
Simon Charette
ebd2fe1861
Refs #30027 -- Enabled window function tests on SQLite 3.25+.
2019-02-09 08:47:40 -05:00
Mariusz Felisiak
759a9b710c
Updated Oracle docs links to Oracle 18c.
2019-02-07 09:59:47 +01:00
Tim Graham
77d25dbd0f
Refs #27753 -- Favored SafeString over SafeText.
2019-02-06 14:12:06 -05:00