From: Eric Wong <e@yhbt.net> To: meta@public-inbox.org Subject: [PATCH 3/8] overidx: inline create_ghost sub Date: Thu, 27 Aug 2020 12:17:01 +0000 [thread overview] Message-ID: <20200827121706.4545-4-e@yhbt.net> (raw) In-Reply-To: <20200827121706.4545-1-e@yhbt.net> There's no need for this to be a separate sub since there's only a single caller. This saves a few kilobytes at least in short-lived processes. --- lib/PublicInbox/OverIdx.pm | 23 ++++++++++------------- t/over.t | 4 ++-- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/OverIdx.pm b/lib/PublicInbox/OverIdx.pm index 67f8cf65..6f0477f0 100644 --- a/lib/PublicInbox/OverIdx.pm +++ b/lib/PublicInbox/OverIdx.pm @@ -184,23 +184,20 @@ sub resolve_mid_to_tid { if (my $del = delete $self->{-ghosts_to_delete}) { delete_by_num($self, $_) for @$del; } - $tid // create_ghost($self, $mid); -} - -sub create_ghost { - my ($self, $mid) = @_; - my $id = mid2id($self, $mid); - my $num = next_ghost_num($self); - $num < 0 or die "ghost num is non-negative: $num\n"; - my $tid = next_tid($self); - my $dbh = $self->{dbh}; - $dbh->prepare_cached(<<'')->execute($num, $tid); + $tid // do { # create a new ghost + my $id = mid2id($self, $mid); + my $num = next_ghost_num($self); + $num < 0 or die "ghost num is non-negative: $num\n"; + $tid = next_tid($self); + my $dbh = $self->{dbh}; + $dbh->prepare_cached(<<'')->execute($num, $tid); INSERT INTO over (num, tid) VALUES (?,?) - $dbh->prepare_cached(<<'')->execute($id, $num); + $dbh->prepare_cached(<<'')->execute($id, $num); INSERT INTO id2num (id, num) VALUES (?,?) - $tid; + $tid; + }; } sub merge_threads { diff --git a/t/over.t b/t/over.t index 41c13872..4c8f8098 100644 --- a/t/over.t +++ b/t/over.t @@ -33,9 +33,9 @@ $over->dbh; is($over->sid('hello-world'), $x, 'idempotent across reopen'); $over->each_by_mid('never', sub { fail('should not be called') }); -$x = $over->create_ghost('never'); +$x = $over->resolve_mid_to_tid('never'); is(int($x), $x, 'integer tid for ghost'); -$y = $over->create_ghost('NEVAR'); +$y = $over->resolve_mid_to_tid('NEVAR'); is($y, $x + 1, 'integer tid for ghost increases'); my $ddd = compress('');
next prev parent reply other threads:[~2020-08-27 12:17 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-27 12:16 [PATCH 0/8] mostly watch-related odds and ends Eric Wong 2020-08-27 12:16 ` [PATCH 1/8] watchmaildir: ensure I:/W:/E: prefixes in warnings Eric Wong 2020-08-27 12:17 ` [PATCH 2/8] imaptracker: preserve WAL journal_mode if set by user Eric Wong 2020-08-27 12:17 ` Eric Wong [this message] 2020-08-27 12:17 ` [PATCH 4/8] doc: document graceful shutdown signals Eric Wong 2020-08-27 12:17 ` [PATCH 5/8] doc: speling fickses Eric Wong 2020-08-27 12:17 ` [PATCH 6/8] watch: imap: only remove \Seen spam Eric Wong 2020-08-27 12:17 ` [PATCH 7/8] doc: move watch config docs to -watch manpage Eric Wong 2020-08-27 12:17 ` [PATCH 8/8] doc: watch: expand on NNTP and IMAP-specific knobs Eric Wong 2020-08-28 4:22 ` Eric Wong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://public-inbox.org/README * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200827121706.4545-4-e@yhbt.net \ --to=e@yhbt.net \ --cc=meta@public-inbox.org \ --subject='Re: [PATCH 3/8] overidx: inline create_ghost sub' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/public-inbox.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).