153 Commits

Author SHA1 Message Date
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
fb249f5944 Ensure that the row count for queries is reset to zero when the statement is
executed (https://github.com/oracle/python-cx_Oracle/issues/193).
2018-06-25 15:57:19 -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
e6d5153e43 Added additional test cases for heterogeneous pools. 2018-06-19 11:10:26 -06:00
Anthony Tuininga
85a0ad3ee3 Use the built-in type SYS_REFCURSOR instead of creating a new one. 2018-05-29 21:55:45 -06:00
Anthony Tuininga
c31eef50de Correct handling of statements and rowids in DML returning statements. 2018-05-29 21:55:26 -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
005a00c03d Added additional test cases and corrected test case for ltxid when
using 11.2 client.
2018-05-09 19:36:13 -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
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
d9c50574f5 Added test cases for AQ transformations and trimming collections. 2018-05-09 19:34:21 -06:00
Anthony Tuininga
355d7f34aa Added additional test to verify case when a DML returning statement returns
multiple rows during one execute but in the subsequent execute it returns no
rows.
2018-05-04 21:35:37 -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
e763419b59 Ensure that decreasing number of rows returned from a DML returning statement
is detected properly.
2018-04-19 14:21:26 -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
e15851220b Correct the handling of ANSI types REAL and DOUBLE PRECISION as implemented by
Oracle. These types are just subtypes of NUMBER and are not actually stored as
native floating point numbers. Native floating point numbers are used with
Oracle types BINARY_FLOAT and BINARY_DOUBLE
(https://github.com/oracle/python-cx_Oracle/issues/163).
2018-03-21 11:46:17 -06:00
Anthony Tuininga
48571852ca Add test demonstrating that binding of long data using cursor.executemany()
works as expected.
2018-03-19 10:55:26 -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
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
07b3b93da1 Add additional test cases. 2018-02-27 16:57:01 -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
54dcf8642b Added test cases for recent ODPI-C bug fixes. 2018-02-15 11:18:15 -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
65580226cd Added test cases for AQ visibility and delivery modes. 2018-01-30 15:25:56 -07:00
Anthony Tuininga
6a998604ce The attribute connection.dbop is only valid with Oracle 12.1 and higher. 2018-01-11 16:24:42 -07:00
Anthony Tuininga
ef60884570 Additional test cases to improve code coverage. 2018-01-11 16:24:08 -07:00
Anthony Tuininga
ab4cde01b7 Use "wait" mode for acquiring connections from the pool in order to avoid
potential errors under certain circumstances.
2017-12-12 12:09:32 -07:00
Anthony Tuininga
0b408253f6 Added test for creating a connection using an existing connection's handle. 2017-12-07 15:55:13 -07:00
Anthony Tuininga
a8d9b74c3a Added preliminary test cases for subscriptions. 2017-12-07 15:54:11 -07:00
Anthony Tuininga
1fe14c66dc Use safer queries for verifying connection properties. 2017-12-07 15:52:34 -07:00
Anthony Tuininga
fb71f1126b Additional test cases for AQ. 2017-11-27 10:38:27 -07:00
Anthony Tuininga
011e062aa1 Added test cases for autocommit, changing passwords and the end-to-end tracing
attributes.
2017-11-27 10:37:46 -07:00
Anthony Tuininga
9377175715 Added test cases for validating object types and for preventing an attempt to
set a LOB variable at an array position that doesn't exist.
2017-11-14 11:03:11 -07:00
Anthony Tuininga
02c5f5eb5d Correct test suite when CHAR encoding is not capable of handling unicode data. 2017-11-14 11:02:41 -07:00
Anthony Tuininga
d4b13eb584 Added test cases for rowids. 2017-10-24 22:03:47 -06:00
Anthony Tuininga
ef201bde74 Added additional LOB function tests; skip supplemental characters test if
database character set is not AL32UTF8.
2017-10-13 19:13:42 -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
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
d1b5428879 Add information on how to run the test suite
(https://github.com/oracle/python-cx_Oracle/issues/33).
2017-08-08 15:40:05 -06:00
Anthony Tuininga
3e2dd725ad Change default connectstring to localhost/orclpdb to be consistent with the
default value used in the Oracle Database installer.
2017-08-08 15:39:02 -06:00
Anthony Tuininga
16bc500c73 All cursors and LOBs must be closed before a connection can be closed
explicitly.
2017-07-31 21:20:30 -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