Re: Implementing Frontend/Backend Protocol TCP/IP

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Implementing Frontend/Backend Protocol TCP/IP
Дата
Msg-id 20091027130008.GA4876@alvh.no-ip.org
обсуждение исходный текст
Ответ на Re: Implementing Frontend/Backend Protocol TCP/IP  (Raimon Fernandez <coder@montx.com>)
Ответы Re: Implementing Frontend/Backend Protocol TCP/IP
Список pgsql-general
Raimon Fernandez wrote:

> REALbasic has plugin for PostgreSQL, but they are synchronous  and
> freeze the GUI when interacting with PG. This is not a problem
> noramlly, as the SELECTS/UPDATES/... are fast enopugh, but sometimes
> we need to fetch 1000, 5000 or more rows and the application stops
> to respond, I can't have a progressbar because all is freeze, until
> all data has come from PG, so we need a better way.

If you need to fetch large numbers of rows, perhaps it would be better
to use a cursor and fetch a few at a time, moving the progress bar in
the pauses.  So instead of

SELECT * FROM sometab;

you would o
DECLARE foo CURSOR FOR SELECT * FROM sometab;

and then, repeatedly,
FETCH 50 FROM foo

Until there are no more rows.

This can still freeze your app in certain cases, but it will be probably
a lot better than what you currently have.  And it will be MUCH easier/
cheaper to do than working with the FE/BE protocol yourself.

--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

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

Предыдущее
От: ChenXun
Дата:
Сообщение: Re: Is there any ways to pass an array as parameter in libpq?
Следующее
От: John DeSoi
Дата:
Сообщение: Re: Implementing Frontend/Backend Protocol TCP/IP