[aur-dev] [PATCH 1/2] Optimize database request in the add_package_comment function

canyonknight at gmail.com canyonknight at gmail.com
Fri Jul 27 19:11:12 EDT 2012


On Fri, Jul 27, 2012 at 6:02 PM, Nicolas Cornu <nicolac76 at yahoo.fr> wrote:
> ---
>  web/lib/pkgfuncs.inc.php | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
> index 0610617..969da11 100644
> --- a/web/lib/pkgfuncs.inc.php
> +++ b/web/lib/pkgfuncs.inc.php
> @@ -215,11 +215,10 @@ function add_package_comment($pkgid, $uid, $comment, $dbh=NULL) {
>         db_query($q, $dbh);
>
>         # Send email notifications
> -       $q = 'SELECT CommentNotify.*, Users.Email ';
> -       $q.= 'FROM CommentNotify, Users ';
> -       $q.= 'WHERE Users.ID = CommentNotify.UserID ';
> -       $q.= 'AND CommentNotify.UserID != ' . $uid . ' ';
> -       $q.= 'AND CommentNotify.PkgID = ' . intval($pkgid);
> +       $q = 'SELECT u.Email FROM Users u ';

Is there any reason for this to shorten Users to u? Personally I find
it easier to parse something like 'SELECT Users.Email FROM Users'
compared to yours. This also isn't really done anywhere else in the
codebase.

> +       $q.= 'INNER JOIN CommentNotify cn ON u.ID=cn.UserID';
> +       $q.= 'AND cn.UserID != ' . $uid . ' ';
> +       $q.= 'AND cn.PkgID = ' . intval($pkgid);
>         $result = db_query($q, $dbh);
>         $bcc = array();
>
> @@ -228,7 +227,7 @@ function add_package_comment($pkgid, $uid, $comment, $dbh=NULL) {
>                         array_push($bcc, $row['Email']);
>                 }
>
> -               $q = 'SELECT Packages.* ';
> +               $q = 'SELECT Packages.Name ';
>                 $q.= 'FROM Packages ';
>                 $q.= 'WHERE Packages.ID = ' . intval($pkgid);
>                 $result = db_query($q, $dbh);
> --
> 1.7.11.3
>

I do like you replacing SELECT * with what specific columns are being
selected. I also like the explicit join syntax.


More information about the aur-dev mailing list