Возможно, ошибка, вызванная запросом, не является фатальной, как те, что упомянуты в руководстве, т. Е. Вам не хватает памяти, и она не получает ошибку "файл не найден".
Читая немного дальше в руководстве, я прочитал это:
psql возвращает 0 оболочке, если она закончилась нормально, 1, если произошла фатальная ошибка (нехватка памяти, файл не найден), 2, если соединение с сервером разорвалось и сеанс не был интерактивным, и 3, если в скрипте произошла ошибка и была установлена переменная ON_ERROR_STOP.
Чтобы поймать вашу ошибку, вы можете попробовать:
- установить переменную
ON_ERROR_STOP
; или
- изменить подход, сохранив вывод запроса в файл и затем работая с этим файлом.