Update ODPI-C (improve performance, correct handling of objects when dynamic

binding is being used).
This commit is contained in:
Anthony Tuininga 2017-08-24 21:50:29 -06:00
parent c2c8d541bf
commit 0111431430
5 changed files with 32 additions and 14 deletions

View File

@ -40,9 +40,9 @@ author = 'Oracle'
# other places throughout the built documents.
#
# The short X.Y version.
version = '6.0'
version = '6.1'
# The full version, including alpha/beta/rc tags.
release = '6.0.1'
release = '6.1.0-dev'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:

2
odpi

@ -1 +1 @@
Subproject commit dfa763c343a64e85c60bda1cae93af35e9967b9d
Subproject commit 5967b3ad0d0d7dc63cf8ffb1974e4bc3e2356610

View File

@ -20,7 +20,7 @@ except:
from distutils.extension import Extension
# define build constants
BUILD_VERSION = "6.0.2"
BUILD_VERSION = "6.1.0-dev"
# setup extra link and compile args
extraLinkArgs = []
@ -82,16 +82,17 @@ extension = Extension(
"src/SessionPool.c", "src/StringVar.c", "src/Subscription.c",
"src/Variable.c", "odpi/include/dpi.h", "odpi/src/dpiImpl.h",
"odpi/src/dpiConn.c", "odpi/src/dpiContext.c",
"odpi/src/dpiData.c", "odpi/src/dpiDeqOptions.c",
"odpi/src/dpiEnqOptions.c", "odpi/src/dpiEnv.c",
"odpi/src/dpiError.c", "odpi/src/dpiGen.c",
"odpi/src/dpiGlobal.c", "odpi/src/dpiLob.c",
"odpi/src/dpiMsgProps.c", "odpi/src/dpiObject.c",
"odpi/src/dpiObjectAttr.c", "odpi/src/dpiObjectType.c",
"odpi/src/dpiOci.c", "odpi/src/dpiOracleType.c",
"odpi/src/dpiPool.c", "odpi/src/dpiRowid.c",
"odpi/src/dpiStmt.c", "odpi/src/dpiSubscr.c",
"odpi/src/dpiUtils.c", "odpi/src/dpiVar.c"])
"odpi/src/dpiData.c", "odpi/src/dpiDebug.c",
"odpi/src/dpiDeqOptions.c", "odpi/src/dpiEnqOptions.c",
"odpi/src/dpiEnv.c", "odpi/src/dpiError.c",
"odpi/src/dpiGen.c", "odpi/src/dpiGlobal.c",
"odpi/src/dpiLob.c", "odpi/src/dpiMsgProps.c",
"odpi/src/dpiObject.c", "odpi/src/dpiObjectAttr.c",
"odpi/src/dpiObjectType.c", "odpi/src/dpiOci.c",
"odpi/src/dpiOracleType.c", "odpi/src/dpiPool.c",
"odpi/src/dpiRowid.c", "odpi/src/dpiStmt.c",
"odpi/src/dpiSubscr.c", "odpi/src/dpiUtils.c",
"odpi/src/dpiVar.c"])
# perform the setup
setup(

View File

@ -734,6 +734,7 @@ void initcx_Oracle(void)
#include "dpiConn.c"
#include "dpiContext.c"
#include "dpiData.c"
#include "dpiDebug.c"
#include "dpiDeqOptions.c"
#include "dpiEnqOptions.c"
#include "dpiEnv.c"

View File

@ -102,3 +102,19 @@ class TestDMLReturning(BaseTestCase):
"The final value of string 10"
])
def testInsertAndReturnObject(self):
"test inserting an object with DML returning"
typeObj = self.connection.gettype("UDT_OBJECT")
stringValue = "The string that will be verified"
obj = typeObj.newobject()
obj.STRINGVALUE = stringValue
outVar = self.cursor.var(cx_Oracle.OBJECT, typename = "UDT_OBJECT")
self.cursor.execute("""
insert into TestObjects (IntCol, ObjectCol)
values (4, :obj)
returning ObjectCol into :outObj""",
obj = obj, outObj = outVar)
result = outVar.getvalue()
self.assertEqual(result.STRINGVALUE, stringValue)
self.connection.rollback()