diff --git a/doc/src/conf.py b/doc/src/conf.py index 2d25494..5660552 100644 --- a/doc/src/conf.py +++ b/doc/src/conf.py @@ -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: diff --git a/odpi b/odpi index dfa763c..5967b3a 160000 --- a/odpi +++ b/odpi @@ -1 +1 @@ -Subproject commit dfa763c343a64e85c60bda1cae93af35e9967b9d +Subproject commit 5967b3ad0d0d7dc63cf8ffb1974e4bc3e2356610 diff --git a/setup.py b/setup.py index b333dfb..43f6f6c 100644 --- a/setup.py +++ b/setup.py @@ -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( diff --git a/src/cx_Oracle.c b/src/cx_Oracle.c index f9ad05f..19489fd 100644 --- a/src/cx_Oracle.c +++ b/src/cx_Oracle.c @@ -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" diff --git a/test/DMLReturning.py b/test/DMLReturning.py index 5871eeb..c6920c1 100644 --- a/test/DMLReturning.py +++ b/test/DMLReturning.py @@ -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() +