208 Commits

Author SHA1 Message Date
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
Anthony Tuininga
5171ede9c2 Correct handling of Oracle objects after consolidation of transformations
to/from Python objects.
2018-02-02 15:42:57 -07:00
Anthony Tuininga
e5b6370bd0 Reorganize code to implement the following:
- use a prefix of cxo/CXO for all variables, methods and constants
  - create common include file and use separate compilation units
  - consolidate all transformations to/from Python objects
2018-01-29 18:50:18 -07:00
Anthony Tuininga
fa43311bbc Update ODPI-C; remove error "DPI-1054: connection cannot be closed when open
statements or LOBs exist"
(https://github.com/oracle/python-cx_Oracle/issues/138).
2018-01-26 21:18:16 -07:00
Anthony Tuininga
18b014a19e Correct support in Python 3.x for cursor.parse(). 2018-01-11 14:20:51 -07:00
Anthony Tuininga
8dfd842cfd Revert last change (restriction is deliberate). 2017-12-15 09:00:56 -07:00
Anthony Tuininga
cf19bc7f74 Remove unnecessary type checks since PyFloat_AsDouble() will convert the value
to floating point if possible anyway, and if not, will raise an appropriate
exception.
2017-12-15 08:49:27 -07:00
Anthony Tuininga
9ae0f5dd1c Use the correct designation for the external handle parameter. 2017-12-11 15:41:48 -07:00
Anthony Tuininga
5d728693ca Eliminate compiler warnings on 32-bit Windows. 2017-12-07 15:56:26 -07:00
Anthony Tuininga
864780da2a Use long long instead of just long in order to avoid truncation on Windows
where sizeof(long) != sizeof(void*).
2017-12-07 15:55:46 -07:00
Anthony Tuininga
681c18675e Update ODPI-C (adjust OCI prefetch; added options for authentication with
SYSBACKUP, SYSDG, SYSKM and SYSRAC, as requested
(https://github.com/oracle/python-cx_Oracle/issues/101).
2017-11-27 10:40:19 -07:00
Anthony Tuininga
5625a320c9 Correct reference handling when an invalid keyword parameter is passed to the
cx_Oracle.SessionPool constructor.
2017-11-17 21:39:26 -07:00
Anthony Tuininga
f26fb5157e Ensure that the edition is passed through to ODPI-C when a session pool is
created.
2017-11-17 13:41:49 -07:00
Anthony Tuininga
cb07970d2f Remove unnecessary lines. 2017-11-16 09:43:31 -07:00
Anthony Tuininga
ed7bd281f2
Merge pull request #54 from vnaydionov/pypy-pip-install
Fix build with PyPy 5.9.0-alpha0 in libpython mode
2017-11-16 08:42:24 -08:00
Anthony Tuininga
c122690ac4 Add support for identifying the id of the transaction which spawned the
message, as requested (https://github.com/oracle/odpi/issues/32).
2017-11-08 10:18:18 -08:00
Anthony Tuininga
9bdc5cb5d6 Check variable array size when setting variable values and raise IndexError, as
is already done for getting variable values.
2017-11-03 21:31:02 -06:00
Anthony Tuininga
22b6de785a Update ODPI-C (correct handling of NVARCHAR2 object attributes and collection
elements).
2017-11-03 21:30:27 -06:00
Anthony Tuininga
86564b9df3 Update ODPI-C (replace usage of OCI thread key with thread-safe handle pool). 2017-10-24 22:05:20 -06:00
Anthony Tuininga
bc1f53f213 Use dpiData_setTimestamp() instead of setting the values directly. 2017-10-24 22:03:06 -06:00