Re: Flushing large data immediately in pqcomm
От | Ranier Vilela |
---|---|
Тема | Re: Flushing large data immediately in pqcomm |
Дата | |
Msg-id | CAEudQApM9udvpVZbe6L51dx62j4dD77Vs3tDhjaaH-9UppZ=SA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Flushing large data immediately in pqcomm (Andres Freund <andres@anarazel.de>) |
Список | pgsql-hackers |
Em sáb., 6 de abr. de 2024 às 22:39, Andres Freund <andres@anarazel.de> escreveu:
Hi,
On 2024-04-07 00:45:31 +0200, Jelte Fennema-Nio wrote:
> On Sat, 6 Apr 2024 at 22:21, Andres Freund <andres@anarazel.de> wrote:
> > The small regression for small results is still kinda visible, I haven't yet
> > tested the patch downthread.
>
> Thanks a lot for the faster test script, I'm also impatient. I still
> saw the small regression with David his patch. Here's a v6 where I
> think it is now gone. I added inline to internal_put_bytes too. I
> think that helped especially because for two calls to
> internal_put_bytes len is a constant (1 and 4) that is smaller than
> PqSendBufferSize. So for those calls the compiler can now statically
> eliminate the new codepath because "len >= PqSendBufferSize" is known
> to be false at compile time.
Nice.
> Also I incorporated all of Ranier his comments.
Changing the global vars to size_t seems mildly bogus to me. All it's
achieving is to use slightly more memory. It also just seems unrelated to the
change.
I don't agree with this thought.
Actually size_t uses 4 bytes of memory than int, right.
But mixing up int and size_t is a sure way to write non-portable code.
And the compilers will start showing messages such as " signed/unsigned mismatch".
The global vars PqSendPointer and PqSendStart were changed in the v5 patch,
so for the sake of style and consistency, I understand that it is better not to mix the types.
And finally the correct type to deal with char * variables is size_t.
Best regards,
Ranier Vilela
Greetings,
Andres Freund
В списке pgsql-hackers по дате отправления: