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
Aymeric Augustin
3bb6a4390c
Refs #27753 -- Favored force/smart_str() over force/smart_text().
2019-02-06 14:12:06 -05:00
Mariusz Felisiak
21bb71ef0d
Fixed #30157 -- Dropped support for Oracle 12.1.
...
Thanks Tim Graham for the review.
2019-02-06 19:25:04 +01:00
Tim Graham
39ebdf5a3c
Fixed #30155 -- Dropped support for PostgreSQL 9.4 and PostGIS 2.1.
2019-02-04 18:07:02 -05:00
Mariusz Felisiak
85f924a9b9
Refs #28859 -- Simplified fetch_returned_insert_id() by using int data type for binding variable on Oracle.
2019-02-04 16:31:23 +01:00
Johannes Hoppe
b131f9c79f
Refs #29444 -- Renamed DatabaseFeatures.can_return_id* to be generic for other columns.
2019-01-30 15:31:56 -05:00
Tim Graham
7e6b214ed3
Fixed #30116 -- Dropped support for Python 3.5.
2019-01-30 10:19:48 -05:00
Dan Tao
738faf9da2
Fixed #30108 -- Allowed adding foreign key constraints in the same statement that adds a field.
2019-01-29 15:42:57 -05:00
Tim Graham
7444f32527
Refs #30055 -- Added a helpful error when SQLite is too old.
2019-01-28 11:14:45 -05:00
Nick Pope
bff748df3e
Fixed #30115 -- Fixed SQLite introspection crash with a varchar primary key.
...
Removed obsolete max_length handling for CharField that caused the issue.
Regression in a35d2a4510
.
2019-01-22 19:02:34 -05:00
Nick Pope
e19f58fc01
Inlined DatabaseIntrospection._table_info() for SQLite.
2019-01-22 18:23:37 -05:00
Mariusz Felisiak
709a8b861d
Optimized Oracle PKs introspection by adding get_primary_key_column().
2019-01-18 16:50:06 +01:00
Tim Graham
944469939b
Refs #25175 -- Removed db.backends.postgresql_psycopg2 per deprecation timeline.
2019-01-17 10:50:25 -05:00
Simon Charette
a96b901932
Refs #28478 -- Prevented timezone assignment for unusable PostgreSQL connections.
2019-01-14 16:05:00 -05:00
Nick Pope
abf8e390a4
Refs #28643 -- Added Reverse database function.
...
Thanks Mariusz Felisiak for Oracle advice and review.
2019-01-12 10:45:48 -05:00
Paveł Tyślacki
b69f8eb04c
Fixed #30062 -- Added support for unique conditional constraints.
2019-01-12 09:50:20 -05:00
Paveł Tyślacki
1e837c4b23
Used None as the empty value for condition in Index's SQL construction.
2019-01-12 09:34:10 -05:00
Paveł Tyślacki
647be06538
Renamed variables after generalization of constraints.
...
Follow up to 8eae094638
.
2019-01-10 18:54:41 -05:00
Simon Charette
bc05547cd8
Fixed #28658 -- Added DISTINCT handling to the Aggregate class.
2019-01-09 17:52:36 -05:00
Nick Pope
a35d2a4510
Refs #23748 -- Added AutoField introspection for SQLite.
2019-01-09 09:59:15 -05:00
Nick Pope
e7f0e9b704
Renamed import in MySQL introspection backend for consistency.
2019-01-09 08:12:45 -05:00
Mariusz Felisiak
97844a3213
Fixed typo in django/db/backends/base/features.py.
2019-01-03 20:10:33 +01:00
Paveł Tyślacki
0123b67f6b
Fixed #30060 -- Moved SQL generation for indexes and constraints to SchemaEditor.
2019-01-01 09:39:58 -05: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
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
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
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
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
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
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
Tom Forbes
d5e52f2bef
Removed DatabaseOperation.savepoint_create/rollback_sql() on Oracle.
...
Obsolete since 918f44e3ae
.
2018-11-04 18:21:59 -05:00
Jayantha Gumballi
dfcdc8992f
Fixed #29886 -- Fixed unaccent lookup when PostgreSQL's standard_conforming_strings option is off.
...
Thanks Tom McClure for the patch.
2018-11-01 11:14:34 -04:00
Mads Jensen
a906c98982
Fixed #29547 -- Added support for partial indexes.
...
Thanks to Ian Foote, Mariusz Felisiak, Simon Charettes, and
Markus Holtermann for comments and feedback.
2018-10-29 19:34:54 -04:00
thomazzo
9625d13f7b
Fixed #29882 -- Added events and stored routines to MySQL's cloned test databases.
2018-10-29 14:45:30 -04:00
Simon Charette
95bda03f2d
Fixed #29868 -- Retained database constraints on SQLite table rebuilds.
...
Refs #11964 .
Thanks Scott Stevens for testing this upcoming feature and the report.
2018-10-29 10:33:41 +01:00
Hampus Dunström
5e8a07d69d
Fixed #29763 -- Added support for column renaming on SQLite.
2018-10-27 20:26:39 -04:00
Tim Graham
717ee63e56
Refs #27025 -- Removed obsolete sqlite3 transaction management workaround for Python 3.6+.
...
Obsolete per https://bugs.python.org/issue10740#msg274816 .
2018-10-25 19:54:48 -04:00
Mariusz Felisiak
c6525bea9e
Fixed #29534 -- Made dbshell use rlwrap on Oracle if available.
2018-10-25 19:39:42 -04:00
Sergey Fedoseev
9a88c6dd6a
Fixed #29827 -- Fixed reuse of test databases with --keepdb on MySQL.
...
Regression in e1253bc26f
.
2018-10-25 19:37:41 -04:00
Tim Graham
f1d1634493
Removed useless check in sqlite's DatabaseWrapper._savepoint_allowed().
...
Obsolete since 27193aea00
.
2018-10-25 10:17:37 -04:00
Tim Graham
9b52bd6575
Made DatabaseFeatures.uses_savepoints default to True.
2018-10-25 10:02:47 -04:00
Mariusz Felisiak
641742528a
Fixed F841 flake8 warning.
2018-10-24 09:13:10 -04:00
Mariusz Felisiak
328f5627dd
Fixed #29870 -- Added DurationField introspection for Oracle and PostgreSQL.
...
Thanks Tim Graham for the review.
2018-10-21 09:08:05 +02:00
Florian Apolloner
bc7dd8490b
Fixed #21171 -- Avoided starting a transaction when a single (or atomic queries) are executed.
...
Checked the following locations:
* Model.save(): If there are parents involved, take the safe way and use
transactions since this should be an all or nothing operation.
If the model has no parents:
* Signals are executed before and after the previous existing
transaction -- they were never been part of the transaction.
* if `force_insert` is set then only one query is executed -> atomic
by definition and no transaction needed.
* same applies to `force_update`.
* If a primary key is set and no `force_*` is set Django will try an
UPDATE and if that returns zero rows it tries an INSERT. The first
case is completly save (single query). In the second case a
transaction should not produce different results since the update
query is basically a no-op then (might miss something though).
* QuerySet.update(): no signals issued, single query -> no transaction
needed.
* Model/Collector.delete(): This one is fun due to the fact that is
does many things at once.
Most importantly though: It does send signals as part of the
transaction, so for maximum backwards compatibility we need to be
conservative.
To ensure maximum compatibility the transaction here is removed only
if the following holds true:
* A single instance is being deleted.
* There are no signal handlers attached to that instance.
* There are no deletions/updates to cascade.
* There are no parents which also need deletion.
2018-10-17 12:19:02 +02:00
Mariusz Felisiak
f2e2a1bd4b
Fixed #29845 -- Fixed Cast crash on MySQL when casting to DecimalField.
2018-10-15 15:57:22 +02:00
Mariusz Felisiak
a3052c35d1
Fixed various comments in django/db/backends/oracle/base.py.
2018-10-13 20:25:23 +02:00
Mariusz Felisiak
52fec5d18f
Fixed #29836 -- Bumped required cx_Oracle to 6.0.
2018-10-11 11:43:16 +02:00
Sergey Fedoseev
3957f767bb
Simplified handling of DurationField values on MySQL/MariaDB.
2018-10-09 10:38:42 -04:00
Jon Dufresne
efd8a82e26
Refs #27795 -- Removed force_bytes() usage in MySQL backend.
...
The mysqlclient cursor attribute `_last_executed` is always stored as
bytes. Decode it.
TextField values are already type str. No need to decode.
2018-10-03 10:37:36 +02:00
Nick Pope
bf8b625a3b
Refs #29722 -- Added introspection of materialized views for PostgreSQL.
2018-10-02 14:02:04 -04:00
Nick Pope
45ef3df7d0
Fixed #29719 -- Added introspection of foreign tables for PostgreSQL.
...
Thanks infinite-l00p for the initial patch.
2018-10-02 14:01:24 -04:00
Jon Dufresne
0bf7b25f8f
Added django.db.backends.utils.names_digest() to remove redundant code.
2018-10-02 10:41:43 -04:00
Jon Dufresne
c37b844349
Fixed ResourceWarning in MySQL's _clone_test_db().
2018-10-02 10:23:21 -04:00
Claude Paroz
fc3a463048
Fixed #29767 -- Made date-related casts work on SQLite
...
Thanks Rémy Hubscher for the report and Tim Graham and Simon Charette for the reviews.
2018-10-01 13:27:30 +02: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
.
Thanks Tim Graham for the review and Jani Tiainen for help.
2018-09-26 20:18:48 +02:00
Mariusz Felisiak
90d93a1b42
Made DatabaseWrapper.oracle_version() return a full version tuple.
2018-09-26 08:51:27 +02:00
Jon Dufresne
82f286cf6f
Refs #29784 -- Switched to https:// links where available.
2018-09-26 08:48:47 +02:00
Oleg
d1d5c97bc2
Fixed #29778 -- Fixed quoting of unique index names.
...
Regression in 3b429c9673
.
2018-09-25 16:00:20 -04:00
Jon Dufresne
abeed587b1
Refs #27795 -- Removed force_bytes() usage in db/backends/base/schema.py.
2018-09-25 09:54:06 -04:00
Jon Dufresne
1d65ddd9c3
Refs #27795 -- Removed force_bytes() usage in db/backends/utils.py.
2018-09-25 09:53:13 -04:00
Tom Forbes
9cbdb44014
Fixed #23646 -- Added QuerySet.bulk_update() to efficiently update many models.
2018-09-18 16:14:44 -04:00
Claude Paroz
f5e347a640
Fixed #27899 -- Added support for phrase/raw searching in SearchQuery.
...
Thanks Tim Graham, Nick Pope, and Claude Paroz for contribution and review.
2018-09-17 12:03:52 -04:00
Mariusz Felisiak
da92ec7962
Fixed #29759 -- Fixed crash on Oracle when fetching a returned insert id with cx_Oracle 7.
2018-09-16 12:45:34 +02:00
Nick Pope
f87f9c5f63
Simplified introspection methods for PostgreSQL.
2018-09-14 14:34:43 -04:00
Srinivas Reddy Thatiparthy
34d6bceec4
Fixed #29500 -- Fixed SQLite function crashes on null values.
...
Co-authored-by: Srinivas Reddy Thatiparthy <thatiparthysreenivas@gmail.com>
Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2018-09-10 15:08:55 -04:00
Nick Pope
76dfa834e7
Combined two identical SQLite functions.
2018-09-10 14:41:58 -04:00
Nick Pope
af7a758dcb
Made some date parsing in SQLite functions more DRY.
2018-09-10 14:41:20 -04:00
Jon Dufresne
5311a36da5
Refs #29654 -- Replaced three dots with ellipsis in DB creation output strings.
2018-08-28 07:56:34 -04:00
Claude Paroz
50b8493581
Refs #29654 -- Replaced three dots with ellipsis character in output strings.
2018-08-22 09:13:58 -04:00
Sigurd Ljødal
3e09b37f80
Fixed #28649 -- Added ExtractIsoYear database function and iso_year lookup.
2018-08-18 13:09:15 -04:00
Jon Dufresne
bf17f5e884
Refs #29015 -- Added database name to PostgreSQL database name too long exception.
2018-08-17 12:43:56 -04:00
Tom
f1fbef6cd1
Fixed #28668 -- Allowed QuerySet.bulk_create() to ignore insert conflicts.
2018-08-03 17:40:46 -04:00
Mariusz Felisiak
1a9cbf41a1
Fixed #29613 -- Fixed --keepdb on PostgreSQL if the database exists and the user can't create databases.
...
Regression in e776dd2db6
.
Thanks Tim Graham for the review.
2018-08-03 10:31:55 +02:00
Nick Pope
6b4d1ec8ff
Fixed #29614 -- Added BTreeIndex to django.contrib.postres.
2018-08-02 11:42:57 -04:00
Nick Pope
d6381d3559
Fixed #28990 -- Added autosummarize parameter to BrinIndex.
2018-08-02 11:26:58 -04:00
Tom Forbes
4198445afc
Refs #29548 -- Fixed failing window tests on MariaDB 10.3.
2018-07-30 19:54:56 -04:00
Andrew Brown
c0e3c65b9d
Fixed #29563 -- Added result streaming for QuerySet.iterator() on SQLite.
2018-07-25 18:08:57 -04:00
Mariusz Felisiak
ac25dd1f8d
Fixed #29569 -- Fixed Cast() with AutoField and BigAutoField.
2018-07-25 08:00:11 +02:00
Claude Paroz
65503ca097
Fixed #29040 -- Made test database creation messages use a consistent output stream.
2018-07-19 18:05:33 -04:00
Oliver Sauder
a07a49ee32
Fixed #29559 -- Fixed TransactionTestCase.reset_sequences for auto-created m2m through models.
2018-07-11 17:20:29 -04:00
Ian Foote
952f05a6db
Fixed #11964 -- Added support for database check constraints.
2018-07-10 15:32:33 -04:00
Sergey Fedoseev
6fbfb5cb96
Removed Oracle's fetchmany() and fetchall() wrappers.
...
Follow up to e06cab2600
.
2018-07-10 15:03:09 -04:00
Tom Forbes
45c035c823
Refs #29548 -- Fixed non-GIS test failures on MariaDB.
2018-07-09 14:59:42 -04:00
Michal Čihař
39e287d8bf
Fixed #29544 -- Fixed regex lookup on MariaDB.
...
Regression in 4249076844
.
2018-07-05 12:11:49 -04:00
Junyi Jiao
a0b19a0f5b
Refs #28643 -- Added math database functions.
...
Thanks Nick Pope for much review.
2018-07-05 11:02:12 -04:00
Mariusz Felisiak
d7d32964ef
Fixed #29541 -- Fixed Cursor.execute() crash when setinputsizes() is called without arguments wit cx_Oracle 6.4.
2018-07-04 12:57:29 -04:00
Tim Graham
4009e1f2ab
Removed unused code in django.db.backends.utils.format_number().
2018-07-02 16:10:35 -04:00
Sergey Fedoseev
b49b59b029
Simplified SQLite's Decimal adapter.
2018-07-02 13:36:40 -04:00
Ian Foote
38cada7c94
Fixed #28077 -- Added support for PostgreSQL opclasses in Index.
...
Thanks Vinay Karanam for the initial patch.
2018-06-29 17:00:28 -04:00
Thomas Grainger
4fba321a45
Fixed #29480 -- Made MySQL backend retrieve constraint columns in their defined order.
2018-06-29 10:43:53 -04:00
Tim Graham
b9cf764be6
Fixed #29517 -- Added support for SQLite column check constraints on positive integer fields.
2018-06-25 14:01:04 -04:00
Tom
4249076844
Refs #29451 -- Fixed regex/iregex lookups on MySQL 8.
2018-06-20 10:57:28 -04:00
Mariusz Felisiak
6dd4edb1b4
Fixed #29496 -- Fixed crash on Oracle when converting a non-unique field to primary key.
...
Thanks Tim Graham for the review.
2018-06-17 08:51:02 +02:00
Markus Holtermann
e01fa015c0
Refs #27098 -- Removed unused introspection queries.
...
Unused since 578711c310
.
Thanks Ian Foote for finding this.
2018-05-26 16:29:02 +02:00
bakabiko
a7bc1aea03
Fixed #29380 -- Added support for QuerySet.select_for_update()'s nowait and skip_locked options on MySQL 8+.
2018-05-18 19:37:36 -04:00
Tim Graham
7ac3008fe4
Refs #29350 -- Fixed 'invalid escape sequence' warning in SQLite introspection.
2018-05-08 10:42:24 -04:00
Mariusz Felisiak
483cc1c430
Refs #28859 -- Fixed "no data found" exception handling with cx_Oracle 6.3+.
2018-04-28 19:39:45 +02:00
Zackary Troop
30f8642f2e
Fixed #29350 -- Fix get_primary_key_column() method in sqlite3 backend
...
Thanks Tim Graham and Mariusz Felisiak for the reviews.
2018-04-28 12:01:45 +02:00
priyanshsaxena
6b3d292043
Fixed #29015 -- Added an exception if the PostgreSQL database name is too long.
2018-04-27 21:37:42 -04:00
Tom
c1c163b427
Fixed #28574 -- Added QuerySet.explain().
2018-04-19 10:52:19 -04:00
Brett Cannon
64b74804c5
Fixed #29334 -- Updated pypi.python.org URLs to pypi.org.
2018-04-17 20:24:27 -04:00
Mariusz Felisiak
e0a3cfaca0
Simplified Oracle's DatabaseOperations.cache_key_culling_sql() with LIMIT/OFFSET.
2018-04-17 12:50:43 -04:00
Jeremy Bowman
ee17bb8a67
Fixed #29193 -- Prevented unnecessary foreign key drops when altering a unique field.
...
Stopped dropping and recreating foreign key constraints on other fields
in the same table as the one which is actually being altered in an
AlterField operation.
Regression in c3e0adcad8
.
2018-04-11 23:17:11 -04:00
Mariusz Felisiak
816b386d41
Refs #24791 -- Made PostgreSQL's nodb connection use first PostgresSQL db when 'postgres' db isn't available.
...
Thanks Tim Graham and Claude Paroz for reviews.
2018-04-03 22:21:47 +02:00
Mariusz Felisiak
55cc26941a
Refs #28643 -- Added Repeat database function.
...
Thanks Tim Graham and Nick Pope for reviews.
2018-04-03 19:36:12 +02:00
Mariusz Felisiak
6141c752fe
Fixed #29251 -- Added bytes to str conversion in LPad/RPad database functions on MySQL.
...
Thanks Tim Graham for the review.
2018-04-03 18:24:04 +02:00
Tim Graham
6421bd702f
Refs #29227 -- Made inspectdb generate BooleanField(null=True) rather than NullBooleanField.
2018-03-20 12:10:10 -04:00
Tim Graham
5fa4f40f45
Fixed #29227 -- Allowed BooleanField to be null=True.
...
Thanks Lynn Cyrin for contributing to the patch, and Nick Pope for review.
2018-03-20 12:10:10 -04:00
Mariusz Felisiak
cede5111bb
Refs #28643 -- Added LPad and RPad database functions.
...
Thanks Tim Graham for the review.
2018-03-19 17:35:16 +01:00
Claude Paroz
3c4ff21763
Fixed #29103 -- Removed bad 'b'-prefix added by MySQL's SchemaEditor.quote_value().
2018-03-17 16:36:54 -04:00
Tim Graham
f8b98f0edc
Removed DatabaseFeatures.can_introspect_null.
...
The only known usage is in the unmaintained django-pymssql project.
2018-03-16 11:43:41 -04:00
Mariusz Felisiak
362813d628
Fixed hanging indentation in various code.
2018-03-16 10:54:34 +01:00
Mariusz Felisiak
acfc650f2a
Fixed #29199 -- Fixed crash when database user password contains @ sign on Oracle.
...
Thanks Shane Allgeier for the report and Tim Graham for the review.
2018-03-13 19:06:40 +01:00
Sergey Fedoseev
d696fccae6
Fixed #29209 -- Fixed Cast() with TextField on MySQL and Oracle.
2018-03-12 21:57:14 -04:00
Tomer Chachamu
c12745f682
Fixed typo in django/db/backends/base/schema.py.
2018-03-12 13:49:36 -04:00
Дилян Палаузов
45aaf6608d
Removed unused variable in BaseDatabaseSchemaEditor.effective_default().
2018-03-12 12:06:06 -04:00
Sergey Fedoseev
ba4a986240
Refs #28459 -- Improved performance of time difference expressions on MySQL.
2018-03-01 14:42:21 +05:00
Mariusz Felisiak
074a2f7f58
Refs #28909 -- Simplifed code using unpacking generalizations.
2018-02-26 18:23:31 +01:00
Matthew Wilkes
2162f0983d
Fixed #24747 -- Allowed transforms in QuerySet.order_by() and distinct(*fields).
2018-02-10 19:08:55 -05:00
Mariusz Felisiak
34b52f8572
Renamed the allow_sliced_subqueries database feature to allow_sliced_subqueries_with_in.
...
After 0899d583bd
this database feature is
false only on MySQL which doesn't support sliced subqueries only with
IN/ALL/ANY/SOME.
2018-02-07 08:27:47 +01:00
Mariusz Felisiak
f73f821143
Removed uneeded comment in DatabaseWrapper.check_constraints() on SQLite/MySQL backends.
2018-01-31 20:02:45 -05:00
bquinn
c2b969e124
Fixed #29004 -- Added inspectdb --include-views option.
2018-01-27 18:51:40 -05:00
Sigurd Ljødal
a455e732a0
Fixed #28650 -- Added TruncWeek database function.
2018-01-27 09:59:13 -05:00
Tim Martin
02365d3f38
Fixed #28542 -- Fixed deletion of primary key constraint if the new field is unique.
2018-01-13 20:11:55 -05:00
Дилян Палаузов
a38ae914d8
Fixed #28996 -- Simplified some boolean constructs and removed trivial continue statements.
2018-01-12 12:44:50 -05:00
Tim Graham
d60e8b856b
Added DatabaseFeatures.is_postgresql_9_5 to avoid repetition.
2018-01-09 14:09:02 -05:00
Mariusz Felisiak
8f8a93a9ae
Fixed #28859 -- Made Oracle backend raise DatabaseError if "no data found" exception is hidden by the Oracle OCI library.
...
Thanks Tim Graham for the review and Jani Tiainen for the report.
2018-01-06 18:50:54 +01:00
Sergey Fedoseev
2115be616b
Refs #28459 -- Improved performance of duration expressions on SQLite.
2018-01-04 17:16:17 -05:00
Дилян Палаузов
d7b2aa24f7
Fixed #28982 -- Simplified code with and/or.
2018-01-03 20:12:23 -05:00
Mariusz Felisiak
51a00749e9
Used Decimal.scaleb() in backends.utils.format_number() and DecimalField.widget_attrs() to improve performance.
2017-12-30 18:05:15 +01:00
Sergey Fedoseev
98e78ac754
Bumped minimum supported mysqlclient version to 1.3.7.
...
Follow up to ad9390bba2
.
2017-12-29 11:55:29 -05:00
Sergey Fedoseev
51ae4e1f32
Refs #28459 -- Used default date converter on SQLite for better performance.
...
See https://docs.python.org/3/library/sqlite3.html#default-adapters-and-converters .
2017-12-29 14:37:00 +05:00
Sergey Fedoseev
ae6fa914aa
Fixed #28926 -- Fixed loss of precision of big DurationField values on SQLite and MySQL.
2017-12-28 17:35:41 -05:00
Sergey Fedoseev
44908d4d93
Fixed #28967 -- Prevented Cast to FloatField from rounding to integer on MySQL.
2017-12-27 19:16:37 -05:00
Sergey Fedoseev
ae1baa7d1d
Refs #28459 -- Improved performance of loading DurationField on SQLite and MySQL.
2017-12-27 12:23:08 -05:00
Sergey Fedoseev
d0f569b350
Refs #28459 -- Improved performance of loading DecimalField on SQLite.
2017-12-26 18:12:37 -05:00
Simon Charette
9f7772e098
Fixed #28884 -- Fixed crash on SQLite when renaming a field in a model referenced by a ManyToManyField.
...
Introspected database constraints instead of relying on _meta.related_objects
to determine whether or not a table or a column is referenced on rename
operations.
This has the side effect of ignoring both db_constraint=False and virtual
fields such as GenericRelation which aren't backend by database level
constraints and thus shouldn't prevent the rename operations from being
performed in a transaction.
Regression in 095c1aaa89
.
Thanks Tim for the additional tests and edits, and Mariusz for the review.
2017-12-22 15:19:05 -05:00
Nick Pope
f3a98224e6
Refs #28909 -- Simplifed code using unpacking generalizations.
2017-12-21 21:05:23 -05:00
Sergey Fedoseev
ebc4ee3369
Refs #23941 -- Prevented incorrect rounding of DecimalField annotations on SQLite.
2017-12-21 19:50:56 -05:00
Sergey Fedoseev
c8a85e3e91
Fixed #28932 -- Prevented Oracle from truncating trailing zeros in the fractional part of DecimalField.
...
Fixes the test added in 6fd6d8383f
.
Regression in 7c1f3901bc
.
2017-12-20 11:55:51 -05:00
Mariusz Felisiak
fc9eec7bb7
Fixed #28934 -- Prevented Cast from truncating microseconds on Oracle.
2017-12-20 11:05:27 -05:00
Mariusz Felisiak
4420761ea9
Fixed #28727 -- Fixed Cast crash on SQLite when casting a Python date/datetime to Date/DateTimeField.
2017-12-19 19:54:58 +01:00
Sergey Fedoseev
9c9ef58352
Removed unused DatabaseOperations.date_interval_sql() on Oracle.
...
Unused since 5ca82e710e
.
2017-12-16 23:59:36 +05:00
Sergey Fedoseev
6fd6d8383f
Fixed #28915 -- Prevented SQLite from truncating trailing zeros in the fractional part of DecimalField.
...
This reverts commit a146b65628
and adds
a test for the regression.
2017-12-12 21:57:41 -10:00
Sergey Fedoseev
f9a0766f1c
Simplified SQLite converter for bool type.
2017-12-12 22:40:15 -05:00
Nick Pope
d13a9e44de
Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.
2017-12-11 07:08:45 -05:00
Sergey Fedoseev
c5a2f48bed
Improved performance of loading DateTimeField on Oracle and MySQL.
2017-12-08 09:53:27 -05:00
Mariusz Felisiak
fc48047586
Refs #28876 -- Fixed incorrect foreign key constraint name for models with quoted db_table.
...
Thanks Simon Charette and Tim Graham for the review and Carlos E. C.
Leite for the report.
2017-12-05 21:11:20 +01:00
Дилян Палаузов
d2afa5eb23
Fixed #28860 -- Removed unnecessary len() calls.
2017-12-04 10:35:23 -05:00
Simon Charette
095c1aaa89
Fixed #28849 -- Fixed referenced table and column rename on SQLite.
...
Thanks Ramiro for the input and Tim for the review.
2017-12-01 22:12:24 -05:00
Tim Graham
c3e0adcad8
Fixed #28305 -- Fixed "Cannot change column 'x': used in a foreign key constraint" crash on MySQL with a sequence of AlterField or RenameField operations.
...
Regression in 45ded053b1
.
2017-12-01 19:07:46 -05:00
Mads Jensen
f0a68c2511
Fixed #28702 -- Made query lookups for CIText fields use citext.
2017-11-29 10:35:37 -05:00
Jon Dufresne
7a6fbf36b1
Fixed #28853 -- Updated connection.cursor() uses to use a context manager.
2017-11-28 11:28:09 -05:00
Дилян Палаузов
3308085838
Fixed #28854 -- Replaced type(True) with bool in sqlite's SchemaEditor.
2017-11-28 10:44:02 -05:00
Mariusz Felisiak
ad5f33ee03
Refs #27954 -- Fixed typo in django/db/backends/postgresql/client.py comment.
2017-11-26 16:27:37 +01:00
Sergey Fedoseev
93cdd07e8f
Used bytes.hex() and bytes.fromhex() to simplify.
2017-11-23 08:52:23 -05:00
Tim Graham
e3c852cbd6
Fixed #28804 -- Fixed "Unknown system variable 'transaction_isolation'" on MariaDB.
...
Regression in 967450a3bf
.
2017-11-20 10:08:34 -05:00
Simon Charette
ee85ef8315
Fixed #28792 -- Fixed index name truncation of namespaced tables.
...
Refs #27458 , #27843 .
Thanks Tim and Mariusz for the review.
2017-11-14 21:36:25 -05:00
Sergey Fedoseev
967450a3bf
Fixed #28794 -- Fixed tx_isolation deprecation warning on MySQL 5.7.20+.
2017-11-14 15:40:44 -05:00
Дилян Палаузов
c69e4bc691
Fixed #28769 -- Replaced 'x if x else y' with 'x or y'.
2017-11-07 09:08:46 -05:00
Nick
3d22121a0b
Clarified error message for when sqlplarse isn't installed.
2017-11-03 10:09:46 -04:00
Mariusz Felisiak
0899d583bd
Fixed #28670 -- Added FETCH/OFFSET support on Oracle.
...
Thanks Tim Graham for the review.
2017-10-09 18:07:03 +02:00
Simon Charette
9d93dff333
Fixed #28665 -- Change some database exceptions to NotImplementedError per PEP 249.
2017-10-06 12:47:08 -04:00
Mariusz Felisiak
1b823b8f18
Fixed #28596 -- Fixed QuerySet.bulk_create() and cascade deletion crash on Oracle when using more than 65535 parameters.
...
Thanks Tim Graham for the review.
2017-10-05 18:52:37 +02:00
Mariusz Felisiak
03da070f5c
Refs #28670 -- Moved LIMIT/OFFSET SQL to DatabaseOperations.limit_offset_sql().
...
Thanks Tim Graham for the review.
2017-10-04 20:24:38 +02:00
Tim Graham
d0c761d3f8
Refs #28584 -- Removed unused DatabaseFeatures.can_share_in_memory_db.
2017-10-03 20:17:12 -04:00
Tim Graham
27193aea00
Fixed #28584 -- Dropped support for SQLite < 3.7.15.
2017-10-03 10:42:18 -04:00
Mads Jensen
6d1df84c00
Corrected typos in BaseDatabaseOperations exception messages.
2017-09-30 19:18:51 -04:00
Tim Graham
dd82f33271
Fixed #27979 -- Made MySQL raise IntegrityError rather than OperationalError when saving negative numbers in PositiveInteger fields.
2017-09-29 15:20:32 -04:00
Mads Jensen
8d40eb0e89
Used NotSupportedError for some unsupported database opreations per PEP 249.
2017-09-29 09:49:55 -04:00
Tim Graham
1d8cfa3608
Fixed #28626 -- Dropped support for PostgreSQL 9.3.
...
Thanks Simon Charette for the introspection changes.
2017-09-27 11:00:04 -04:00
Tim Graham
a80903b711
Removed DatabaseFeatures.supports_microsecond_precision.
...
MySQL 5.5 (refs #28552 ) was the last database to use it.
2017-09-25 14:48:15 -04:00
Tim Graham
8a1768432b
Fixed #28552 -- Dropped support for MySQL 5.5.
2017-09-25 14:48:11 -04:00
Tim Graham
578711c310
Refs #27098 -- Removed DatabaseIntrospection.get_indexes() per deprecation timeline.
2017-09-22 12:51:18 -04:00
Shai Berger
d612026c37
Refs #28595 -- Added a hook to add execute wrappers for database queries.
...
Thanks Adam Johnson, Carl Meyer, Anssi Kääriäinen, Mariusz Felisiak,
Michael Manfre, and Tim Graham for discussion and review.
2017-09-21 12:13:09 -04:00
Mads Jensen
d549b88050
Fixed #26608 -- Added support for window expressions (OVER clause).
...
Thanks Josh Smeaton, Mariusz Felisiak, Sergey Fedoseev, Simon Charettes,
Adam Chainz/Johnson and Tim Graham for comments and reviews and Jamie
Cockburn for initial patch.
2017-09-18 09:42:29 -04:00
Mads Jensen
3939e2b4dc
Changed default value of DatabaseFeatures.has_bulk_insert to True.
2017-09-18 08:12:35 -04:00
Mariusz Felisiak
c6a1faecc3
Refs #27090 -- Added real database sequence introspection.
...
Thanks Mariusz Felisiak for the Oracle part and Tim Graham for the
review.
2017-09-13 20:12:32 +02:00
Jon Dufresne
99e65d6488
Fixed #28578 -- Renamed DatabaseCreation number arguments to suffix.
2017-09-11 11:32:40 -04:00
Tim Graham
6e4c6281db
Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()."
...
This reverts commit 550cb3a365
because try/except performs better.
2017-09-07 08:16:21 -04:00
Sergey Fedoseev
8b2515a450
Removed unneeded __init__() methods.
2017-09-07 08:10:49 -04:00
Sergey Fedoseev
34f27f910b
Replaced @cached_property with class attributes where possible.
2017-09-06 10:13:43 -04:00
Sergey Fedoseev
690fc30d44
Removed DatabaseWrapper.psycopg2_version.
...
Unused since 3adc5f1ee6
.
2017-09-06 09:51:56 -04:00
Mads Jensen
15f2d87ceb
Removed unneeded __init__() in PostgreSQL DatabaseWrapper.
2017-09-05 16:22:36 -04:00
Mariusz Felisiak
179b247e07
Removed useless condition from Oracle's NullBooleanField's check constraint.
...
NULL cannot be compare with standard operators on Oracle, it works only
with IS NULL and IS NOT NULL operators. Therefore 'OR ... IS NULL'
condition in NullBooleanField's check constraint is redundant.
Nullability is checked in a separate constraint.
2017-09-05 11:17:06 +02:00
Kevin Grinberg
c6a3546093
Fixed #28451 -- Restored pre-Django 1.11 Oracle sequence/trigger naming.
...
Regression in 69b7d4b116
.
2017-08-22 15:51:08 -04:00
Mariusz Felisiak
c47747d45a
Removed postgresql_psycopg2.version
...
Uneeded since 29ea9714ee
.
2017-08-21 09:13:07 +02:00
Mariusz Felisiak
6784383e93
Fixed #28498 -- Fixed test database creation with cx_Oracle 6.
2017-08-16 18:39:58 +02:00
Tom
b78d100fa6
Fixed #27849 -- Added filtering support to aggregates.
2017-08-12 17:58:28 -04:00
Mariusz Felisiak
489421b015
Fixed #23546 -- Added kwargs support for CursorWrapper.callproc() on Oracle.
...
Thanks Shai Berger, Tim Graham and Aymeric Augustin for reviews and
Renbi Yu for the initial patch.
2017-08-12 21:06:49 +02:00
Sergey Fedoseev
f3e350d631
Replaced typecast_decimal() with decimal.Decimal().
2017-08-11 09:22:40 -04:00
Sergey Fedoseev
a146b65628
Refs #28459 -- Improved performance of loading DecimalField on SQLite.
2017-08-10 15:32:28 -04:00
Sergey Fedoseev
22ff86ec52
Refs #28459 -- Made Oracle get_db_converters() return converter for empty strings only when it's needed.
2017-08-10 10:33:05 -04:00
Sergey Fedoseev
5244d7cf54
Simplified SQLite converter for bool type.
2017-08-09 18:10:34 -04:00
Sergey Fedoseev
bb91c0a4dc
Refs #4518 -- Removed handling of empty strings in typecast_decimal().
...
It's unclear if the original change was needed, but it seems unneeded now.
Reverted 6fc10f50b0
.
2017-08-09 18:02:16 -04:00
Mariusz Felisiak
3189a93ceb
Refs #23766 -- Added tests for CursorWrapper.callproc().
...
Thanks Tim Graham for the review.
2017-08-08 22:13:02 +02:00
Claude Paroz
831358f23d
Fixed #28465 -- Unified index SQL creation in DatabaseSchemaEditor
...
Thanks Tim Graham for the review.
2017-08-08 17:37:43 +02:00
Srinivas Reddy Thatiparthy
6a793d1788
Removed unnecessary assignment in Oracle's FormatStylePlaceholderCursor._fix_for_params().
...
Obsolete since fae56427e1
.
2017-08-07 10:11:54 -04:00
Mariusz Felisiak
5d9034bc92
Removed unused DatabaseOperations.last_insert_id() on PostgreSQL.
...
Unused since 9eb2afddfa
.
2017-08-01 16:53:17 -04:00
Mariusz Felisiak
b61d5b1991
Fixed #28371 -- Fixed Cast() with CharField if the max_length argument isn't provided.
...
Thanks Tim Graham for the review.
2017-07-27 19:36:47 +02:00
Mariusz Felisiak
8e41373c81
Allowed database backends to specify data types for Cast().
...
A small refactor ahead of refs #28371 .
2017-07-26 20:26:58 -04:00
Mariusz Felisiak
28a02259cb
Fixed DatabaseFeatures.has_case_insensitive_like on MySQL and Oracle.
...
Incorrect since its introduction in 20bab2cf9d
.
2017-07-24 21:51:29 +02:00
Mariusz Felisiak
fe9f383357
Refs #24996 -- Removed unused BaseDatabaseFeatures.supports_select_related.
...
Unused since 0c7633178f
.
2017-07-24 13:46:02 -04:00
Tim Graham
487362fa8f
Fixed #28370 -- Deprecated the context arg of Field.from_db_value() and Expression.convert_value().
...
Unused since a0d166306f
.
2017-07-20 16:30:08 -04:00
Mariusz Felisiak
e06cab2600
Fixed #28411 -- Used cx_Oracle.Cursor.outputtypehandler instead of _rowfactory() on Oracle.
...
Thanks Tim Graham for the review.
2017-07-19 08:42:52 +02:00
Mariusz Felisiak
776cee9749
Fixed #28391 -- Fixed Cast() with CharField and max_length on MySQL.
...
Thanks Tim Graham for the review.
2017-07-17 21:12:27 +02:00
Tim Graham
feeafdad02
Removed unused enter/exit methods of MySQL's CursorWrapper.
...
Unused since their introduction in e1d839237f
.
2017-07-17 13:16:29 -04:00
Sergey Fedoseev
fc2dee6908
Removed unused branch in __getattr__() of Oracle and MySQL cursor wrappers.
2017-07-14 09:14:21 -04:00
Sergey Fedoseev
18db55bb31
Replaced Oracle CursorIterator with generator expression.
2017-07-14 14:15:00 +05:00
Claude Paroz
169c3b3e07
Fixed #14204 -- Enforced SQLite foreign key constraints.
...
Thanks Tim Graham for contributing to the patch and
Simon Charette for advice and review.
2017-07-11 09:07:31 -04:00
Mariusz Felisiak
cf57ecb221
Fixed #28364 -- Removed redundant table joins in Oracle's DatabaseIntrospection.get_relations().
2017-07-06 07:39:01 -04:00
Mariusz Felisiak
df1106a40f
Fixed #28365 -- Unified DatabaseOperations.date_interval_sql() return value with similar methods.
2017-07-06 07:37:47 -04:00
Mariusz Felisiak
7d8fc65f36
Removed obsolete comment about IntegerField introspection on Oracle.
...
Obsolete since e9d12bae1e
.
2017-07-04 14:46:40 +02:00
Ran Benita
b9f7dce84b
Fixed #28010 -- Added FOR UPDATE OF support to QuerySet.select_for_update().
2017-06-29 16:00:15 -04:00
Mads Jensen
550cb3a365
Fixed #27818 -- Replaced try/except/pass with contextlib.suppress().
2017-06-28 14:07:55 -04:00
Mariusz Felisiak
3297dede7f
Fixed #28046 -- Added the db_tablespace parameter to class-based indexes.
...
Thanks Markus Holtermann and Tim Graham for reviews.
2017-06-27 21:15:15 +02:00
Josh Schneier
fba0eaa5d6
Fixed #28298 -- Prevented a primary key alteration from adding a foreign key constraint if db_constraint=False.
2017-06-22 21:31:56 -04:00