From: Reini U. <ru...@us...> - 2004-09-06 08:28:10
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13150 Modified Files: WikiDB.php upgrade.php Log Message: rename genericQuery to genericSqlQuery Index: WikiDB.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiDB.php,v retrieving revision 1.80 retrieving revision 1.81 diff -u -2 -b -p -d -r1.80 -r1.81 --- WikiDB.php 9 Jul 2004 13:05:34 -0000 1.80 +++ WikiDB.php 6 Sep 2004 08:28:00 -0000 1.81 @@ -509,6 +509,7 @@ class WikiDB { } - // simple select or create/update queries - function genericQuery($sql) { + // SQL result: for simple select or create/update queries + // returns the database specific resource type + function genericSqlQuery($sql) { global $DBParams; if ($DBParams['dbtype'] == 'SQL') { @@ -532,4 +533,15 @@ class WikiDB { } + // SQL iter: for simple select or create/update queries + // returns the generic iterator object (count,next) + function genericSqlIter($sql) { + $result = $this->genericSqlQuery($sql); + if ($this->getParam('dbtype') == 'ADODB') { + return new WikiDB_backend_ADODB_generic_iter($this->_backend, $result); + } else { + return new WikiDB_backend_PearDB_generic_iter($this->_backend, $result); + } + } + function getParam($param) { global $DBParams; @@ -1713,4 +1725,36 @@ class WikiDB_Array_PageIterator } +/* +class WikiDB_Array_generic_iter +{ + function WikiDB_Array_generic_iter($result) { + // $result may be either an array or a query result + if (is_array($result)) { + $this->_array = $result; + } elseif (is_object($result)) { + $this->_array = $result->asArray(); + } else { + $this->_array = array(); + } + if (!empty($this->_array)) + reset($this->_array); + } + function next() { + $c =& current($this->_array); + next($this->_array); + return $c !== false ? $c : false; + } + function count() { + return count($this->_array); + } + function free() {} + function asArray() { + if (!empty($this->_array)) + reset($this->_array); + return $this->_array; + } +} +*/ + /** * Data cache used by WikiDB. @@ -1866,4 +1910,7 @@ class WikiDB_cache // $Log$ +// Revision 1.81 2004/09/06 08:28:00 rurban +// rename genericQuery to genericSqlQuery +// // Revision 1.80 2004/07/09 13:05:34 rurban // just aesthetics Index: upgrade.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/upgrade.php,v retrieving revision 1.24 retrieving revision 1.25 diff -u -2 -b -p -d -r1.24 -r1.25 --- upgrade.php 5 Jul 2004 13:56:22 -0000 1.24 +++ upgrade.php 6 Sep 2004 08:28:00 -0000 1.25 @@ -188,5 +188,5 @@ function installTable(&$dbh, $table, $ba assert($session_tbl); if ($backend_type == 'mysql') { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $session_tbl ( sess_id CHAR(32) NOT NULL DEFAULT '', @@ -198,5 +198,5 @@ CREATE TABLE $session_tbl ( )"); } else { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $session_tbl ( sess_id CHAR(32) NOT NULL DEFAULT '', @@ -205,12 +205,12 @@ CREATE TABLE $session_tbl ( sess_ip CHAR(15) NOT NULL )"); - $dbh->genericQuery("CREATE UNIQUE INDEX sess_id ON $session_tbl (sess_id)"); + $dbh->genericSqlQuery("CREATE UNIQUE INDEX sess_id ON $session_tbl (sess_id)"); } - $dbh->genericQuery("CREATE INDEX sess_date on session (sess_date)"); + $dbh->genericSqlQuery("CREATE INDEX sess_date on session (sess_date)"); break; case 'user': $user_tbl = $prefix.'user'; if ($backend_type == 'mysql') { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $user_tbl ( userid CHAR(48) BINARY NOT NULL UNIQUE, @@ -219,10 +219,10 @@ CREATE TABLE $user_tbl ( )"); } else { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $user_tbl ( userid CHAR(48) NOT NULL, passwd CHAR(48) DEFAULT '' )"); - $dbh->genericQuery("CREATE UNIQUE INDEX userid ON $user_tbl (userid)"); + $dbh->genericSqlQuery("CREATE UNIQUE INDEX userid ON $user_tbl (userid)"); } break; @@ -230,5 +230,5 @@ CREATE TABLE $user_tbl ( $pref_tbl = $prefix.'pref'; if ($backend_type == 'mysql') { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $pref_tbl ( userid CHAR(48) BINARY NOT NULL UNIQUE, @@ -237,10 +237,10 @@ CREATE TABLE $pref_tbl ( )"); } else { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $pref_tbl ( userid CHAR(48) NOT NULL, prefs TEXT NULL DEFAULT '', )"); - $dbh->genericQuery("CREATE UNIQUE INDEX userid ON $pref_tbl (userid)"); + $dbh->genericSqlQuery("CREATE UNIQUE INDEX userid ON $pref_tbl (userid)"); } break; @@ -248,5 +248,5 @@ CREATE TABLE $pref_tbl ( $member_tbl = $prefix.'member'; if ($backend_type == 'mysql') { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $member_tbl ( userid CHAR(48) BINARY NOT NULL, @@ -256,11 +256,11 @@ CREATE TABLE $member_tbl ( )"); } else { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $member_tbl ( userid CHAR(48) NOT NULL, groupname CHAR(48) NOT NULL DEFAULT 'users', )"); - $dbh->genericQuery("CREATE INDEX userid ON $member_tbl (userid)"); - $dbh->genericQuery("CREATE INDEX groupname ON $member_tbl (groupname)"); + $dbh->genericSqlQuery("CREATE INDEX userid ON $member_tbl (userid)"); + $dbh->genericSqlQuery("CREATE INDEX groupname ON $member_tbl (groupname)"); } break; @@ -268,5 +268,5 @@ CREATE TABLE $member_tbl ( $rating_tbl = $prefix.'rating'; if ($backend_type == 'mysql') { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $rating_tbl ( dimension INT(4) NOT NULL, @@ -279,5 +279,5 @@ CREATE TABLE $rating_tbl ( )"); } else { - $dbh->genericQuery(" + $dbh->genericSqlQuery(" CREATE TABLE $rating_tbl ( dimension INT(4) NOT NULL, @@ -288,5 +288,5 @@ CREATE TABLE $rating_tbl ( tstamp TIMESTAMP(14) NOT NULL, )"); - $dbh->genericQuery("CREATE UNIQUE INDEX rating ON $rating_tbl (dimension, raterpage, rateepage)"); + $dbh->genericSqlQuery("CREATE UNIQUE INDEX rating ON $rating_tbl (dimension, raterpage, rateepage)"); } break; @@ -342,6 +342,8 @@ function CheckDatabaseUpdate(&$request) $sess_fields = $dbh->_backend->listOfFields($database, $session_tbl); if (!strstr(strtolower(join(':', $sess_fields)),"sess_ip")) { + // TODO: postgres test (should be able to add columns at the end, but not in between) echo "<b>",_("ADDING"),"</b>"," ... "; - $dbh->genericQuery("ALTER TABLE $session_tbl ADD sess_ip CHAR(15) NOT NULL"); + $dbh->genericSqlQuery("ALTER TABLE $session_tbl ADD sess_ip CHAR(15) NOT NULL"); + $dbh->genericSqlQuery("CREATE INDEX sess_date ON $session_tbl (sess_date)"); } else { echo _("OK"); @@ -360,17 +362,17 @@ function CheckDatabaseUpdate(&$request) if (mysql_field_name($fields, $i) == 'id') { $flags = mysql_field_flags($fields, $i); - //FIXME: something wrong with ADODB here! - if (!strstr(strtolower($flags),"auto_increment")) { + //DONE: something was wrong with ADODB here. + if (!strstr(strtolower($flags), "auto_increment")) { echo "<b>",_("ADDING"),"</b>"," ... "; // MODIFY col_def valid since mysql 3.22.16, // older mysql's need CHANGE old_col col_def - $dbh->genericQuery("ALTER TABLE $page_tbl CHANGE id id INT NOT NULL AUTO_INCREMENT"); + $dbh->genericSqlQuery("ALTER TABLE $page_tbl CHANGE id id INT NOT NULL AUTO_INCREMENT"); $fields = mysql_list_fields($database, $page_tbl); - if (!strstr(strtolower(mysql_field_flags($fields, $i)),"auto_increment")) - echo " <b><font color=\"red\">",_("FAILED"),"</font></b><br />\n"; + if (!strstr(strtolower(mysql_field_flags($fields, $i)), "auto_increment")) + echo " <b><font color=\"red\">", _("FAILED"), "</font></b><br />\n"; else - echo _("OK"),"<br />\n"; + echo _("OK"), "<br />\n"; } else { - echo _("OK"),"<br />\n"; + echo _("OK"), "<br />\n"; } break; @@ -379,8 +381,9 @@ function CheckDatabaseUpdate(&$request) mysql_free_result($fields); } - // check for mysql 4.1.x/5.0.0a binary search bug. + // check for mysql 4.1.x/5.0.0a binary search problem. // http://bugs.mysql.com/bug.php?id=4398 // "select * from page where LOWER(pagename) like '%search%'" does not apply LOWER! // confirmed for 4.1.0alpha,4.1.3-beta,5.0.0a; not yet tested for 4.1.2alpha, + // TODO: there's a known workaround, not yet applied. on windows only. if (substr($backend_type,0,5) == 'mysql') { echo _("check for mysql 4.1.x/5.0.0 binary search problem")," ..."; @@ -391,5 +394,5 @@ function CheckDatabaseUpdate(&$request) $version = (string)(($arr[0] * 100) + $arr[1]) . "." . (integer)$arr[2]; if ($version >= 401.0) { - $dbh->genericQuery("ALTER TABLE $page_tbl CHANGE pagename pagename VARCHAR(100) NOT NULL;"); + $dbh->genericSqlQuery("ALTER TABLE $page_tbl CHANGE pagename pagename VARCHAR(100) NOT NULL;"); echo sprintf(_("version <em>%s</em> <b>FIXED</b>"), $mysql_version),"<br />\n"; } else { @@ -494,4 +497,7 @@ function DoUpgrade($request) { /** $Log$ + Revision 1.25 2004/09/06 08:28:00 rurban + rename genericQuery to genericSqlQuery + Revision 1.24 2004/07/05 13:56:22 rurban sqlite autoincrement fix @@ -544,5 +550,5 @@ function DoUpgrade($request) { Revision 1.12 2004/05/18 13:59:15 rurban - rename simpleQuery to genericQuery + rename simpleQuery to genericSqlQuery Revision 1.11 2004/05/15 13:06:17 rurban |