PostgreSQL will send you 1000 times "a". It doesn't have a client part! The client is your application. Between them is the ORM, the database components, and the DATABASE driver. If you are a pgAdmin who wrote a request and received 1000 lines, then your application will receive the same 1000 lines through the above objects with such a request from the application. Query optimization is your task. And the fact that the database can compress the received data depends on the objects through which the program works with your application. But it will compress the same 1000 lines that the database server will give it.