On Thursday, April 23, 2020, Adrian Klaver <[email protected]>
wrote:
> On 4/23/20 7:33 AM, Scott Ribe wrote:
>
>> In libpq, PQexecParams has nParams as type int. So on any reasonable
>> platform, that's at least 4 bytes. My question then is: when I see
>> documented limits of 65535 params in various drivers and libraries, that is
>> NOT a restriction of libpq nor of the protocol, but rather an arbitrary
>> limit of the driver/library, correct?
>>
>
> No.
>
> From:
>
> src/interfaces/libpq/fe-exec.c
>
> if (nParams < 0 || nParams > 65535)
> {
> printfPQExpBuffer(&conn->errorMessage,
> libpq_gettext("number of
> parameters must be between 0 and 65535\n"));
> return 0;
> }
>
Or, from the specification for the Bind Message in the documentation:
https://www.postgresql.org/docs/12/protocol-message-formats.html
Int16
The number of parameter values that follow
David J.