Liste des Groupes | Revenir à co vms |
On 6/24/2025 12:25 PM, Arne Vajhøj wrote:TDS packet length is negotiated but must be between 512 and 32,767 bytes:I don't like the #elif HAVE_VSNPRINTF code in tds_vasprintf.Even if va_copy was called and we ignore the option of
>
:-)
>
The algorithm is basically to try vsnprintf with buffers
increasing in size 512, 1024, 1536, ... until there is space.
>
That is very inefficient compared to just use the return value.
>
And since it does not use va_copy, then only the first call to
vsnprintf will work.
using vsnprintf return value, then +512 is not good
compared to *2. +512 with a 1 GB CLOB value would mean
2 million calls to vsnprintf.
(I have not checked if TDS actually allow that long
statements, but +512 is a problem)
Les messages affichés proviennent d'usenet.