uw Fri Jul 3 12:13:57 2009 UTC
Added files:
/php-src/ext/mysqli/tests mysqli_query_local_infile_large.phpt
Log:
... 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