diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index 4c767f7a2207d33af7fb456d10331da6fc3efbbc..e1b4fff7e430a24347ccda586919cbdfa89201cd 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -1132,14 +1132,7 @@ class sql_result {
               if (!alltext)
                 value = (int)value;
             } else {
-              switch (typ) {
-                case INT8OID:value = cr->read_sint(8);
-                  break;
-                case INT2OID:value = cr->read_sint(2);
-                  break;
-                case OIDOID:
-                case INT4OID:value = cr->read_sint(4);
-              }
+              value = cr->read_sint(collen);
               if (alltext)
                 value = (string)value;
             }