При выполнении запроса, который возвращает данные, API-интерфейс MySQL C позволяет указать, хотите ли вы "использовать" или "хранить" результирующий набор. "Использовать" набор результатов означает, что результаты только отправляются с сервера клиенту по запросу (например, одна строка отправляется клиенту каждый раз, когда к этой строке обращаются). Для "сохранения" набор результатов означает, что весь результирующий набор отправляется с сервера клиенту "заранее". Первое требует меньше памяти на клиенте, а последнее - больше памяти.
Имеет ли API PostgreSQL C аналогичную функциональность?
Ответ на этот вопрос можно найти здесь:
http://www.postgresql.org/docs/current/static/libpq-single-row-mode.html
... вызвать PQsetSingleRowMode сразу после успешного вызова PQsendQuery (или функции sibling).
Обратите внимание, что это доступно только в PostgreSQL 9.2 или выше.