pike.git / lib / modules / Sql.pmod / pgsql.pike

version» Context lines:

pike.git/lib/modules/Sql.pmod/pgsql.pike:643:    if(!portal) {    portal=qportals->try_read();   #ifdef PG_DEBUG    showportal(msgtype);   #endif    }    int msglen=ci->read_int32();    _msgsreceived++;    _bytesreceived+=1+msglen;    int errtype=NOERROR; -  PD("%d",ci->socket->query_fd()); +  PD("%d>",ci->socket->query_fd());    switch(msgtype) {    array(mapping) getcols() {    int bintext=ci->read_int8();    int cols=ci->read_int16();   #ifdef PG_DEBUG    array a;    msglen-=4+1+2+2*cols;    foreach(a=allocate(cols,([]));;mapping m)    m.type=ci->read_int16();   #else
pike.git/lib/modules/Sql.pmod/pgsql.pike:680:    mapping(string:string) getresponse() {    mapping(string:string) msgresponse=([]);    msglen-=4;    foreach(reads();;string f)    if(sizeof(f))    msgresponse[f[..0]]=f[1..];    PD("%O\n",msgresponse);    return msgresponse;    };    case 'R': { -  PD("<Authentication "); +  PD("Authentication ");    string sendpass;    int authtype;    msglen-=4+4;    switch(authtype=ci->read_int32()) {    case 0:    PD("Ok\n");    .pgsql_util.local_backend->remove_call_out(reconnect);    ci->gottimeout=cancelquery;    ci->timeout=timeout;    reconnectdelay=0;
pike.git/lib/modules/Sql.pmod/pgsql.pike:762:    case PROTOCOLUNSUPPORTED:    ERROR("Unsupported authenticationmethod %c\n",authtype);    break;    }    break;    }    case 'K':    msglen-=4+4;backendpid=ci->read_int32();    cancelsecret=ci->read(msglen);   #ifdef PG_DEBUG -  PD("<BackendKeyData %O\n",cancelsecret); +  PD("BackendKeyData %O\n",cancelsecret);    msglen=0;   #endif    break;    case 'S': { -  PD("<ParameterStatus "); +  PD("ParameterStatus ");    msglen-=4;    array(string) ts=reads();   #ifdef PG_DEBUG    if(sizeof(ts)==2) {   #endif    _runtimeparameter[ts[0]]=ts[1];   #ifdef PG_DEBUG    PD("%O=%O\n",ts[0],ts[1]);    } else    errtype=PROTOCOLERROR;   #endif    break;    }    case '3':   #ifdef PG_DEBUG -  PD("<CloseComplete\n"); +  PD("CloseComplete\n");    msglen-=4;   #endif    break;    case 'Z':    backendstatus=ci->read_int8();   #ifdef PG_DEBUG    msglen-=4+1; -  PD("<ReadyForQuery %c\n",backendstatus); +  PD("ReadyForQuery %c\n",backendstatus);   #endif    for(;objectp(portal);portal=qportals->read()) {   #ifdef PG_DEBUG    showportal(msgtype);   #endif    portal->_purgeportal();    }    foreach(qportals->peek_array();;.pgsql_util.sql_result qp) {    if(objectp(qp) && qp._synctransact && qp._synctransact<=portal) {    PD("Checking portal %O %d<=%d\n",
pike.git/lib/modules/Sql.pmod/pgsql.pike:815:    }    portal=0;    _readyforquerycount--;    if(readyforquery_cb)    readyforquery_cb(),readyforquery_cb=0;    if(waitforauthready)    destruct(waitforauthready);    break;    case '1':   #ifdef PG_DEBUG -  PD("<ParseComplete\n"); +  PD("ParseComplete\n");    msglen-=4;   #endif    break;    case 't': {    array a;    int cols=ci->read_int16();   #ifdef PG_DEBUG -  PD("<%O ParameterDescription %d values\n",portal._query,cols); +  PD("%O ParameterDescription %d values\n",portal._query,cols);    msglen-=4+2+4*cols;   #endif    foreach(a=allocate(cols);int i;)    a[i]=ci->read_int32();   #ifdef PG_DEBUGMORE    PD("%O\n",a);   #endif    if(portal._tprepared)    portal._tprepared.datatypeoid=a;    callout(portal->_preparebind,0,a);    break;    }    case 'T': {    array a;   #ifdef PG_DEBUG    int cols=ci->read_int16(); -  PD("<RowDescription %d columns %O\n",cols,portal._query); +  PD("RowDescription %d columns %O\n",cols,portal._query);    msglen-=4+2;    foreach(a=allocate(cols);int i;)   #else    foreach(a=allocate(ci->read_int16());int i;)   #endif    {    string s=ci->read_cstring();    mapping(string:mixed) res=(["name":s]);   #ifdef PG_DEBUG    msglen-=sizeof(s)+1+4+2+4+2+4+2;
pike.git/lib/modules/Sql.pmod/pgsql.pike:887:    portal->_setrowdesc(a); // Do not consume queued portal    else {    portal->_processrowdesc(a);    portal=0;    }    break;    }    case 'n': {   #ifdef PG_DEBUG    msglen-=4; -  PD("<NoData %O\n",portal._query); +  PD("NoData %O\n",portal._query);   #endif    portal._fetchlimit=0; // disables subsequent Executes    portal->_processrowdesc(({}));    portal=0;    break;    }    case 'H':    portal->_processrowdesc(getcols()); -  PD("<CopyOutResponse %O\n",portal._query); +  PD("CopyOutResponse %O\n",portal._query);    break;    case '2': {    mapping tp;   #ifdef PG_DEBUG    msglen-=4; -  PD("<%O BindComplete\n",portal._portalname); +  PD("%O BindComplete\n",portal._portalname);   #endif    if(tp=portal._tprepared) {    int tend=gethrtime();    int tstart=tp.trun;    if(tend==tstart)    m_delete(_prepareds,portal._query);    else {    tp.hits++;    totalhits++;    if(!tp.preparedname) {
pike.git/lib/modules/Sql.pmod/pgsql.pike:928:    }    tp.trunstart=tend;    }    }    break;    }    case 'D':    msglen-=4;   #ifdef PG_DEBUG   #ifdef PG_DEBUGMORE -  PD("<%O DataRow %d bytes\n",portal._portalname,msglen); +  PD("%O DataRow %d bytes\n",portal._portalname,msglen);   #endif    datarowdebugcount++;    if(!datarowdebug)    datarowdebug=sprintf( -  "<%O DataRow %d bytes",portal._portalname,msglen); +  "%O DataRow %d bytes",portal._portalname,msglen);   #endif   #ifdef PG_DEBUG    msglen=   #endif    portal->_decodedata(msglen,_runtimeparameter[CLIENT_ENCODING]);    break;    case 's':   #ifdef PG_DEBUG -  PD("<%O PortalSuspended\n",portal._portalname); +  PD("%O PortalSuspended\n",portal._portalname);    msglen-=4;   #endif    portal=0;    break;    case 'C': {    msglen-=4;   #ifdef PG_DEBUG    if(msglen<1)    errtype=PROTOCOLERROR;   #endif    string s=ci->read(msglen-1);    portal->_storetiming(); -  PD("<%O CommandComplete %O\n",portal._portalname,s); +  PD("%O CommandComplete %O\n",portal._portalname,s);   #ifdef PG_DEBUG    if(ci->read_int8())    errtype=PROTOCOLERROR;    msglen=0;   #else    ci->consume(1);   #endif    portal->_releasesession(s);    portal=0;    break;    }    case 'I':   #ifdef PG_DEBUG -  PD("<EmptyQueryResponse %O\n",portal._portalname); +  PD("EmptyQueryResponse %O\n",portal._portalname);    msglen-=4;   #endif    portal->_releasesession();    portal=0;    break;    case 'd': -  PD("<%O CopyData\n",portal._portalname); +  PD("%O CopyData\n",portal._portalname);    portal->_storetiming();    msglen-=4;   #ifdef PG_DEBUG    if(msglen<0)    errtype=PROTOCOLERROR;   #endif    portal->_processdataready(({ci->read(msglen)}),msglen);   #ifdef PG_DEBUG    msglen=0;   #endif    break;    case 'G':    portal->_setrowdesc(getcols()); -  PD("<%O CopyInResponse\n",portal._portalname); +  PD("%O CopyInResponse\n",portal._portalname);    portal._state=COPYINPROGRESS;    {    Thread.MutexKey resultlock=portal._resultmux->lock();    portal._newresult.signal();    resultlock=0;    }    break;    case 'c':   #ifdef PG_DEBUG -  PD("<%O CopyDone\n",portal._portalname); +  PD("%O CopyDone\n",portal._portalname);    msglen-=4;   #endif    portal=0;    break;    case 'E': {    if(!_readyforquerycount)    sendsync(); -  PD("<%O ErrorResponse %O\n", +  PD("%O ErrorResponse %O\n",    objectp(portal)&&(portal._portalname||portal._preparedname),    objectp(portal)&&portal._query);    mapping(string:string) msgresponse;    msgresponse=getresponse();    warningsdropcount+=warningscollected;    warningscollected=0;    switch(msgresponse.C) {    case "P0001":    lastmessage=({sprintf("%s: %s",msgresponse.S,msgresponse.M)});    USERERROR(a2nls(lastmessage
pike.git/lib/modules/Sql.pmod/pgsql.pike:1052:    switch(msgresponse.S) {    case "PANIC":werror(a2nls(lastmessage));    }    USERERROR(a2nls(lastmessage));    }    if(objectp(portal))    portal->_releasesession();    break;    }    case 'N': { -  PD("<NoticeResponse\n"); +  PD("NoticeResponse\n");    mapping(string:string) msgresponse;    msgresponse=getresponse();    if(clearmessage) {    warningsdropcount+=warningscollected;    clearmessage=warningscollected=0;    lastmessage=({});    }    warningscollected++;    lastmessage=({sprintf("%s %s: %s",    msgresponse.S,msgresponse.C,msgresponse.M)});    break;    }    case 'A': { -  PD("<NotificationResponse\n"); +  PD("NotificationResponse\n");    msglen-=4+4;    int pid=ci->read_int32();    string condition,extrainfo=UNDEFINED;    {    array(string) ts=reads();    switch(sizeof(ts)) {   #if PG_DEBUG    case 0:    errtype=PROTOCOLERROR;    break;