Hey, According to 31.18, http://www.postgresql.org/docs/9.1/static/libpq-threading.html "PGresult objects are read-only after creation, and so can be passed around freely between threads."
But PGresult objects are *not* read-only because of existence of PQsetvalue() described in http://www.postgresql.org/docs/9.1/static/libpq-misc.html -- // Dmitriy.