• Alvaro Herrera's avatar
    Rework the pgbench state machine code for clarity · 3bac77c4
    Alvaro Herrera authored
    This commit continues the code improvements started by commit
    12788ae4.  With this commit, state machine transitions are better
    contained in the routine that was called doCustom() and is now called
    advanceConnectionState -- the resulting code is easier to reason about,
    since there are no state changes occuring in the outer layer.
    
    This change is prompted by future patches to add more features to
    pgbench, which will need to effect some more surgery to this code.
    
    Fabien's original had all the machine state changes inside one routine,
    but I (Álvaro) thought that a subroutine to handle command execution is
    more straightforward to review, so this commit does not match Fabien's
    submission closely.  If something is broken, it's probably my fault.
    
    Author: Fabien Coelho, Álvaro Herrera
    Reviewed-by: Kirk Jamison
    Discussion: https://postgr.es/m/alpine.DEB.2.21.1808111104320.1705@lancre
    3bac77c4
pgbench.c 157 KB