Re: libpq compression

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: libpq compression
Дата
Msg-id 20201028195810.GA6732@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: libpq compression  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
Ответы Re: libpq compression  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
Список pgsql-hackers
On 2020-Oct-26, Konstantin Knizhnik wrote:

> +    while (bufptr < bufend || zpq_buffered(PqStream) != 0) /* has more data to flush or unsent data in internal
compressionbuffer */
 
>      {
> -        int            r;
> -
> -        r = secure_write(MyProcPort, bufptr, bufend - bufptr);
> -
> -        if (r <= 0)
> +        int        r;
> +        size_t  processed = 0;
> +        size_t  available = bufend - bufptr;
> +        r = PqStream
> +            ? zpq_write(PqStream, bufptr, available, &processed)
> +            : secure_write(MyProcPort, bufptr, available);
> +        bufptr += processed;
> +        PqSendStart += processed;

This bit is surprising to me.  I thought the whole zpq_write() thing
should be hidden inside secure_write, so internal_flush would continue
to call just secure_write; and it is that routine's responsibility to
call zpq_write or be_tls_write or secure_raw_write etc according to
compile-time options and socket state.



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

Предыдущее
От: Alexander Kukushkin
Дата:
Сообщение: pg_prewarm bgworker could break fast shutdown
Следующее
От: John Naylor
Дата:
Сообщение: Re: duplicate function oid symbols