Hi,

In PPAS 90, if an SPL-function has both an OUT-parameter and a return value
(which is not possible on PostgreSQL otherwise), the return value is
transformed into an extra OUT-parameter named "_retval_". Although we fixed
the normal code path a while back, the debugger still remains dazed and
confused. We need to teach it to ignore "_retval_" parameter too. PFA, patch
to do the same.

Regards,
Nikhils
diff --git a/pgadmin/debugger/dbgTargetInfo.cpp b/pgadmin/debugger/dbgTargetInfo.cpp
index 8c9b937..6a3ddfb 100644
--- a/pgadmin/debugger/dbgTargetInfo.cpp
+++ b/pgadmin/debugger/dbgTargetInfo.cpp
@@ -135,6 +135,23 @@ dbgTargetInfo::dbgTargetInfo( const wxString &target,  dbgPgConn *conn, char tar
 		if( argName.IsEmpty())
 			argName.Printf( wxT( "$%d" ), argCount );
 
+		// In EDBAS 90, if an SPL-function has both an OUT-parameter
+		// and a return value (which is not possible on PostgreSQL otherwise),
+		// the return value is transformed into an extra OUT-parameter
+		// named "_retval_"
+		if (argName == wxT("_retval_") && conn->EdbMinimumVersion(9, 0))
+		{
+			// this will be the return type for this object
+			m_returnType = types.GetNextToken();
+
+			// consume uniformly, mode will definitely be "OUT"
+			modes.GetNextToken();
+
+			// ignore OID also..
+			typeOids.GetNextToken();
+			continue;
+		}
+
 		wsArgInfo	argInfo( argName, types.GetNextToken(), modes.GetNextToken(), typeOids.GetNextToken());
 
 		if( argInfo.getMode() == wxT( "i" ))
-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to