The function which mapped store procedures and functions return types to
rhnSQL's own types didn't process all the known types. In fact it exited
immediately if the first comparison didn't pass.
---
 backend/server/rhnSQL/driver_cx_Oracle.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/backend/server/rhnSQL/driver_cx_Oracle.py 
b/backend/server/rhnSQL/driver_cx_Oracle.py
index 80ef513..420fb10 100644
--- a/backend/server/rhnSQL/driver_cx_Oracle.py
+++ b/backend/server/rhnSQL/driver_cx_Oracle.py
@@ -330,12 +330,14 @@ class Procedure(sql_base.Procedure):
     def _call_proc_ret(self, args, ret_type=None):
         args = map(to_string, self._munge_args(args))
         if ret_type:
+            ret_type_mapped = False
             for sqltype, db_type in self._type_mapping:
                 if isinstance(ret_type, sqltype):
                     ret_type = db_type
+                    ret_type_mapped = True
                     break
-                else:
-                    raise Exception("Unknown type", ret_type)
+            if not ret_type_mapped:
+              raise Exception("Unknown type", ret_type)
 
         if ret_type:
             return self.cursor.callfunc(self.name, ret_type, args)
-- 
1.8.4

_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to