1 Jan 2005 12:50
phase3/includes Block.php,1.22,1.23
Jens Frank <jeluf <at> users.sourceforge.net>
2005-01-01 11:50:24 GMT
2005-01-01 11:50:24 GMT
Update of /cvsroot/wikipedia/phase3/includes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17853/includes
Modified Files:
Block.php
Log Message:
BUG#1244 Use a UNION to improve index use.
Index: Block.php
===================================================================
RCS file: /cvsroot/wikipedia/phase3/includes/Block.php,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** Block.php 29 Nov 2004 18:25:04 -0000 1.22
--- Block.php 1 Jan 2005 11:50:19 -0000 1.23
***************
*** 77,81 ****
--- 77,88 ----
} elseif ($user=="") {
$sql = "SELECT * FROM $ipblocks WHERE ipb_address='" . $db->strencode( $address ) . "' $options";
+ } elseif ( $options=='' ) {
+ # If there are no optiones (e.g. FOR UPDATE), use a UNION
+ # so that the query can make efficient use of indices
+ $sql = "SELECT * FROM $ipblocks WHERE ipb_address='" . $db->strencode( $address ) .
+ "' UNION SELECT * FROM $ipblocks WHERE ipb_user={$user}";
} else {
+ # If there are options, a UNION can not be used, use one
+ # SELECT instead. Will do a full table scan.
$sql = "SELECT * FROM $ipblocks WHERE (ipb_address='" . $db->strencode( $address ) .
(Continue reading)
RSS Feed