Branch: Tag:

2008-07-31

2008-07-31 00:05:06 by Stephen R. van den Berg <srb@cuci.nl>

pgsql tuned for small queries with fetchlimit=0

Rev: lib/modules/Sql.pmod/pgsql.pike:1.18
Rev: lib/modules/Sql.pmod/pgsql_util.pmod:1.4

29:    int close() {    }    +  private final array(string) cmdbuf=({}); +    #ifdef USEPGsql    inherit _PGsql.PGsql;   #else
112:    sendcmd(({}),1);    }    -  final int sendcmd(string|array(string) data,void|int flush) { -  if(flush) { -  if(stringp(data)) -  data=({data,FLUSH}); +  final void sendcmd(string|array(string) data,void|int flush) { +  if(arrayp(data)) +  cmdbuf+=data;    else -  data+=({FLUSH}); +  cmdbuf+=({data}); +  switch(flush) { +  case 3: +  cmdbuf+=({FLUSH}); +  flushed=1; +  break; +  default: +  flushed=0; +  break; +  case 1: +  cmdbuf+=({FLUSH});    PD("Flush\n"); -  +  case 2:    flushed=1; -  +  write(cmdbuf); +  cmdbuf=({});    } -  else if(flushed!=-1) -  flushed=0; -  return write(data); +     }       final void sendterminate() {    PD("Terminate\n"); -  sendcmd(({"X",plugint32(4)})); +  sendcmd(({"X",plugint32(4)}),2);    close();    }   }
372:    if(stringp(buffer)) {    PD("CopyData\n");    _pgsqlsess._c.sendcmd(({"d",_pgsqlsess._c.plugint32(4+sizeof(buffer)), -  buffer})); +  buffer}),2);    }    else    releasesession();