Annotation of embedaddon/php/ext/mysqli/tests/mysqli_get_client_stats_ps.phpt, revision 1.1.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>