From 5de6bb57ed3ef7a9b737b18da9109bd15efc2fc3 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 13 Dec 2010 00:26:34 +0900 Subject: [PATCH] auto-analyze when we've updated a dynamic index --- anki/deck.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/anki/deck.py b/anki/deck.py index 1980fe312..672dbc50f 100644 --- a/anki/deck.py +++ b/anki/deck.py @@ -3562,15 +3562,22 @@ seq > :s and seq <= :e order by seq desc""", s=start, e=end) if (self.newCardOrder == NEW_CARDS_NEW_FIRST): required.append("dueDesc") # add/delete + analyze = False for (k, v) in indices.items(): + n = "ix_cards_%s2" % k if k in required: - self.s.statement( - "create index if not exists ix_cards_%s2 on cards %s" % - (k, v)) + if not self.s.scalar( + "select 1 from sqlite_master where name = :n", n=n): + self.s.statement( + "create index %s on cards %s" % + (n, v)) + analyze = True else: # leave old indices for older clients #self.s.statement("drop index if exists ix_cards_%s" % k) - self.s.statement("drop index if exists ix_cards_%s2" % k) + self.s.statement("drop index if exists %s" % n) + if analyze: + self.s.statement("analyze") # Shared decks ##########################################################################