libpq: How are result sets fetch behind the scene?

Поиск
Список
Период
Сортировка
От Sebastien FLAESCH
Тема libpq: How are result sets fetch behind the scene?
Дата
Msg-id 6f2f210b-53e6-f350-4850-83f49b2a1354@4js.com
обсуждение исходный текст
Ответы Re: libpq: How are result sets fetched behind the scene?  (Sebastien FLAESCH <sf@4js.com>)
Список pgsql-sql
Hi all,

We are using libpq in our C program.

I was wondering how the client lib / protocol manage to fetch the result set to the client app memory.

Is there some optimization ?

Are rows fetched in sequence until the requested row?

I mean if I do a SELECT that produces a huge result set, and then call PQgetvalue() with a row_number = 5000, are all
5000rows fetched from the 
 
server or is there some smart fast-forward done because I did not ask the 4999 previous rows?

We know about server cursors (declare + fetch forward), and we do already fetch blocks of rows with this.

But server cursors are slow (and certainly use more server resources), compared to direct SELECT execution.

So we are wondering what would be the impact in terms of resources on the client application.

Is there any doc link or blog that would explain best practices with libpq result set programming?

Thanks!
Seb



В списке pgsql-sql по дате отправления:

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: Ordering of arrays
Следующее
От: Sebastien FLAESCH
Дата:
Сообщение: Re: libpq: How are result sets fetched behind the scene?