Branch: Tag:

2018-05-30

2018-05-30 00:46:58 by Stephen R. van den Berg <srb@cuci.nl>

pgsql: Simplify code; clear stmtifkey always.

1571:    final void _releasestatement() {    Thread.MutexKey lock = closemux->lock();    if (_state <= BOUND) { -  _state = COMMITTED; +     stmtifkey = 0; -  +  _state = COMMITTED;    }    }   
1588:    {    Thread.MutexKey lock = closemux->lock();    _fetchlimit = 0; // disables further Executes -  switch (_state) { -  case COPYINPROGRESS: -  case COMMITTED: -  case BOUND: -  portalsifkey = 0; -  } -  switch (_state) { -  case BOUND: -  case PARSING: -  stmtifkey = 0; -  } +  stmtifkey = portalsifkey = 0;    _state = PURGED;    }    releaseconditions();
1609:    int retval = KEEP;    PD("%O Try Closeportal %d\n", _portalname, _state);    _fetchlimit = 0; // disables further Executes +  stmtifkey = 0;    switch (_state) { -  case PARSING: -  case BOUND: -  _state = COMMITTED; // Avoid _releasestatement() to prevent -  stmtifkey = 0; // lock recursion and lock inversion deadlock -  } -  switch (_state) { +     case PORTALINIT:    case PARSING:    _unnamedstatementkey = 0;
1711:    plugbuffer->sendcmd(_closeportal(plugbuffer, reflock));    reflock = 0;    if (_state < CLOSED) { -  _state = CLOSED; +     stmtifkey = 0; -  +  _state = CLOSED;    }    datarows->write(1); // Signal EOF    releaseconditions();