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
90d93a1b42
Made DatabaseWrapper.oracle_version() return a full version tuple.
2018-09-26 08:51:27 +02: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
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
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
Nick Pope
d13a9e44de
Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.
2017-12-11 07:08:45 -05:00
Дилян Палаузов
d2afa5eb23
Fixed #28860 -- Removed unnecessary len() calls.
2017-12-04 10:35:23 -05: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
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
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
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
Mariusz Felisiak
924a89e135
Fixed #26682 -- Added support for Oracle identity columns.
...
Thanks Shai Berger and Tim Graham for reviews.
2017-06-01 19:33:48 +02:00
Jon Dufresne
21046e7773
Fixed #28249 -- Removed unnecessary dict.keys() calls.
...
iter(dict) is equivalent to iter(dict.keys()).
2017-05-27 19:08:46 -04:00
Mariusz Felisiak
538bf43458
Fixed #27859 -- Ignored db_index for TextField/BinaryField on Oracle and MySQL.
...
Thanks Zubair Alam for the initial patch and Tim Graham for the review.
2017-05-23 17:02:40 +02:00
Mariusz Felisiak
b3eb6eaf1a
Refs #27859 -- Added DatabaseWrapper.display_name.
...
Thanks Tim Graham for the review.
2017-05-23 09:09:35 -04:00
Mariusz Felisiak
946775227c
Fixed #28138 -- Used output type handler instead of numbersAsStrings on Oracle cursor.
...
Thanks Tim Graham for the review.
2017-04-28 16:27:21 +02:00
Mariusz Felisiak
e5dce7b0fb
Refs #27795 -- Removed unneeded force_text calls from the Oracle backend.
2017-04-17 14:22:00 +02:00
Tim Graham
eca6f91be2
Updated cx_Oracle arraysize comment.
2017-03-28 09:41:45 -04:00
Mariusz Felisiak
75503a823f
Fixed #27924 -- Added support for cx_Oracle 5.3.
...
- Fixed Oracle backend due to cx_Oracle 5.3 change in the
Cursor.description behavior i.e. "Use None instead of 0 for items in
the Cursor.description attribute that do not have any validity.".
- Used cx_Oracle.Object.size() instead of len().
Thanks Tim Graham for the review.
2017-03-10 23:02:44 +01:00
Anton Samarchyan
60e52a047e
Refs #27656 -- Updated django.db docstring verbs according to PEP 257.
2017-02-28 09:17:27 -05:00
Vytis Banaitis
d1bab24e01
Refs #23919 , #27778 -- Removed obsolete mentions of unicode.
2017-01-26 08:19:27 -05:00
Tim Graham
1c466994d9
Refs #23919 -- Removed misc Python 2/3 references.
2017-01-25 13:59:25 -05:00
chillaranand
d6eaf7c018
Refs #23919 -- Replaced super(ClassName, self) with super().
2017-01-25 12:23:46 -05:00
Claude Paroz
6e55e1d88a
Refs #23919 -- Replaced six.reraise by raise
2017-01-22 20:08:04 +01:00
Mariusz Felisiak
bf1c957027
Refs #23919 -- Removed Python 2 workaround for hashing Oracle params (refs #27632 ).
2017-01-19 22:20:14 -05:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Claude Paroz
2b281cc35e
Refs #23919 -- Removed most of remaining six usage
...
Thanks Tim Graham for the review.
2017-01-18 21:33:28 +01:00
Claude Paroz
7b2f2e74ad
Refs #23919 -- Removed six.<various>_types usage
...
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Claude Paroz
d7b9aaa366
Refs #23919 -- Removed encoding preambles and future imports
2017-01-18 09:55:19 +01:00
Tim Graham
bcf3532ede
Refs #26154 -- Removed deprecated CommaSeparatedIntegerField.
2017-01-17 20:52:02 -05:00
Tim Graham
e707e4c709
Refs #19738 -- Removed timezone conversion in SQL queries executed outside of the ORM.
...
Per deprecation timeline.
2017-01-17 14:09:29 -05:00
Tim Graham
b5511dddd6
Moved unneeded ImproperlyConfigured inner imports.
2017-01-16 12:48:41 -05:00
François Freitag
f3b7c05936
Refs #16614 -- Made QuerySet.iterator() use server-side cursors on PostgreSQL.
...
Thanks to Josh Smeaton for the idea of implementing server-side cursors
in PostgreSQL from the iterator method, and Anssi Kääriäinen and Kevin
Turner for their previous work. Also Simon Charette and Tim Graham for
review.
2017-01-11 09:25:37 -05:00
Josh Smeaton
26c9f529c9
Refs #27632 -- Simplified params dict creation for Oracle ( #7772 )
2017-01-01 12:39:03 +11:00
Mariusz Felisiak
7d14889aa3
Fixed #27615 -- Used timedeltas as arguments to Oracle database driver.
...
Removed unused DatabaseFeatures.driver_supports_timedeltas workaround.
2016-12-29 15:49:18 -05:00
Tim Graham
fae56427e1
Fixed #27649 -- Bumped required cx_Oracle to 5.2.
...
Removed obsolete workarounds from 1aa4889808
and dcf3be7a62
.
2016-12-29 12:45:25 -05:00
Mariusz Felisiak
4579c3f6b8
Refs #27632 -- Unified query parameters by their types and values on Oracle.
...
Fixed Python 2 regression in 6dbe56ed78
.
Thanks Simon Charette for the implementation idea.
2016-12-28 17:20:42 -05:00
Mariusz Felisiak
6dbe56ed78
Fixed #27632 -- Unified query parameters by their values on Oracle.
2016-12-28 08:14:14 -05:00
Ramin Farajpour Cami
967be82443
Fixed E305 flake8 warnings.
2016-11-14 12:30:46 -05:00
Zapelini
62543260dd
Fixed #27282 -- Allowed using an integer DATABASES['PORT'] for Oracle.
2016-09-27 15:01:30 -04:00
Adam Chainz
85f2bba7eb
Removed DatabaseError and IntegrityError declarations from database backends.
...
Unused since 11ee9746a0
.
2016-09-26 18:31:41 -04:00
Dmitry Medvinsky
1a9f6db5ff
Fixed #27219 -- Changed cx_Oracle client encoding to AL32UTF8 to allow 4-byte characters.
2016-09-19 20:19:57 -04:00
Chris Jerdonek
7ca3b391b6
Fixed #27170 -- Added DatabaseWrapper class attributes to ease subclassing.
2016-09-08 16:33:36 -04:00
Tim Graham
df8d8d4292
Fixed E128 flake8 warnings in django/.
2016-04-08 09:51:06 -04:00
Tim Graham
6448873197
Fixed E402 flake8 warnings.
2016-04-04 17:14:27 -04:00