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",