pg_set_chunked_rows_size

チャンクモードで取得するクエリ結果の行数を設定する

説明

bool pg_set_chunked_rows_size(PgSql\Connection $connection, int $size)

チャンクモードで取得するクエリ結果を設定します。 後に返されるクエリ結果は、最大size 行が含まれる複数のチャンクに分割されます。 この関数は、pg_get_result を使って結果を取得する前にコールしなければいけません。 この関数は、libpq のバージョンが 17 以降の場合に利用可能です。

パラメータ

connection

PgSql\Connection クラスのインスタンス。

size
チャンクごとに取得する行数

戻り値

成功した場合に true を、失敗した場合に false を返します。

エラー / 例外

size1 より小さい場合、 ValueError がスローされます。

例1 pg_result_memory_size の例

<?php

$conn = pg_connect($conn_str);

for ($i = 0; $i < 10; $i ++) {
  pg_query($conn, "INSERT INTO users DEFAULT VALUES");
}

pg_send_query($conn, "SELECT * FROM users");
pg_set_chunked_rows_size($conn, 1);

$result = pg_get_result($conn);
var_dump(pg_num_rows($result));

// 結果を取得した以降に呼び出しても無意味
var_dump(pg_set_chunked_rows_size($conn, 10));

上の例の出力は以下となります。

int(1)
bool(false)

参考

  • pg_get_result
  • pg_result_status