From patchwork Sun Oct 6 17:51:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Fleischer X-Patchwork-Id: 1253 Return-Path: Delivered-To: patchwork@archlinux.org Received: from apollo.archlinux.org (localhost [127.0.0.1]) by apollo.archlinux.org (Postfix) with ESMTP id F1C3B1441DA71 for ; Sun, 6 Oct 2019 17:51:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on apollo X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1, MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_MED=-2.3,SPF_HELO_NONE=0.001, T_DMARC_POLICY_NONE=0.01 autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-BL-Results: [127.0.9.2] Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by apollo.archlinux.org (Postfix) with ESMTPS for ; Sun, 6 Oct 2019 17:51:25 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id D49EC15AB89A52; Sun, 6 Oct 2019 17:51:23 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [IPv6:2a01:4f8:160:3033::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits)) (No client certificate requested) by orion.archlinux.org (Postfix) with ESMTPS; Sun, 6 Oct 2019 17:51:23 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id C04DB2CAE6; Sun, 6 Oct 2019 17:51:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=luna2; t=1570384283; bh=sTiDcmLHAAC8eye6Nagidpkj8uR13FiJuCqp77amrjo=; h=From:To:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe; b=OzjVdH1BUCTFPKp8t60pc/KdlyZthCcu3yth63cFX58VyTQc4u6jOMQVzPuJAN/lz LMVm0Vb4e7g922wv2XGN87WbiY9LKdlQpmNxV3dOV3m2yBvC7CuXBdmPPt8MiTKntb pJntFBiRvPCsdVyXaFBvMHDw27G8luXwnc0VtGvEqqTHGzHzot0P5o8d4OdBjmMdJx +2aD6px2x8M4lEL6RwZyGWFN6VJO2/2iYTJxN0dSIZu3wkx78PypEtT5KrThi6CWe4 yRuJsa6nOMGwX3WqH8JerqhPF+Ihcl6fLAY7mDI2FX9DA4EZPP4hWGiQDTsc/8nIjQ 23EnvlNLbFdKreRY8oWcz6bHIkQIQwgyjXkoVGJ9zO0nYXLKYm/xT5rKrLrX4uCbnK I9AMVerzgzTJmSjdgg4EPsHdZ/BLL0C+gYAIz67NngriVfcg6c9LE+PDwBjU0oS0mc T3+oBL/MokVoJq5GCVMch+/IBlaDOOkHO8mB3vyBjmIeeJuwVS7KrC1Tzi09btMIAn Htj5FREoEhmhg9QL+monqfm409l5GWolBXjg9Q8tlAX2XNL3KzMZ5l8FtlokyEK/EN irQxskc9LuCb5VjFOYoZwYWgo1hcLAIJVsfHlXC8U8/buaDpzuL7X8REMUZL8AYrqb jJo2525oKD1iSUnSHrH3nn80= Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 660A92CAE5 for ; Sun, 6 Oct 2019 17:51:21 +0000 (UTC) Received: from orion.archlinux.org (orion.archlinux.org [IPv6:2a01:4f8:160:6087::1]) by luna.archlinux.org (Postfix) with ESMTPS for ; Sun, 6 Oct 2019 17:51:21 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id 6797615AB89A4E for ; Sun, 6 Oct 2019 17:51:20 +0000 (UTC) Received: from localhost (unknown [72.138.14.22]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: lfleischer) by orion.archlinux.org (Postfix) with ESMTPSA id EBCE115AB89A4D for ; Sun, 6 Oct 2019 17:51:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=orion; t=1570384280; bh=sTiDcmLHAAC8eye6Nagidpkj8uR13FiJuCqp77amrjo=; h=From:To:Subject:Date; b=BjdRHriwZPXhCL6754so8+cflMfyhOcz4jQ4IQZDloS6WldhqcWwbQNLkZ9xl2Kej OVkaNcwIHI4f4QzArZ2PLb/wHXw71n2rWMiSiO/EhDpgyU+6BAYXy5Jj4QZkqb7s2o iXtfp++OHbbDfGQ7dUNiCwYvNHmffZwCsM6PKqInXTN8HcGlquBY9ftJB5yzhtYiUE 8wPW3vYXsgbz4KZwznnUbznM5OW3hfglnKBlKJh8LJgrl+49ux5gN9yoLrfuTf2tzc afCk2TMm8L9oNJ6vSJ6/AKTrteUsrB+b3AKFfmPND3+bRjs7mSQLZKlo9BOtgvO7dC lMhuWEzczn+Pcb15sgSflJjg/eQzkwLTahvL0nW/K8nBPg22N90+SZaroqQMVyG6ea iGQap65tRzVB6DnF50O4LVRtwxHunn9IFCwHIJpGoVoL/1H9G4sFyBYQIO5Vi8Nz4B aImkmsmfnO4/QwdUSy+0EjIg8mWdUheF7k3R8CfUIzeUq/ZKLHPQSK47DKNq9CUQA4 K5jpwggKzVco4Q+hzFKNU8QCKW46DfPaURkU2a/GiXQLJq/vk5LlEKjK4Xsp6FTU+e 8bA985alACQq4whlgMGNM62dfOp5wrRifII2/fAbdx6q6Jy0N1w9vJ6siU0I8qXsTr TEvDGUxj2jZcm05bL+ga0RmY= From: Lukas Fleischer To: aur-dev@archlinux.org Subject: [PATCH] aurjson: cache extended fields Date: Sun, 6 Oct 2019 13:51:42 -0400 Message-Id: <20191006175142.9921-1-lfleischer@archlinux.org> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-BeenThere: aur-dev@archlinux.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Arch User Repository \(AUR\) Development" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: aur-dev-bounces@archlinux.org Sender: "aur-dev" Cache the results of the extended fields computation if the global caching mechanism is enabled. Signed-off-by: Lukas Fleischer --- web/lib/aurjson.class.php | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php index c275d21..bfb8cd1 100644 --- a/web/lib/aurjson.class.php +++ b/web/lib/aurjson.class.php @@ -292,11 +292,7 @@ class AurJSON { "FROM Licenses INNER JOIN PackageLicenses " . "ON PackageLicenses.PackageID = " . $pkgid . " " . "AND PackageLicenses.LicenseID = Licenses.ID"; - $result = $this->dbh->query($query); - - if (!$result) { - return null; - } + $rows = db_cache_result($query, 'extended-fields:' . $pkgid, PDO::FETCH_ASSOC); $type_map = array( 'depends' => 'Depends', @@ -310,7 +306,7 @@ class AurJSON { 'license' => 'License', ); $data = array(); - while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + foreach ($rows as $row) { $type = $type_map[$row['Type']]; $data[$type][] = $row['Name'] . $row['Cond']; } @@ -319,13 +315,8 @@ class AurJSON { $query = "SELECT Keyword FROM PackageKeywords " . "WHERE PackageBaseID = " . intval($base_id) . " " . "ORDER BY Keyword ASC"; - $result = $this->dbh->query($query); - - if (!$result) { - return null; - } - - $data['Keywords'] = $result->fetchAll(PDO::FETCH_COLUMN, 0); + $rows = db_cache_result($query, 'keywords:' . intval($base_id)); + $data['Keywords'] = array_map(function ($x) { return $x[0]; }, $rows); } return $data;