diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index fad67121327680f0ea655cd3397137068e819a19..8cd26e3aa8c12946d593f796ccfc33ff9df98a51 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -876,7 +876,7 @@ class sql_result {
             } else {
               [ value ] = cr->sscanf(collen == 4 ? "%4F" : "%8F");
               if (alltext)
-                value = sprintf("%.*g", collen == 4 ? 10 : 20, value);
+                value = sprintf("%.*g", collen == 4 ? 8 : 17, value);
               break;
             }
           default:value = cr->read(collen);