cvs: php-src(PHP_5_3) /ext/mysqli/tests mysqli_query_local_infile_large.phpt
| From: | Ulf Wendel | Date: | Fri, 03 Jul 2009 12:14:40 +0000 |
| Subject: | cvs: php-src(PHP_5_3) /ext/mysqli/tests mysqli_query_local_infile_large.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-59202@lists.php.net to get a copy of this message | ||
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!