PostgreSQLで一度に扱うパラメータ数の上限は65535まで
Bulk insertで巨大なリクエストを実行していると、以下のようなエラーが返ってくることがあった。
got 71526 parameters but PostgreSQL only supports 65535 parameters
インターネットを見ていると、次のようなエラーもあるらしい。
extended protocol limited to 65535 parameters
この制限は、PostgreSQLのwire protocolでバインドするパラメータのサイズが16bitとして定義されていることに由来する。
この数は行数ではなくパラメータ数なので、次のようなクエリの場合パラメータ数は6としてカウントされる。
INSERT INTO metrics VALUES ($1, $2, $3),($4, $5, $6);