Anthony Tuininga
c675d4e827
Eliminated memory leak introduced by session tagging changes.
2019-01-24 13:45:16 -07:00
Anthony Tuininga
4097a37ff2
Bump copyright notice into 2019 for changed files.
2019-01-22 16:00:29 -07:00
Anthony Tuininga
ed88224241
Added support for a session callback (written in either PL/SQL or Python)
...
which will be called when the actual tag assigned to a session doesn't match
the tag requested.
2019-01-22 14:25:33 -07:00
Anthony Tuininga
1860fdb05b
Ensure that values that exceed sizeof(long) for Python 2 on Windows when using
...
the Oracle type NATIVE_INT are not silently truncated
(https://github.com/oracle/python-cx_Oracle/issues/257 ).
2019-01-21 20:49:08 -07:00
Anthony Tuininga
43a485042f
Add additional check for calling setinputsizes() with an empty dictionary in
...
order to avoid the error "cx_Oracle.ProgrammingError: positional and named
binds cannot be intermixed"
(https://github.com/oracle/python-cx_Oracle/issues/199 ).
2019-01-08 14:41:01 -07:00
Anthony Tuininga
b340771c37
Rework handling of numbers so that, unless using the NATIVE_INT,
...
NATIVE_FLOAT or NATIVE_DOUBLE types, all numbers are converted to strings and
passed through to ODPI-C in all Python versions; improved error message when
a value cannot be represented by an Oracle number value; improved test suite to
verify that calling executemany() with integers, floats and decimal values
intermixed with each other works as expected
(https://github.com/oracle/python-cx_Oracle/issues/241 ).
2018-12-07 19:16:33 -07:00
Anthony Tuininga
00de5ea10f
Handle case when first call to cursor.executemany() has one or more columns
...
that are always null and a subsequent call to cursor.executemany() has a value
other than None in the same column
(https://github.com/oracle/python-cx_Oracle/issues/236 ).
2018-11-29 17:19:39 -07:00
Anthony Tuininga
548440016e
Add support for passing an object type (such as those created by the method
...
connection.gettype()) as the first parameter to cursor.var(), as requested
(https://github.com/oracle/python-cx_Oracle/issues/231 ).
2018-10-30 16:32:05 -06:00
Anthony Tuininga
4fd6c35436
Allow the type name to be None, as requested
...
(https://github.com/oracle/python-cx_Oracle/issues/231 ).
2018-10-30 16:31:47 -06:00
Anthony Tuininga
bc69e784f8
Adjust copyright notices to match requirements of Oracle Legal.
2018-09-10 11:39:51 -06:00
Anthony Tuininga
64f65050a2
Add support (as preview) for SODA.
2018-09-10 11:37:53 -06:00
Anthony Tuininga
b611246a7b
Add support for getting the contents of a collection as a dictionary where the
...
keys are the indexes of the collection and the values are elements of the
collection.
2018-09-03 10:19:26 -06:00
Anthony Tuininga
30088c6cdb
Added support for closing the session pool.
2018-09-03 10:17:22 -06:00
Anthony Tuininga
fc3450d48a
Add support for call timeouts available in Oracle 18c and higher.
2018-07-12 10:46:12 -06:00
Anthony Tuininga
dc2601729a
Remove __future__ attributes for functionality which is now enabled permanently
...
in cx_Oracle 7: connections as context managers now close the connection and
variables in DML returning statements now return an array.
2018-07-12 10:45:40 -06:00
Anthony Tuininga
fee92abe5a
If cursor.setinputsizes() is called without any parameters, do not set the flag
...
indicating that bind variables should be returned since otherwise binding with
named arguments will raise the error "cx_Oracle.ProgrammingError: positional
and named binds cannot be intermixed"
(https://github.com/oracle/python-cx_Oracle/issues/199 ).
2018-07-03 13:36:10 -06:00
Anthony Tuininga
a8751e91f4
Added support for using the cursor as a context manager
...
(https://github.com/oracle/python-cx_Oracle/issues/190 ).
2018-06-21 11:29:11 -06:00
Anthony Tuininga
4d4b319714
Add support for specifying the "errors" parameter to the decode() that takes
...
place internally when fetching strings from the database
(https://github.com/oracle/python-cx_Oracle/issues/162 ).
2018-06-19 11:11:04 -06:00
Anthony Tuininga
7adf99f0ad
Added support for unsubscribing from events in the database.
2018-06-19 11:09:40 -06:00
Anthony Tuininga
cf1265cb2d
Use the non-deprecated function for subscribing to events in the database and
...
note that the subscription ID will always be zero and will be removed in
cx_Oracle 7.
2018-06-19 11:07:30 -06:00
Anthony Tuininga
feab53cbff
Use unsigned integers instead of signed integers where it makes sense to do so.
2018-06-19 11:06:58 -06:00
Anthony Tuininga
980f3d491c
Added support for indicating if the subscription is still registered with the
...
database when a notification is received.
2018-06-19 11:00:53 -06:00
Anthony Tuininga
211298209b
Added support for receiving notifications when AQ messages are available to be
...
dequeued.
2018-05-29 21:54:06 -06:00
Anthony Tuininga
9781810b8e
Added support for binding decimal.Decimal values to cx_Oracle.NATIVE_FLOAT as
...
requested in issue 184
(https://github.com/oracle/python-cx_Oracle/issues/184 ).
2018-05-24 16:36:58 -06:00
Anthony Tuininga
8cc7b893f2
Ensure that binding a boolean value outside of PL/SQL simply binds the integer
...
0 or 1 (https://github.com/oracle/python-cx_Oracle/issues/181 ).
2018-05-19 21:35:37 -06:00
Anthony Tuininga
b9381892a5
Added support for timed waits when acquiring a session from a session pool and
...
added support for specifying the timeout and maximum lifetime session of
sessions in the pool when the pool is being created.
2018-05-16 14:09:59 -06:00
Anthony Tuininga
4ec7685f95
Added support for grouping notifications from subscriptions.
2018-05-16 14:09:01 -06:00
Anthony Tuininga
bab41ac544
Added support for specifying the IP address the subscription should use instead
...
of having the Oracle Client library determine the IP address on its own.
2018-05-16 14:08:28 -06:00
Anthony Tuininga
756442ee24
Added checks on passing invalid parameters to cursor.var(),
...
cursor.arrayvar(), cursor.callfunc() and cursor.setinputsizes().
2018-05-09 19:35:49 -06:00
Anthony Tuininga
f7a9eae0e7
Correct formatting.
2018-05-09 19:35:28 -06:00
Anthony Tuininga
2272af1563
Add support for specifying an integer for the parameters argument to
...
cursor.executemany(). This allows for batch execution when no parameters are
required or when parameters have previously been bound. This replaces
cursor.executemanyprepared() which is now deprecated and will be removed in
cx_Oracle 7.
2018-05-09 19:35:00 -06:00
Anthony Tuininga
f39ebf8da8
Ensure that the behavior in cx_Oracle 6.3 with __future__.dml_ret_array_val not
...
set or False is the same as the behavior in cx_Oracle 6.2
(https://github.com/oracle/python-cx_Oracle/issues/176 ).
2018-05-01 15:27:18 -06:00
Anthony Tuininga
4d37c85974
Use default values for all parameters when creating a session pool.
2018-04-19 14:22:01 -06:00
Anthony Tuininga
623718f0eb
Use a cx_Oracle._Error object (not a string) for all cx_Oracle exception types,
...
as suggested (https://github.com/oracle/python-cx_Oracle/issues/51 ).
2018-03-31 15:35:02 -06:00
Anthony Tuininga
fac7f9c3cf
Check validity of year for Python 2.x since it doesn't do that itself like
...
Python 3.x does (https://github.com/oracle/python-cx_Oracle/issues/166 ).
2018-03-29 13:58:54 -06:00
Anthony Tuininga
c61973c28f
Added support for DML returning of multiple rows using cursor.executemany().
2018-03-28 16:24:41 -06:00
Anthony Tuininga
b753ca7bdf
Ensure that round trip is performed without holding the Python GIL
...
(https://github.com/oracle/python-cx_Oracle/issues/158 ).
2018-03-21 14:16:15 -06:00
Anthony Tuininga
4f42099d21
Ensure that a reasonable error message can be provided when an unsupported
...
Oracle type is encountered.
2018-03-21 11:45:41 -06:00
Anthony Tuininga
813728ab72
Add support for binding integers and floats as cx_Oracle.NATIVE_FLOAT.
2018-03-07 16:19:01 -07:00
Anthony Tuininga
4392f7ec7b
There is no need to set the fetch array size for statements that are not
...
queries.
2018-03-07 16:18:30 -07:00
Anthony Tuininga
1fd7940494
Ensure that error ORA-24816: Expanded non LONG bind data supplied after actual
...
LONG or LOB column" is not raised by ensuring an empty string does not use a
size of zero (which triggers this situation in Oracle 12.1).
2018-03-05 13:37:32 -07:00
Anthony Tuininga
e08e23bb93
Eliminate memory leak when extending a collection.
2018-03-02 13:17:21 -07:00
Anthony Tuininga
1bd8e95807
Added support for closing the connection when reaching the end of a code block
...
controlled by the connection as a context manager, but in a backwards
compatible way (https://github.com/oracle/python-cx_Oracle/issues/113 ).
2018-02-27 16:58:01 -07:00
Anthony Tuininga
ebfc8d4f9c
Use new naming standard in top-level module code as well.
2018-02-27 16:57:31 -07:00
Anthony Tuininga
46e3aff3fa
Ensure that the number of elements in the array is not lost when the buffer
...
size is increased to accommodate larger strings.
2018-02-16 16:23:09 -07:00
Anthony Tuininga
9b1ce308b1
Added support for creating a temporary LOB directly.
2018-02-16 16:21:32 -07:00
Anthony Tuininga
d9cf469167
Correct binding of LOB values.
2018-02-16 16:20:50 -07:00
Anthony Tuininga
0d3aa46d02
Simplify code.
2018-02-16 16:20:29 -07:00
Anthony Tuininga
6e3b578281
Eliminate reference leak with LOB values acquired from attributes of objects or
...
elements of collections.
2018-02-02 15:45:21 -07:00
Anthony Tuininga
99c019d6c5
Restore support for binding a date value to datetime variable.
2018-02-02 15:44:45 -07:00