From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 727BA1F670 for ; Tue, 25 Aug 2020 03:02:47 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/3] msgmap: use "CREATE TABLE IF NOT EXISTS" Date: Tue, 25 Aug 2020 03:02:46 +0000 Message-Id: <20200825030247.12307-3-e@yhbt.net> In-Reply-To: <20200825030247.12307-1-e@yhbt.net> References: <20200825030247.12307-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: It's fewer queries and matches what we do in OverIdx. --- lib/PublicInbox/Msgmap.pm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm index 7290959d..5b4cebc1 100644 --- a/lib/PublicInbox/Msgmap.pm +++ b/lib/PublicInbox/Msgmap.pm @@ -175,18 +175,20 @@ sub num_delete { sub create_tables { my ($dbh) = @_; - my $e; - - $e = eval { $dbh->selectrow_array('EXPLAIN SELECT * FROM msgmap;') }; - defined $e or $dbh->do('CREATE TABLE msgmap (' . - 'num INTEGER PRIMARY KEY AUTOINCREMENT, '. - 'mid VARCHAR(1000) NOT NULL, ' . - 'UNIQUE (mid) )'); - - $e = eval { $dbh->selectrow_array('EXPLAIN SELECT * FROM meta') }; - defined $e or $dbh->do('CREATE TABLE meta (' . - 'key VARCHAR(32) PRIMARY KEY, '. - 'val VARCHAR(255) NOT NULL)'); + + $dbh->do(<<''); +CREATE TABLE IF NOT EXISTS msgmap ( + num INTEGER PRIMARY KEY AUTOINCREMENT, + mid VARCHAR(1000) NOT NULL, + UNIQUE (mid) +) + + $dbh->do(<<''); +CREATE TABLE IF NOT EXISTS meta ( + key VARCHAR(32) PRIMARY KEY, + val VARCHAR(255) NOT NULL +) + } # used by NNTP.pm