• Alvaro Herrera's avatar
    Rework PostgresNode's psql method · 2c83f435
    Alvaro Herrera authored
    This makes the psql() method much more capable: it captures both stdout
    and stderr; it now returns the psql exit code rather than stdout; a
    timeout can now be specified, as can ON_ERROR_STOP behavior; it gained a
    new "on_error_die" (defaulting to off) parameter to raise an exception
    if there's any problem.  Finally, additional parameters to psql can be
    passed if there's need for further tweaking.
    
    For convenience, a new safe_psql() method retains much of the old
    behavior of psql(), except that it uses on_error_die on, so that
    problems like syntax errors in SQL commands can be detected more easily.
    
    Many existing TAP test files now use safe_psql, which is what is really
    wanted.  A couple of ->psql() calls are now added in the commit_ts
    tests, which verify that the right thing is happening on certain errors.
    Some ->command_fails() calls in recovery tests that were verifying that
    psql failed also became ->psql() calls now.
    
    Author: Craig Ringer. Some tweaks by Álvaro Herrera
    Reviewed-By: Michaël Paquier
    2c83f435
003_standby_2.pl 2.09 KB