cvs: pearweb /include pear-database-release.php
[email protected] ("Helgi ?ormar ?orbj?rnsson") Sun, 04 May 2008 00:06:31 -0000
| Newsgroups | php.pear.cvs,php.pear.core |
|---|---|
| Message-ID | <cvsdufuz1209859591@cvsserver> |
dufuz Sun May 4 00:06:31 2008 UTC
Modified files:
/pearweb/include pear-database-release.php
Log:
Rename promote_v2 to promote.
logDownload: update SQL, 30% efficiency gain at least over previous method
http://cvs.php.net/viewvc.cgi/pearweb/include/pear-database-release.php?r1=1.14&r2=1.15&diff_format=u
Index: pearweb/include/pear-database-release.php
diff -u pearweb/include/pear-database-release.php:1.14 pearweb/include/pear-database-release.php:1.15
--- pearweb/include/pear-database-release.php:1.14 Sat May 3 01:21:59 2008
+++ pearweb/include/pear-database-release.php Sun May 4 00:06:26 2008
@@ -17,7 +17,7 @@
| Tomas V.V. Cox <[email protected]> |
| Martin Jansen <[email protected]> |
+----------------------------------------------------------------------+
- $Id: pear-database-release.php,v 1.14 2008/05/03 01:21:59 dufuz Exp $
+ $Id: pear-database-release.php,v 1.15 2008/05/04 00:06:26 dufuz Exp $
*/
/**
@@ -433,7 +433,8 @@
}
include_once 'pear-database-package.php';
- if (!in_array(package::info($package, 'name'), array('pearweb', 'pearweb_phars'), true)) {
+ $n = package::info($package, 'name');
+ if (!in_array($n, array('pearweb', 'pearweb_phars'), true)) {
// Add release archive file to API documentation queue
$query = "INSERT INTO apidoc_queue (filename, queued) "
. "VALUES ('" . $file. "', NOW())";
@@ -621,80 +622,40 @@
{
global $dbh;
- $dbh->query('UPDATE aggregated_package_stats
- SET downloads = downloads + 1
- WHERE
- package_id = ? AND
- release_id = ? AND
- yearmonth = ?',
- array($package, $release_id, date('Y-m-01')));
- if ($dbh->affectedRows() == 0) {
- $dbh->query('INSERT INTO aggregated_package_stats
- (package_id, release_id, yearmonth, downloads)
- VALUES(?, ?, ?, 1)',
- array($package, $release_id, date('Y-m-01')));
+ $query = 'SELECT version, name, category FROM releases, packages'
+ . ' WHERE package = ? AND releases.id = ? AND packages.id = releases.package';
+ $pkginfo = $dbh->getAll($query, array($package, $release_id), DB_FETCHMODE_ASSOC);
+
+ if (PEAR::isError($pkginfo) || !$pkginfo) {
+ return PEAR::raiseError('release:: the package you requested'
+ . ' has no release by that number');
}
-// This method can be used when we have MySQL 4.1,
-// 30% efficiency gain at least over previous method
-// $dbh->query('INSERT INTO aggregated_package_stats
-// (package_id, release_id, yearmonth, downloads)
-// VALUES(?, ?, ?, 1)
-// ON DUPLICATE KEY UPDATE downloads = downloads + 1',
-// array($package, $release_id, date('Y-m-01')));
+ $sql = '
+ INSERT INTO aggregated_package_stats
+ (package_id, release_id, yearmonth, downloads)
+ VALUES(?, ?, ?, 1)
+ ON DUPLICATE KEY UPDATE downloads = downloads + 1';
+ $dbh->query($sql, array($package, $release_id, date('Y-m-01')));
// {{{ Update package_stats table
-// This method can be used when we have MySQL 4.1,
-// 30% efficiency gain at least over previous method
-// $query = 'INSERT INTO package_stats
-// (dl_number, package, release, pid, rid, cid, last_dl)
-// VALUES (1, ?, ?, ?, ?, ?, ?)
-// ON DUPLICATE KEY UPDATE
-// dl_number=dl_number+1,
-// last_dl = "' . date('Y-m-d H:i:s') . '"';
-//
-// $dbh->query($query, array($pkg_info['name'],
-// $version,
-// $package,
-// $release_id,
-// $pkg_info['categoryid'],
-// date('Y-m-d H:i:s')
-// )
-// );
-
- $query = 'UPDATE package_stats '
- . ' SET dl_number = dl_number + 1,'
- . " last_dl = '" . date('Y-m-d H:i:s') . "'"
- . ' WHERE pid = ? AND rid = ?';
- $dbh->query($query, array($package, $release_id));
-
- if ($dbh->affectedRows() == 0) {
- include_once 'pear-database-package.php';
-
- $query = 'SELECT version, name, category FROM releases, packages'
- . ' WHERE package = ? AND releases.id = ? AND packages.id=releases.package';
- $pkginfo = $dbh->getAll($query, array($package, $release_id), DB_FETCHMODE_ASSOC);
-
- if (PEAR::isError($pkginfo) || !$pkginfo) {
- return PEAR::raiseError('release:: the package you requested'
- . ' has no release by that number');
- }
-
- $query = 'INSERT INTO package_stats'
- . ' (dl_number, package, `release`, pid, rid, cid, last_dl)'
- . ' VALUES (1, ?, ?, ?, ?, ?, ?)';
-
- $dbh->query($query, array($pkginfo[0]['name'],
- $pkginfo[0]['version'],
- $package,
- $release_id,
- $pkginfo[0]['category'],
- date('Y-m-d H:i:s')
- )
- );
- }
-
+ $query = '
+ INSERT INTO package_stats
+ (dl_number, package, release, pid, rid, cid, last_dl)
+ VALUES (1, ?, ?, ?, ?, ?, ?)
+ ON DUPLICATE KEY UPDATE
+ dl_number = dl_number + 1,
+ last_dl = "' . date('Y-m-d H:i:s') . '"';
+
+ $dbh->query($query, array($pkginfo[0]['name'],
+ $pkginfo[0]['version'],
+ $package,
+ $release_id,
+ $pkginfo[0]['category'],
+ date('Y-m-d H:i:s')
+ )
+ );
// }}}
}
@@ -705,7 +666,7 @@
* @param string Filename of the new uploaded release
* @return void
*/
- static function promote_v2($pkginfo, $upload)
+ static function promote($pkginfo, $upload)
{
if ($_SERVER['SERVER_NAME'] != PEAR_CHANNELNAME) {
return;