Re: libpq: How are result sets fetched behind the scene?
От | Sebastien FLAESCH |
---|---|
Тема | Re: libpq: How are result sets fetched behind the scene? |
Дата | |
Msg-id | 7e0c3606-1513-1120-555a-6a14b615d939@4js.com обсуждение исходный текст |
Ответ на | libpq: How are result sets fetch behind the scene? (Sebastien FLAESCH <sf@4js.com>) |
Ответы |
Re: libpq: How are result sets fetched behind the scene?
Re: libpq: How are result sets fetched behind the scene? |
Список | pgsql-sql |
Sorry must read "fetched" in title. Similar question: When execution a SELECT (returning a large result set): Is the whole result set fetched to the client app, not matter what row number is provided to the first PQgetvalue() call(or similar API call on result set data or meta-data)? Seb On 8/29/19 6:32 PM, Sebastien FLAESCH wrote: > 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 по дате отправления: