1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
--TEST--
mysqli_get_client_stats() - PS
--EXTENSIONS--
mysqli
--SKIPIF--
<?PHP
require_once 'skipifconnectfailure.inc';
?>
--INI--
mysqlnd.collect_statistics=1
mysqlnd.collect_memory_statistics=1
--FILE--
<?php
require_once 'connect.inc';
require_once 'table.inc';
$stats = mysqli_get_client_stats();
printf("BEGINNING: rows_fetched_from_client_ps_unbuffered = %d\n", $stats['rows_fetched_from_client_ps_unbuffered']);
printf("BEGINNING: rows_fetched_from_client_ps_buffered = %d\n", $stats['rows_fetched_from_client_ps_buffered']);
printf("BEGINNING: rows_fetched_from_client_ps_cursor = %d\n", $stats['rows_fetched_from_client_ps_cursor']);
if (!$stmt = mysqli_stmt_init($link))
printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
$id = null;
if (!mysqli_stmt_prepare($stmt, 'SELECT id FROM test') ||
!mysqli_stmt_execute($stmt) ||
!mysqli_stmt_store_result($stmt) ||
!mysqli_stmt_bind_result($stmt, $id))
printf("[002] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
$num_rows = 0;
while (mysqli_stmt_fetch($stmt))
$num_rows++;
mysqli_stmt_free_result($stmt);
$after = mysqli_get_client_stats();
if ($after['rows_fetched_from_client_ps_unbuffered'] != $stats['rows_fetched_from_client_ps_unbuffered'])
printf("[003] Unbuffered rows got increased after buffered PS, expecting %d got %d.\n",
$stats['rows_fetched_from_client_ps_unbuffered'],
$after['rows_fetched_from_client_ps_unbuffered']);
$stats['rows_fetched_from_client_ps_buffered'] += $num_rows;
if ($after['rows_fetched_from_client_ps_buffered'] != $stats['rows_fetched_from_client_ps_buffered'] )
printf("[005] Buffered rows should be %d got %d.\n",
$stats['rows_fetched_from_client_ps_buffered'],
$after['rows_fetched_from_client_ps_buffered']);
$stats = $after;
printf("BUFFERED: rows_fetched_from_client_ps_unbuffered = %d\n", $stats['rows_fetched_from_client_ps_unbuffered']);
printf("BUFFERED: rows_fetched_from_client_ps_buffered = %d\n", $stats['rows_fetched_from_client_ps_buffered']);
printf("BUFFERED: rows_fetched_from_client_ps_cursor = %d\n", $stats['rows_fetched_from_client_ps_cursor']);
$id = null;
if (!mysqli_stmt_prepare($stmt, 'SELECT id FROM test') ||
!mysqli_stmt_execute($stmt) ||
!mysqli_stmt_bind_result($stmt, $id))
printf("[006] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
$num_rows = 0;
while (mysqli_stmt_fetch($stmt))
$num_rows++;
$after = mysqli_get_client_stats();
$stats['rows_fetched_from_client_ps_unbuffered'] += $num_rows;
if ($after['rows_fetched_from_client_ps_unbuffered'] != $stats['rows_fetched_from_client_ps_unbuffered'])
printf("[007] Unbuffered rows should be %d got %d.\n",
$stats['rows_fetched_from_client_ps_unbuffered'],
$after['rows_fetched_from_client_ps_unbuffered']);
if ($after['rows_fetched_from_client_ps_buffered'] != $stats['rows_fetched_from_client_ps_buffered'] )
printf("[005] Buffered rows should be unchanged, expecting %d got %d.\n",
$stats['rows_fetched_from_client_ps_buffered'],
$after['rows_fetched_from_client_ps_buffered']);
mysqli_stmt_free_result($stmt);
mysqli_stmt_close($stmt);
$stats = $after;
printf("UNBUFFERED: rows_fetched_from_client_ps_unbuffered = %d\n", $stats['rows_fetched_from_client_ps_unbuffered']);
printf("UNBUFFERED: rows_fetched_from_client_ps_buffered = %d\n", $stats['rows_fetched_from_client_ps_buffered']);
printf("UNBUFFERED: rows_fetched_from_client_ps_cursor = %d\n", $stats['rows_fetched_from_client_ps_cursor']);
mysqli_close($link);
print "done!";
?>
--CLEAN--
<?php
require_once 'clean_table.inc';
?>
--EXPECTF--
BEGINNING: rows_fetched_from_client_ps_unbuffered = %d
BEGINNING: rows_fetched_from_client_ps_buffered = %d
BEGINNING: rows_fetched_from_client_ps_cursor = 0
BUFFERED: rows_fetched_from_client_ps_unbuffered = %d
BUFFERED: rows_fetched_from_client_ps_buffered = %d
BUFFERED: rows_fetched_from_client_ps_cursor = 0
UNBUFFERED: rows_fetched_from_client_ps_unbuffered = %d
UNBUFFERED: rows_fetched_from_client_ps_buffered = %d
UNBUFFERED: rows_fetched_from_client_ps_cursor = 0
done!
|