Re: libpq compression

Поиск
Список
Период
Сортировка
Искать
От
Konstantin Knizhnik
Тема
Re: libpq compression
Дата
Msg-id
34328cc0-9669-f30d-50f6-46e9f3f21cde@postgrespro.ru
Ответ на
Re: libpq compression (Daniil Zakhlystov)
Список
Дерево обсуждения
libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Andres Freund <andres@anarazel.de>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Andreas Karlsson <andreas@proxel.se>
Re: libpq compression Alvaro Herrera <alvherre@2ndquadrant.com>
Re: libpq compression Andres Freund <andres@anarazel.de>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression "Hamlin, Garick L" <ghamlin@isc.upenn.edu>
Re: libpq compression Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: libpq compression Andreas Karlsson <andreas@proxel.se>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Re: libpq compression Craig Ringer <craig@2ndquadrant.com>
Re: libpq compression Euler Taveira <euler@timbira.com.br>
Re: libpq compression Grigory Smolkin <g.smolkin@postgrespro.ru>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Thomas Munro <thomas.munro@enterprisedb.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Thomas Munro <thomas.munro@enterprisedb.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: Re: libpq compression David Steele <david@pgmasters.net>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression David Steele <david@pgmasters.net>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Nico Williams <nico@cryptonector.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Nico Williams <nico@cryptonector.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Re: libpq compression Robert Haas <robertmhaas@gmail.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Michael Paquier <michael@paquier.xyz>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
RE: libpq compression "Iwata, Aya" <iwata.aya@jp.fujitsu.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
RE: libpq compression "Iwata, Aya" <iwata.aya@jp.fujitsu.com>
Re: libpq compression Andres Freund <andres@anarazel.de>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Andres Freund <andres@anarazel.de>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: libpq compression Andres Freund <andres@anarazel.de>
Re: libpq compression Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Daniel Gustafsson <daniel@yesql.se>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Robbie Harwood <rharwood@redhat.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Dmitry Dolgov <9erthalion6@gmail.com>
Re: libpq compression Thomas Munro <thomas.munro@enterprisedb.com>
Re: libpq compression Michael Paquier <michael@paquier.xyz>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Michael Paquier <michael@paquier.xyz>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Re: libpq compression "Joshua D. Drake" <jd@commandprompt.com>
Re: libpq compression Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
libpq compression "David G. Johnston" <david.g.johnston@gmail.com>
Re: libpq compression Craig Ringer <craig@2ndquadrant.com>
Re: libpq compression Dave Cramer <pg@fastcrypt.com>
Re: libpq compression Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Hi

On 01.11.2020 12:37, Daniil Zakhlystov wrote:
Hi,

I have a couple of comments regarding the last patch, mostly these are minor issues.

In src/backend/libpq/pqcomm.c, starting from the line 1114:

int
pq_getbyte_if_available(unsigned char *c)
{
int r;

Assert(PqCommReadingMsg);

if (PqRecvPointer < PqRecvLength || (0) > 0)   // not easy to understand optimization (maybe add a comment?)
{
*c = PqRecvBuffer[PqRecvPointer++];
return 1;
}
return r;             // returned value is not initialized
}

Sorry, I don't understand it.
This is the code of pq_getbyte_if_available:

int
pq_getbyte_if_available(unsigned char *c)
{
    int            r;

    Assert(PqCommReadingMsg);

    if (PqRecvPointer < PqRecvLength || (r = pq_recvbuf(true)) > 0)
    {
        *c = PqRecvBuffer[PqRecvPointer++];
        return 1;
    }
    return r;
}


So "return r" branch is executed when both conditions are false: (PqRecvPointer < PqRecvLength)
and ((r = pq_recvbuf(true)) > 0)
Last condition cause assignment of "r" variable.

I wonder how did you get this "returned value is not initialized" warning?
Is it produced by some static analyze tool or compiler?

In any case, I will initialize "r" variable to make compiler happy.


In src/interfaces/libpq/fe-connect.c, starting from the line 3255:

pqGetc(&algorithm, conn);
impl = zpq_get_algorithm_impl(algorithm);
{ // I believe that if (impl < 0) condition is missing here, otherwise there is always an error
   appendPQExpBuffer(&conn->errorMessage,
                 libpq_gettext(
                                                "server is not supported requested compression algorithm %c\n"), algorithm);
   goto error_return;
}


Sorry I have fixed this mistyping several days ago in GIT repository
 git@github.com:postgrespro/libpq_compression.git
but did;t attach new version of the patch because I plan to make more changes as a result of Andres review.



In configure, starting from the line 1587:

--without-zlib          do not use Zlib
--with-zstd             do not use zstd // is this correct?


Thank you for noting it: fixed.


В списке pgsql-hackers по дате отправления
От: Daniil Zakhlystov
Дата:
Сообщение: Re: libpq compression
От: Daniil Zakhlystov
Дата:
Сообщение: Re: libpq compression
FAQ