uw Fri Jul 3 12:14:40 2009 UTC Added files: (Branch: PHP_5_3) /php-src/ext/mysqli/tests mysqli_query_local_infile_large.phpt Log: MFH. ... to play with large data sets. Currently its only 10MB in size to keep the test runtime short. However, its easy to increase, if you want to test large data sets
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_query_local_infile_large.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_query_local_infile_large.phpt +++ php-src/ext/mysqli/tests/mysqli_query_local_infile_large.phpt --TEST-- mysql_query(LOAD DATA LOCAL INFILE) with large data set (10MB) --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifconnectfailure.inc'); ?> --FILE-- <?php // Create a large CVS file $file = tempnam(sys_get_temp_dir(), 'mysqli_test.cvs'); if (!$fp = fopen($file, 'w')) printf("[001] Cannot create CVS file '%s'\n", $file); $data = str_repeat("a", 127) . ";" . str_repeat("b", 127) . "\n"; $runtime = 5; $max_bytes = 1024 * 1024 * 10; $start = microtime(true); $bytes = 0; $rowno = 0; while (($bytes < $max_bytes) && ((microtime(true) - $start) < $runtime)) { if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1)) $bytes += fwrite($fp, (binary)(++$rowno . ";" . $data)); else $bytes += fwrite($fp, ++$rowno . ";" . $data); } fclose($fp); printf("Filesize in bytes: %d\nRows: %d\n", $bytes, $rowno); include "connect.inc"; if (!($link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))) printf("[002] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); if (!mysqli_query($link, "DROP TABLE IF EXISTS test") || !mysqli_query($link, "CREATE TABLE test(id INT, col1 VARCHAR(255), col2 VARCHAR(255)) ENGINE = " . $engine)) printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!mysqli_query($link, sprintf("LOAD DATA LOCAL INFILE '%s' INTO TABLE test FIELDS TERMINATED BY ';'", mysqli_real_escape_string($link, $file)))) printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!($res = mysqli_query($link, "SELECT COUNT(*) AS _num FROM test"))) printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $row = mysqli_fetch_assoc($res); if (($row["_num"] != $rowno)) printf("[006] Expecting %d rows, found %d\n", $rowno, $row["_num"]); mysqli_free_result($res); $random = mt_rand(1, $rowno); if (!$res = mysqli_query($link, "SELECT id, col1, col2 FROM test WHERE id = " . $random)) printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $row = mysqli_fetch_assoc($res); var_dump($row); mysqli_free_result($res); mysqli_close($link); print "done!"; ?> --CLEAN-- <?php $file = tempnam(sys_get_temp_dir(), 'mysqli_test.cvs'); if (file_exists($file)) unlink($file); include "connect.inc"; if (!($link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))) printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); ?> --EXPECTF-- Filesize in bytes: %d Rows: %d array(3) { [%u|b%"id"]=> %unicode|string%(%d) "%d" [%u|b%"col1"]=> %unicode|string%(127) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" [%u|b%"col2"]=> %unicode|string%(127) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" } done! -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php