1 |
<?php
|
2 |
|
3 |
function getmicrotime()
|
4 |
{
|
5 |
$t = microtime();
|
6 |
$t = explode(' ',$t);
|
7 |
return (float)$t[1]+ (float)$t[0];
|
8 |
}
|
9 |
|
10 |
function doloop()
|
11 |
{
|
12 |
global $db,$MAX;
|
13 |
|
14 |
$sql = "select id,firstname,lastname from adoxyz where
|
15 |
firstname not like ? and lastname not like ? and id=?";
|
16 |
$offset = 0;
|
17 |
/*$sql = "select * from juris9.employee join juris9.emp_perf_plan on epp_empkey = emp_id
|
18 |
where emp_name not like ? and emp_name not like ? and emp_id=28000+?";
|
19 |
$offset = 28000;*/
|
20 |
for ($i=1; $i <= $MAX; $i++) {
|
21 |
$db->Param(false);
|
22 |
$x = (rand() % 10) + 1;
|
23 |
$db->debug= ($i==1);
|
24 |
$id = $db->GetOne($sql,
|
25 |
array('Z%','Z%',$x));
|
26 |
if($id != $offset+$x) {
|
27 |
print "<p>Error at $x";
|
28 |
break;
|
29 |
}
|
30 |
}
|
31 |
}
|
32 |
|
33 |
include_once('../adodb.inc.php');
|
34 |
$db = NewADOConnection('postgres7');
|
35 |
$db->PConnect('localhost','tester','test','test') || die("failed connection");
|
36 |
|
37 |
$enc = "GIF89a%01%00%01%00%80%FF%00%C0%C0%C0%00%00%00%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%01%012%00%3Bt_clear.gif%0D";
|
38 |
$val = rawurldecode($enc);
|
39 |
|
40 |
$MAX = 1000;
|
41 |
|
42 |
adodb_pr($db->ServerInfo());
|
43 |
|
44 |
echo "<h4>Testing PREPARE/EXECUTE PLAN</h4>";
|
45 |
|
46 |
|
47 |
$db->_bindInputArray = true; // requires postgresql 7.3+ and ability to modify database
|
48 |
$t = getmicrotime();
|
49 |
doloop();
|
50 |
echo '<p>',$MAX,' times, with plan=',getmicrotime() - $t,'</p>';
|
51 |
|
52 |
|
53 |
$db->_bindInputArray = false;
|
54 |
$t = getmicrotime();
|
55 |
doloop();
|
56 |
echo '<p>',$MAX,' times, no plan=',getmicrotime() - $t,'</p>';
|
57 |
|
58 |
|
59 |
|
60 |
echo "<h4>Testing UPDATEBLOB</h4>";
|
61 |
$db->debug=1;
|
62 |
|
63 |
### TEST BEGINS
|
64 |
|
65 |
$db->Execute("insert into photos (id,name) values(9999,'dot.gif')");
|
66 |
$db->UpdateBlob('photos','photo',$val,'id=9999');
|
67 |
$v = $db->GetOne('select photo from photos where id=9999');
|
68 |
|
69 |
|
70 |
### CLEANUP
|
71 |
|
72 |
$db->Execute("delete from photos where id=9999");
|
73 |
|
74 |
### VALIDATION
|
75 |
|
76 |
if ($v !== $val) echo "<b>*** ERROR: Inserted value does not match downloaded val<b>";
|
77 |
else echo "<b>*** OK: Passed</b>";
|
78 |
|
79 |
echo "<pre>";
|
80 |
echo "INSERTED: ", $enc;
|
81 |
echo "<hr />";
|
82 |
echo"RETURNED: ", rawurlencode($v);
|
83 |
echo "<hr /><p>";
|
84 |
echo "INSERTED: ", $val;
|
85 |
echo "<hr />";
|
86 |
echo "RETURNED: ", $v;
|
87 |
|
88 |
?> |