diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index bd226400d63f1868275e0e20530c3ade0c14dd53..b424e505a8642eebaccc9052fd38683cf1d04a19 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -509,9 +509,9 @@ private void resync_cb() {
   switch (proxy.backendstatus) {
     case 'T':case 'E':
       foreach (proxy.prepareds; ; mapping tp) {
-        m_delete(tp,"datatypeoid");
-        m_delete(tp,"datarowdesc");
-        m_delete(tp,"datarowtypes");
+        m_delete(tp, "datatypeoid");
+        m_delete(tp, "datarowdesc");
+        m_delete(tp, "datarowtypes");
       }
       Thread.Thread(reset_dbsession);	  // Urgently and deadlockfree
   }
@@ -698,7 +698,7 @@ private void resync_cb() {
 //! @param glob
 //! If specified, list only those databases matching it.
 /*semi*/final array(string) list_dbs (void|string glob) {
-  array row, ret = .pgsql_util.emptyarray;
+  array row, ret = ({});
   .pgsql_util.sql_result res=big_query("SELECT d.datname "
                                          "FROM pg_database d "
                                          "WHERE d.datname ILIKE :glob "
@@ -716,7 +716,7 @@ private void resync_cb() {
 //! @param glob
 //! If specified, list only the tables with matching names.
 /*semi*/final array(string) list_tables (void|string glob) {
-  array row, ret = .pgsql_util.emptyarray;
+  array row, ret = ({});
   .pgsql_util.sql_result res = big_query(     // due to missing schemasupport
    // This query might not work on PostgreSQL 7.4
    "SELECT CASE WHEN 'public'=n.nspname THEN '' ELSE n.nspname||'.' END "
@@ -775,7 +775,7 @@ private void resync_cb() {
 //! Setting it to @expr{*@} will include system columns in the list.
 /*semi*/final array(mapping(string:mixed)) list_fields(void|string table,
  void|string glob) {
-  array row, ret = .pgsql_util.emptyarray;
+  array row, ret = ({});
   string schema;
 
   sscanf(table||"*", "%s.%s", schema, table);
@@ -1062,13 +1062,13 @@ private void startquery(int forcetext, .pgsql_util.sql_result portal, string q,
   if (bindings) {
     if (forcetext)
       q = .sql_util.emulate_bindings(q, bindings, this),
-      paramValues = .pgsql_util.emptyarray;
+      paramValues = ({});
     else {
       int pi = 0;
       paramValues = allocate(sizeof(bindings));
       from = allocate(sizeof(bindings));
       array(string) litfrom, litto, to = allocate(sizeof(bindings));
-      litfrom = litto = .pgsql_util.emptyarray;
+      litfrom = ({}); litto = ({});
       foreach (bindings; mixed name; mixed value) {
         if (stringp(name)) {	       // Throws if mapping key is empty string
           if (name[0] != ':')
@@ -1103,14 +1103,14 @@ private void startquery(int forcetext, .pgsql_util.sql_result portal, string q,
         paramValues = paramValues[.. pi];
         q = replace(q, litfrom += from = from[.. pi], litto += to = to[.. pi]);
       } else {
-        paramValues = .pgsql_util.emptyarray;
+        paramValues = ({});
         if (sizeof(litfrom))
           q = replace(q, litfrom, litto);
       }
       from = ({from, to, paramValues});
     }
   } else
-    paramValues = .pgsql_util.emptyarray;
+    paramValues = ({});
   if (String.width(q) > 8)
     ERROR("Wide string literals in %O not supported\n", q);
   if (has_value(q, "\0"))
diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index 850602e05dbfc11b9664d77086a5ecfecb5a61a2..b359143151845d0e4edbdba484db704057302d7f 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -86,11 +86,9 @@ private sql_result qalreadyprinted;
 private Thread.Mutex backendmux = Thread.Mutex();
 final multiset(proxy) clients = set_weak_flag((<>), Pike.WEAK);
 
-constant emptyarray = ({});
-constant describenodata
- = (["datarowdesc":emptyarray, "datarowtypes":emptyarray,
-     "datatypeoid":emptyarray]);
-private constant censoroptions = (<"use_ssl", "force_ssl",
+mapping describenodata
+ = (["datarowdesc":({}), "datarowtypes":({}), "datatypeoid":({})]);
+private multiset censoroptions = (<"use_ssl", "force_ssl",
  "cache_autoprepared_statements", "reconnect", "text_query", "is_superuser",
  "server_encoding", "server_version", "integer_datetimes",
  "session_authorization">);
@@ -622,7 +620,7 @@ outer:
           catch {
             foreach (runningportals; sql_result result; )
               if (!result.datarowtypes) {
-                result.datarowtypes = emptyarray;
+                result.datarowtypes = ({});
                 if (result._state != PURGED && !result.delayederror)
                   result.delayederror = LOSTERROR;
                 result._ddescribe->broadcast();
@@ -867,7 +865,7 @@ class sql_result {
   }
 
   final array(string) _showbindings() {
-    array(string) msgs = emptyarray;
+    array(string) msgs = ({});
     if (_params) {
       array from, to, paramValues;
       [from, to, paramValues] = _params;
@@ -1000,7 +998,7 @@ class sql_result {
       waitfordescribe();
     if (!datarowdesc)
       error(LOSTERROR);
-    return datarowdesc + emptyarray;
+    return datarowdesc + ({});
   }
 
 #ifdef PG_DEBUG
@@ -1145,7 +1143,7 @@ class sql_result {
   }
 
   final void _preparebind(array dtoid) {
-    array(string|int) paramValues = _params ? _params[2] : emptyarray;
+    array(string|int) paramValues = _params ? _params[2] : ({});
     if (sizeof(dtoid) != sizeof(paramValues))
       SUSERERROR("Invalid number of bindings, expected %d, got %d\n",
                  sizeof(dtoid), sizeof(paramValues));
@@ -1518,7 +1516,7 @@ class sql_result {
     if (!datarowtypes) {
       if (_state != PURGED && !delayederror)
         delayederror = LOSTERROR;
-      datarowtypes = emptyarray;
+      datarowtypes = ({});
       _ddescribe->broadcast();
     }
     if (delayederror && pgsqlsess && !pgsqlsess.delayederror)
@@ -1757,7 +1755,7 @@ class proxy {
   private int backendpid;
   final int(-128..127) backendstatus;
   final mapping(string:mixed) options;
-  private array(string) lastmessage = emptyarray;
+  private array(string) lastmessage = ({});
   final int(0..1) clearmessage;
   final int(0..1) untolderror;
   private mapping(string:array(mixed)) notifylist = ([]);
@@ -1838,7 +1836,7 @@ class proxy {
     untolderror = 0;
     string s = lastmessage * "\n";
     if (clear)
-      lastmessage = emptyarray;
+      lastmessage = ({});
     warningscollected = 0;
     return sizeof(s) && s;
   }
@@ -1888,7 +1886,7 @@ class proxy {
   }
 
   private array(string) showbindings(sql_result portal) {
-    return portal ? portal._showbindings() : emptyarray;
+    return portal ? portal._showbindings() : ({});
   }
 
   private void preplastmessage(mapping(string:string) msgresponse) {
@@ -2020,7 +2018,7 @@ class proxy {
             if (msglen < 1)
               errtype = PROTOCOLERROR;
 #endif
-            array ret = emptyarray, aw = ({0});
+            array ret = ({}), aw = ({0});
             do {
               string w = cr->read_cstring();
               msglen -= sizeof(w) + 1; aw[0] = w; ret += aw;
@@ -2317,7 +2315,7 @@ class proxy {
             PD("NoData %O\n", portal._query);
 #endif
             portal._fetchlimit = 0;		// disables subsequent Executes
-            portal->_processrowdesc(emptyarray, emptyarray);
+            portal->_processrowdesc(({}), ({}));
             portal = 0;
             break;
           }
@@ -2494,7 +2492,7 @@ class proxy {
             if (clearmessage) {
               warningsdropcount += warningscollected;
               clearmessage = warningscollected = 0;
-              lastmessage = emptyarray;
+              lastmessage = ({});
             }
             warningscollected++;
             lastmessage = ({sprintf("%s %s: %s",