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