Tom Forbes
d5e52f2bef
Removed DatabaseOperation.savepoint_create/rollback_sql() on Oracle.
...
Obsolete since 918f44e3ae
.
2018-11-04 18:21:59 -05: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
Mariusz Felisiak
c6525bea9e
Fixed #29534 -- Made dbshell use rlwrap on Oracle if available.
2018-10-25 19:39:42 -04:00
Tim Graham
9b52bd6575
Made DatabaseFeatures.uses_savepoints default to True.
2018-10-25 10:02:47 -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
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
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
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
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
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
Tom
f1fbef6cd1
Fixed #28668 -- Allowed QuerySet.bulk_create() to ignore insert conflicts.
2018-08-03 17:40:46 -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
Sergey Fedoseev
6fbfb5cb96
Removed Oracle's fetchmany() and fetchall() wrappers.
...
Follow up to e06cab2600
.
2018-07-10 15:03:09 -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
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
Mariusz Felisiak
483cc1c430
Refs #28859 -- Fixed "no data found" exception handling with cx_Oracle 6.3+.
2018-04-28 19:39:45 +02:00
Mariusz Felisiak
e0a3cfaca0
Simplified Oracle's DatabaseOperations.cache_key_culling_sql() with LIMIT/OFFSET.
2018-04-17 12:50:43 -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
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
Sigurd Ljødal
a455e732a0
Fixed #28650 -- Added TruncWeek database function.
2018-01-27 09:59:13 -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
Nick Pope
f3a98224e6
Refs #28909 -- Simplifed code using unpacking generalizations.
2017-12-21 21:05:23 -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
Sergey Fedoseev
9c9ef58352
Removed unused DatabaseOperations.date_interval_sql() on Oracle.
...
Unused since 5ca82e710e
.
2017-12-16 23:59:36 +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
Дилян Палаузов
d2afa5eb23
Fixed #28860 -- Removed unnecessary len() calls.
2017-12-04 10:35:23 -05:00
Jon Dufresne
7a6fbf36b1
Fixed #28853 -- Updated connection.cursor() uses to use a context manager.
2017-11-28 11:28:09 -05:00
Sergey Fedoseev
93cdd07e8f
Used bytes.hex() and bytes.fromhex() to simplify.
2017-11-23 08:52:23 -05: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
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
578711c310
Refs #27098 -- Removed DatabaseIntrospection.get_indexes() per deprecation timeline.
2017-09-22 12:51:18 -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
Sergey Fedoseev
8b2515a450
Removed unneeded __init__() methods.
2017-09-07 08:10:49 -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
6784383e93
Fixed #28498 -- Fixed test database creation with cx_Oracle 6.
2017-08-16 18:39:58 +02: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
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
Mariusz Felisiak
3189a93ceb
Refs #23766 -- Added tests for CursorWrapper.callproc().
...
Thanks Tim Graham for the review.
2017-08-08 22:13:02 +02:00