Re: BUG #1756: PQexec eats huge amounts of memory
| От | Tom Lane |
|---|---|
| Тема | Re: BUG #1756: PQexec eats huge amounts of memory |
| Дата | |
| Msg-id | 16737.1121718340@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | BUG #1756: PQexec eats huge amounts of memory ("Denis Vlasenko" <vda@ilport.com.ua>) |
| Список | pgsql-bugs |
"Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> Are you saying that if I execute a statement like:
> select * from "TableWithHundredsOfMillionsOfRows"
> that the entire table will be copied to a result set before returning
> the first row?
libpq does things that way, yes.
> Is this result set built in RAM on the server side?
No.
> I am interested primarily in the behavior under JDBC, although psql is
> also significant.
JDBC does things its own way; I believe it is possible to fetch a
resultset in a streaming fashion in JDBC, but you'd have to ask them.
The point of this discussion is simply that the current libpq API does
not permit streaming resultsets. This is not a limitation of the
server, nor of the protocol, nor even really of libpq itself if you
were willing to invent a suitable new set of API definitions for a
streaming-resultset interface. But we aren't going to change the
existing API to do streaming behind the client's back, because it won't
be transparent.
regards, tom lane
В списке pgsql-bugs по дате отправления: