From patchwork Mon Jan 21 20:58:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Fleischer X-Patchwork-Id: 973 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 57908ABFC1BF for ; Mon, 21 Jan 2019 20:59:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on apollo X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00=-1, DKIMWL_WL_HIGH=-1.085,DKIM_SIGNED=0.1,DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_LOW=-0.7, T_DMARC_POLICY_NONE=0.01 autolearn=ham autolearn_force=no version=3.4.2 X-Spam-BL-Results: [127.0.9.1] Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by apollo.archlinux.org (Postfix) with ESMTPS for ; Mon, 21 Jan 2019 20:59:03 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id 9488110281D680; Mon, 21 Jan 2019 20:59:01 +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; Mon, 21 Jan 2019 20:59:01 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 562412BE6D; Mon, 21 Jan 2019 20:59:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=luna2; t=1548104341; bh=mmggBCpveySD9V+SGW9so2oDrtX5QnvsQA+04uikX1E=; h=From:To:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe; b=cGc2b5nLaioI9EqaH3GErq4AU6zLHUK9lhnCVcnnETPaaDYY6zMWVbS26qtRMp7hP 0pMpnLEo7peO/aU4MCG/VVE/cdDYVVqtfIiY3AwZ3QsAoIksiVLHGOgXSu+TQ18MWL rOZfig2GqcJQnmKPowjREtmtYSP/7kEaxNtkBTQZZHN1N+f/jZNlG8uV8nTMPq2rEs CqNFT5S870/jpp90rmr6ms3S6Gy/QYPWVqib8kzSDGIVT8A/8OM1ENNXJqlDYanNrL qCiJAMZCP4qH6rboTav5zQZEeuED1Po2oLM94E0DqhNztrArMIzgC6bkrP7DVlbsMx jMZ/pjIgGvMk2WFnM+LNCNOAJVPt3s74A8UNmHc88g/MEjJ1Gr3atosKBrw+pl7npL szIMbnIwaxBs3McsaKD8CP1c4NZI4wos6Lq6Ktx9XDD/gkctmlL7XcFl7YAYPKvapK f+X4Waq3cu45zpLJMKZi7z/QZgot/4/2vQkZNGLpNDsZQnUUaw4v40meiMCAxhiFEA tTPFRbHxSjalbEXRBmNs0jDhwJ82ls858DnoiDS82OmcVh5Xn7n7CrdtQPcdPKP18/ wxHPG8iUDHolkjdRdiITv4Ce/WV9dhnWa8NNHuzQZnKuYNZMQoOHpCtS73/UNAgqT2 cJyysGWPj+Ti82e6kzdQgOwY= Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 733652BE6C for ; Mon, 21 Jan 2019 20:58:58 +0000 (UTC) Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by luna.archlinux.org (Postfix) with ESMTPS for ; Mon, 21 Jan 2019 20:58:58 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id AC27210281D679; Mon, 21 Jan 2019 20:58:51 +0000 (UTC) Received: from localhost (HSI-KBW-091-089-090-134.hsi2.kabelbw.de [91.89.90.134]) (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) (Authenticated sender: lfleischer) by orion.archlinux.org (Postfix) with ESMTPSA id 7C66C10281D678; Mon, 21 Jan 2019 20:58:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=orion; t=1548104331; bh=mmggBCpveySD9V+SGW9so2oDrtX5QnvsQA+04uikX1E=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=o6b7dCYnEH7+PyeICqIdJT9zmiKq6dKMsRG3Zglh28F118hT3HBI0n7h1nmLvhlDL rW+KoCZMAJ3NQnqNEY4g8h/H028Nr7pQJtQJopqbsNyMvW87RTzweBcoOw74L1Ma49 LmMmG6Hng3FPyRma9UzEXug1heHkzIuHmB9ci7puaiV0n4uRgWVKXjfNXfGgw28v43 HQIZo8aJHD2SeUzdA0J96gDB2cmkxoVtJ31U6SXQqvnD3SyPGFM7gtP66553U02Zu4 aIRSARarWbXWx/5+qo43sOokxiUQ3QzXtZO1xDz1tHBHRAtNuUuuNBsDGPuw+2Yj3L 58Eidvve+7ps4/Lbsp67n7pvTzIPaJf0Mq5LW7D/lj7EZinQ+NAuo3CblMvOjPyqWk Q9Gk1U0EIMPWvu10HQLLZoKyErC8kManXkGotHid7Fe5KGUPMWyDr8YlFWBfdK0g4A oRkH0cu71HPpsicnwGsN2J6+87j1p7HSp/eY/saAsQ2wwuKf4URKMr5U0q8phyu9np Epb//C/XJTQj5KXobwBq79rXs/SLWZIVh2d1Er+1GNzPAVkF7N3FlfjdEq7FzAhraB +Z01ICLQ2Wy/Mlbv640bLjtS5hosG0GUp6/z69QNqLmh4y/PPWJZaavYqKXmyi69DI YfmK8xqIGguyZVQkI0NWuUdE= From: Lukas Fleischer To: aur-dev@archlinux.org Subject: [PATCH v2] aurblup: make provider updates more robust Date: Mon, 21 Jan 2019 21:58:50 +0100 Message-Id: <20190121205850.17828-1-lfleischer@archlinux.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: References: 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" Reverse the order of deletion and addition so that deletion comes first. This prevents corner cases such as failing unique key constraints when a provided package changes from lower case to upper case and the old name is not yet gone. Helped-by: Eli Schwartz Signed-off-by: Lukas Fleischer --- aurweb/scripts/aurblup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aurweb/scripts/aurblup.py b/aurweb/scripts/aurblup.py index 1433173..a7d43f1 100755 --- a/aurweb/scripts/aurblup.py +++ b/aurweb/scripts/aurblup.py @@ -39,13 +39,13 @@ def main(): cur = conn.execute("SELECT Name, Provides FROM OfficialProviders") oldproviders = set(cur.fetchall()) + for pkg, provides in oldproviders.difference(providers): + conn.execute("DELETE FROM OfficialProviders " + "WHERE Name = ? AND Provides = ?", [pkg, provides]) for pkg, provides in providers.difference(oldproviders): repo = repomap[(pkg, provides)] conn.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) " "VALUES (?, ?, ?)", [pkg, repo, provides]) - for pkg, provides in oldproviders.difference(providers): - conn.execute("DELETE FROM OfficialProviders " - "WHERE Name = ? AND Provides = ?", [pkg, provides]) conn.commit() conn.close()