summaryrefslogtreecommitdiff
path: root/django/db/backends/oracle/base.py
AgeCommit message (Collapse)Author
2025-11-17Fixed #24920 -- Added support for DecimalField with no precision.Mariusz Felisiak
Thanks Lily for the review.
2025-10-11Fixed #36646 -- Added compatibility for oracledb 3.4.0.Simon Charette
The Database.Binary, Date, and Timestamp attributes were changed from aliases to bytes, datetime.date, and datetime.datetime to factory functions in oracle/python-oracledb@869a887819cdac7fcd610f9d9d463ade49ea7 which made their usage inadequate for isinstance checks. Thanks John Wagenleitner for the report and Natalia for the triage. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2025-09-14Refs #27222 -- Refreshed GeneratedFields values on save() initiated update.Simon Charette
This required implementing UPDATE RETURNING machinery that heavily borrows from the INSERT one.
2025-08-12Remove unused OneToOneField from DatabaseWrapper.data_types.Tim Graham
OneToOneField uses the type of the related field.
2025-07-23Refs #36500 -- Rewrapped long docstrings and block comments via a script.django-bot
Rewrapped long docstrings and block comments to 79 characters + newline using script from https://github.com/medmunds/autofix-w505.
2025-07-23Removed double spaces after periods and within phrases.Sarah Boyce
2025-01-15Refs #33817 -- Removed support for cx_Oracle per deprecation timeline.Sarah Boyce
2024-12-17Fixed #7732 -- Added support for connection pools on Oracle.suraj
2024-09-09Refs #33817 -- Corrected errors raised when Oracle driver is not installed.Mariusz Felisiak
oracledb_any should reraise ImportError instead of raising ImproperlyConfigured.
2024-04-15Fixed ↵Mariusz Felisiak
backends.oracle.tests.TransactionalTests.test_hidden_no_data_found_exception() on oracledb >= 2.1.2. python-oracledb 2.1.2+ no longer hides 'ORA-1403: no data found' exceptions raised in database triggers: https://github.com/oracle/python-oracledb/issues/321
2024-01-26Applied Black's 2024 stable style.Mariusz Felisiak
https://github.com/psf/black/releases/tag/24.1.0
2023-12-22Fixed #35054 -- Fixed crash on Oracle when fetching JSONFields with oracledb ↵Mariusz Felisiak
2.0.0.
2023-12-12Fixed #35018 -- Fixed migrations crash on GeneratedField with BooleanField ↵Mariusz Felisiak
as output_field on Oracle < 23c. Thanks Václav Řehák for the report. Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
2023-12-06Replaced deprecated database type synonyms in Oracle backend.Mariusz Felisiak
2023-08-10Fixed #33817 -- Added support for python-oracledb and deprecated cx_Oracle.Jingbei Li
2023-08-09Refs #34233 -- Bumped required cx_Oracle to 8.3.Mariusz Felisiak
This bumps minimum supported versions of cx_Oracle to the first release to support Python 3.10.
2022-11-21Fixed #31090 -- Logged transaction management queries.Ilya Bass
Thanks to Petter Strandmark for the original idea and Mariusz Felisiak for advice during the DjangoConUS 2022 Sprint!
2022-10-31Used more augmented assignment statements.Nick Pope
Identified using the following command: $ git grep -I '\(\<[_a-zA-Z0-9]\+\>\) *= *\1 *[-+/*^%&|<>@]'
2022-02-18Fixed #33379 -- Added minimum database version checks.Hasan Ramezani
Thanks Tim Graham for the review.
2022-02-07Refs #33476 -- Refactored code to strictly match 88 characters line length.Mariusz Felisiak
2022-02-07Refs #33476 -- Reformatted code with Black.django-bot
2021-01-14Refs #31369 -- Removed models.NullBooleanField per deprecation timeline.Mariusz Felisiak
2020-11-19Fixed #32201 -- Removed obsolete isort:skip's.Seamus Quinn
Obsolete as of isort 5.
2020-10-29Refs #32061 -- Unified DatabaseClient.runshell() in db backends.Simon Charette
2020-06-30Fixed #31751 -- Fixed database introspection with cx_Oracle 8.Mariusz Felisiak
2020-05-08Fixed #12990, Refs #27694 -- Added JSONField model field.sage
Thanks to Adam Johnson, Carlton Gibson, Mariusz Felisiak, and Raphael Michel for mentoring this Google Summer of Code 2019 project and everyone else who helped with the patch. Special thanks to Mads Jensen, Nick Pope, and Simon Charette for extensive reviews. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-04-30Fixed #20581 -- Added support for deferrable unique constraints.Ian Foote
2020-04-20Capitalized Unicode in docs, strings, and comments.Jon Dufresne
2020-02-18Fixed #31271 -- Preserved ordering when unifying query parameters on Oracle.Mariusz Felisiak
This caused misplacing parameters in logged SQL queries. Regression in 79065b55a70cd220820a260a1c54851b7be0615a. Thanks Hans Aarne Liblik for the report.
2020-02-06Fixed #31233 -- Closed database connections and cursors after use.Jon Dufresne
2020-02-04Simplified imports from django.db and django.contrib.gis.db.Nick Pope
2019-11-19Fixed #30987 -- Added models.PositiveBigIntegerField.Caio Ariede
2019-08-02Fixed #30661 -- Added models.SmallAutoField.Nick Pope
2019-06-20Fixed #30451 -- Added ASGI handler and coroutine-safety.Andrew Godwin
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-04-04Fixed #30307 -- Fixed incorrect quoting of database user password when using ↵msg
dbshell on Oracle. Regression in acfc650f2a6e4a79e80237eabfa923ea3a05d709.
2019-02-06Refs #27753 -- Favored force/smart_str() over force/smart_text().Aymeric Augustin
2019-01-30Refs #29444 -- Renamed DatabaseFeatures.can_return_id* to be generic for ↵Johannes Hoppe
other columns.
2018-10-17Fixed #21171 -- Avoided starting a transaction when a single (or atomic ↵Florian Apolloner
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-13Fixed various comments in django/db/backends/oracle/base.py.Mariusz Felisiak
2018-10-11Fixed #29836 -- Bumped required cx_Oracle to 6.0.Mariusz Felisiak
2018-09-26Made DatabaseWrapper.oracle_version() return a full version tuple.Mariusz Felisiak
2018-07-10Removed Oracle's fetchmany() and fetchall() wrappers.Sergey Fedoseev
Follow up to e06cab260049bb58eafdc4f60ac50a5f3759c38c.
2018-07-04Fixed #29541 -- Fixed Cursor.execute() crash when setinputsizes() is called ↵Mariusz Felisiak
without arguments wit cx_Oracle 6.4.
2018-03-13Fixed #29199 -- Fixed crash when database user password contains @ sign on ↵Mariusz Felisiak
Oracle. Thanks Shane Allgeier for the report and Tim Graham for the review.
2017-12-20Fixed #28932 -- Prevented Oracle from truncating trailing zeros in the ↵Sergey Fedoseev
fractional part of DecimalField. Fixes the test added in 6fd6d8383f48ea2fe4e058725fa30529a083e9a5. Regression in 7c1f3901bcdabb1340a621e7df9b24f3acd0d6f3.
2017-12-20Fixed #28934 -- Prevented Cast from truncating microseconds on Oracle.Mariusz Felisiak
2017-12-11Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.Nick Pope
2017-12-04Fixed #28860 -- Removed unnecessary len() calls.Дилян Палаузов
2017-09-05Removed useless condition from Oracle's NullBooleanField's check constraint.Mariusz Felisiak
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-08-07Removed unnecessary assignment in Oracle's ↵Srinivas Reddy Thatiparthy
FormatStylePlaceholderCursor._fix_for_params(). Obsolete since fae56427e1987ff8c8bd24d6331007f9c53e7abc.