psql: Fix incorrect status code returned by \getresults
authorMichael Paquier <michael@paquier.xyz>
Sat, 19 Apr 2025 23:15:39 +0000 (08:15 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 19 Apr 2025 23:15:39 +0000 (08:15 +0900)
When an invalid number of results is requested for \getresults, the
status code returned by exec_command_getresults() was PSQL_CMD_SKIP_LINE
and not PSQL_CMD_ERROR.

This led to incorrect behaviors, with ON_ERROR_STOP for example.

Reported-by: Noah Misch <noah@leadboat.com>
Discussion: https://postgr.es/m/20250415213450.1f.nmisch@google.com

src/bin/psql/command.c

index a8a13c2b88bc7dc154d137a83ecaa638179d4e52..81a5ba844ba0f901ef3863235fb94e84dc97852a 100644 (file)
@@ -1922,7 +1922,7 @@ exec_command_getresults(PsqlScanState scan_state, bool active_branch)
            if (num_results < 0)
            {
                pg_log_error("\\getresults: invalid number of requested results");
-               return PSQL_CMD_SKIP_LINE;
+               return PSQL_CMD_ERROR;
            }
            pset.requested_results = num_results;
        }