208 Commits

Author SHA1 Message Date
Anthony Tuininga
7fc5127aaa Added support for connecting to specific shards of a sharded database by
specifying a shard key.
2017-09-12 13:29:47 -06:00
Anthony Tuininga
0648181afd Correct typo. 2017-09-12 13:27:30 -06:00
Anthony Tuininga
3d8b74e77f Ensure that a call to setinputsizes() with an invalid type prior to a call to
executemany() does not result in a type error, but instead gracefully ignores
the call to setinputsizes() as required by the DB API
(https://github.com/oracle/python-cx_Oracle/issues/75).
2017-09-01 16:21:28 -06:00
Anthony Tuininga
7b484bce70 Eliminate segfault when attempting to reuse a REF cursor that has been closed. 2017-08-30 11:54:33 -06:00
Anthony Tuininga
0111431430 Update ODPI-C (improve performance, correct handling of objects when dynamic
binding is being used).
2017-08-24 21:50:29 -06:00
Anthony Tuininga
c2c8d541bf On Windows, sizeof(long) = 4 which means that integers between 10 and 18 digits
were not converted to Python correctly
(https://github.com/oracle/python-cx_Oracle/issues/70).
2017-08-22 21:40:21 -06:00
Anthony Tuininga
a48fcdfde2 Ensure that fetch indicators are reset, even if the fetch variables themselves
do not need to be created.
2017-08-22 11:51:58 -06:00
Anthony Tuininga
5837e71cd8 Eliminate memory leak when repeatedly executing the same query. 2017-08-21 16:10:11 -06:00
Viacheslav Naydenov
d43b3eee70 Fix build with PyPy 5.9.0-alpha0 in libpython mode
Signed-off-by: Viacheslav Naydenov <vaclav@yandex.ru>
2017-08-21 22:46:21 +03:00
Anthony Tuininga
7b6276f5eb Added missing type check to prevent coercion of decimal to float
(https://github.com/oracle/python-cx_Oracle/issues/68).
2017-08-18 14:15:50 -06:00
Anthony Tuininga
90f571c660 Update ODPI-C to 2.0.1. 2017-08-18 10:59:33 -06:00
Anthony Tuininga
f1f5ead2a4 Update ODPI-C. 2017-08-11 11:13:05 -06:00
Anthony Tuininga
ece92442ab Delay initialization of the ODPI-C library until the first standalone
connection or session pool is created so that manipulation of the environment
variable NLS_LANG can be performed after the module has been imported
(https://github.com/oracle/python-cx_Oracle/issues/36); this also has the added
benefit of reducing the number of errors that can take place when the module is
imported.
2017-07-31 21:21:32 -06:00
Anthony Tuininga
1f917aafbb In certain cases where non-long values follow LOB values in the list of bind
variables, the error "ORA-24816: Expanded non LONG bind data supplied after
actual LONG or LOB column" is raised; this occurs if the length of the supplied
value, when expanded, might exceed 4000 bytes
(https://github.com/oracle/python-cx_Oracle/issues/50).
2017-07-25 12:16:54 -06:00
Anthony Tuininga
852aed3b58 Ensure that the array position passed to var.getvalue() does not exceed the
number of elements allocated in the array!
2017-07-21 15:36:31 -06:00
Anthony Tuininga
1eba9d55be Use dpiData_*() functions to simplify setting data; correct handling of
timestamp with time zone attributes.
2017-07-21 15:35:49 -06:00
Anthony Tuininga
df102db935 Correct handling of CLOB/NCLOB when using different encodings. 2017-07-21 15:34:48 -06:00
Anthony Tuininga
628d1717f5 Corrected support for binding boolean values with Oracle client 11.2. 2017-07-14 11:31:59 -06:00
Anthony Tuininga
49b0afd7a5 Ensure the correct encoding is used for setting variable values. 2017-07-07 07:38:44 -07:00
Anthony Tuininga
18e06bf14a Corrected support for binding decimal values in object attribute values and
collection element values.
2017-07-07 07:38:15 -07:00
Anthony Tuininga
4a1641e9c4 Define exception classes on the connection object to simplify error handling in
multi-connection environments, as specified in the Python DB API.
2017-07-05 13:18:29 -06:00
Anthony Tuininga
b543850f9a The method cursor.setoutputsize() no longer needs to do anything (since ODPI-C
automatically manages buffer sizes of LONG and LONG RAW columns).
2017-06-16 16:47:21 -06:00
Anthony Tuininga
465da44482 Permit use of both string and unicode for Python 2.7 for creating session pools
and for changing passwords
(https://github.com/oracle/python-cx_Oracle/issues/23).
2017-06-10 13:54:10 -06:00
Anthony Tuininga
e783a33926 Handle case when both precision and scale are zero, as occurs when retrieving
numeric expressions (https://github.com/oracle/python-cx_Oracle/issues/34).
2017-06-09 14:21:24 -06:00
Anthony Tuininga
52e1960bfb Correct determination of the names of the bind variables in prepared SQL
tatements (which behaves a little differently from PL/SQL statements).
2017-05-19 21:47:46 -06:00
Anthony Tuininga
999913be35 Ensure reference count of parameters remains the same after call completes! 2017-05-16 14:29:33 -06:00
Anthony Tuininga
ef1fc44f32 Set the fetch array size on a REF cursor prior to it being used by Python. 2017-05-15 13:19:43 -06:00
Anthony Tuininga
5e04a04baa Check for an error while creating the error! 2017-05-15 13:14:37 -06:00
Anthony Tuininga
51f1815167 Added support for getting/setting attributes of objects or element values in
collections that contain LOBs, BINARY_FLOAT values, BINARY_DOUBLE values and
NCHAR and NVARCHAR2 values; improve error message for any other types that are
not supported.
2017-05-09 11:46:30 -06:00
Anthony Tuininga
e5a888520f Correct size as well as buffer size when variable is resized. 2017-05-09 11:44:54 -06:00
Anthony Tuininga
53f8902446 Correct handling of long Python integers that cannot fit inside a 64-bit C
integer (https://github.com/oracle/python-cx_Oracle/issues/18).
2017-05-03 13:31:13 -06:00
Anthony Tuininga
c946e86384 Correct support for executemany() when strings that are found later in the
array are larger than strings found earlier in the array.
2017-04-26 17:11:58 -06:00
Anthony Tuininga
d712157483 Remove dead code. 2017-04-20 16:41:37 -06:00
Anthony Tuininga
7c31ad9a85 Eliminate compiler warnings. 2017-04-18 13:03:52 -06:00
Anthony Tuininga
b429041a3e Add support for getting an empty list from an empty collection instead of the
error "OCI-22166: collection is empty".
2017-04-17 10:34:14 -06:00
Anthony Tuininga
a13fa08a35 Adjust to modified ODPI-C API. 2017-04-17 10:29:52 -06:00
Anthony Tuininga
d37669fbdc Create a new variable, rather than call dpiVar_resize(), so that the variable
will be bound properly when the variable needs to be resized.
2017-04-11 14:36:47 -06:00
Anthony Tuininga
0c82e0faa0 Added support for getting the number of actual elements in a variable as well
as getting all of the values corresponding to the number of actual elements in
a variable -- primarily to improve the use of DML returning of multiple rows.
2017-04-11 14:17:55 -06:00
Anthony Tuininga
df71d9a605 Get the variable data for all bound variables immediately after execution of a
returning statement, rather than when the value of the variable is acquired.
2017-04-11 14:14:18 -06:00
Anthony Tuininga
cc80257107 Formatting improvements. 2017-03-28 14:39:36 -06:00
Anthony Tuininga
c558ff0839 Eliminate compiler warnings with Visual Studio 2015. 2017-03-28 14:38:53 -06:00
Anthony Tuininga
7b0be3140d Implement ODPI-C update which significantly simplifies building cx_Oracle and
enables building a single module to support all versions of Oracle Client
libraries.
2017-03-28 14:31:07 -06:00
Anthony Tuininga
b28e04e901 Rework to use the ODPI-C library instead of direct OCI calls. 2017-03-07 13:21:49 -07:00
Anthony Tuininga
6ba2550d09 Final changes to license and copyright notices as requested; addition of
separate license file and copyright notices to all source files.
2017-03-07 11:36:04 -07:00
Anthony Tuininga
7299d41eca Reworked database change notification and continuous query notification to
more closely align with the PL/SQL implementation and prepare for sending
notifications for AQ messages.
2017-02-20 16:07:41 -07:00
Anthony Tuininga
ff01f65a7c Added support for using application context during the creation of a
connection. This should be used in preference to the module, action and
clientinfo arguments which are now deprecated.
2017-02-17 16:53:33 -08:00
Anthony Tuininga
ad48010559 Added support for setting the internal_name and external_name attributes
directly; these should now be used instead of the twophase argument when
creating a connection.
2017-02-03 17:07:57 -07:00
Anthony Tuininga
a56f7056d9 Increased default array size to 100 (from 50) to match other drivers. 2017-02-03 14:23:36 -07:00
Anthony Tuininga
55b0d5d480 Removed deprecated types UNICODE, FIXED_UNICODE and LONG_UNICODE. 2017-02-03 14:19:52 -07:00
Anthony Tuininga
9c7eb12448 Dropped support for callbacks on OCI functions. 2017-02-03 14:08:04 -07:00