Anthony Tuininga
3af5e46b4b
Correct parsing of connect string so that the last @ symbol is searched for
...
instead of the first @ symbol; otherwise, passwords containing an @ symbol will
result in the incorrect DSN being extracted
(https://github.com/oracle/python-cx_Oracle/issues/290 ).
2019-03-28 10:46:15 -06:00
Anthony Tuininga
c112af35cb
Revert changes to return decimal numbers when the numeric precision was too
...
great to be returned accurately as a floating point number. This change had too
great an impact on existing functionality and an output type handler can be
used to return decimal numbers where that is desirable
(https://github.com/oracle/python-cx_Oracle/issues/279 ).
2019-03-12 09:31:38 -06:00
Anthony Tuininga
0ae5b9e715
Added test cases for session tagging.
2019-03-07 17:00:14 -07:00
Anthony Tuininga
fb445815f2
Use random password instead of hard coded password as a security measure.
2019-01-31 10:18:43 -07:00
Anthony Tuininga
4ed95aad94
Reworked test suite to eliminate the use of default passwords and to make the
...
individual test modules directly runnable (instead of using execfile() within
test.py).
2019-01-31 10:18:04 -07:00
Anthony Tuininga
4097a37ff2
Bump copyright notice into 2019 for changed files.
2019-01-22 16:00:29 -07:00
Anthony Tuininga
ba0d41412f
Added test cases for inserting and fetching XMLType objects as strings.
2019-01-22 14:28:25 -07:00
Anthony Tuininga
b13c998999
Timed waits for acquiring a session from a session pool is only available in
...
Oracle 12.2 and higher.
2019-01-22 14:22:39 -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
4c12b47573
Update ODPI-C to support fetching XMLType as strings
...
(https://github.com/oracle/python-cx_Oracle/issues/14 ).
2018-12-03 10:20:14 -07:00
Anthony Tuininga
ef036cbefc
Ensure that all references to TestTempTable use the column names instead of
...
assuming the number of columns (in preparation for adding additional nullable
columns for other tests).
2018-12-03 10:19:22 -07:00
Anthony Tuininga
8fbc43ac08
Added additional SODA test cases.
2018-11-29 17:21:36 -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
e4cef63804
Add comment which is displayed during the test run.
2018-11-29 17:19:20 -07:00
Anthony Tuininga
1be0461174
Be clearer about the syntax used for connecting to the database as sys.
2018-11-05 09:53:39 -07:00
Anthony Tuininga
ae8b4f84aa
Entries can remain in v$sql_monitor for a period of time so only look at the
...
executing one.
2018-11-02 15:45:09 -06:00
Anthony Tuininga
851c9a4650
Add support for getting/setting raw attributes of objects, as requested
...
(https://github.com/oracle/odpi/issues/72 ).
2018-11-02 15:44:49 -06: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
74d9d71484
Use cx_Oracle.connect() in preference to cx_Oracle.Connection() in samples and
...
tests. Although the two are aliases of one another, it makes sense to be
consistent and to use the one that the DB API prefers as well.
2018-09-21 11:05:40 -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
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
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
8cc4d8607f
Remove unnecessary Unicode specific tests for Python 2.7 since Python 3 now
...
also supports the "u" prefix; merge them instead into the main tests.
2017-07-21 15:16:24 -06:00
Anthony Tuininga
340dcb7195
Rework test suite and samples so that they are independent of each other and
...
so that the SQL scripts used to create/drop schemas are easily adjusted to
use different schema names, if desired. Improve documentation for test suite
and samples.
2017-07-14 16:50:41 -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
c1005ddcac
Added test cases for AQ enqueue/dequeue options and message properties
...
(https://github.com/oracle/odpi/issues/16 ).
2017-07-13 13:57:29 -06:00
Anthony Tuininga
1d768706ab
Python 2.7 requires the "u" prefix.
2017-07-08 21:23:27 -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
888fd89fce
Update DB API test stub to match latest version of test suite and cx_Oracle.
2017-07-05 13:19:07 -06:00
Anthony Tuininga
f555a10f36
Add support for Python 3 in DB API test suite stub.
2017-07-05 13:17:50 -06:00
Anthony Tuininga
d008553dc1
Add script for dropping the test schemas; add copyright and information on how
...
to execute to the SetupTest.sql script.
2017-06-16 16:48:15 -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
fa4faa2718
Update ODPI-C which has added an optimization to reduce buffer size when both
...
the client and server character sets are identical and corrected support for
BFILE LOBs.
2017-06-16 16:43:41 -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
f4009ebabd
Add tests for specifying only the encoding or only the nencoding.
2017-06-10 11:32:25 -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
2e240bc154
Prevent attempts from binding the cursor being executed to itself.
2017-05-16 13:23:20 -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
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
8d7c828b89
Use an object type that is supported in both 11.2 and 12.1.
2017-04-18 13:04:23 -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
3bc9bd2303
Added sample and test case to demonstrate use of universal rowids.
2017-04-11 16:12:06 -06:00