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:
Int16
The number of parameter values that follow
David J.