we don't need rep in the revlog

This commit is contained in:
Damien Elmes 2011-04-21 11:55:35 +09:00
parent cc0df00fe5
commit 8a9174fd4d
3 changed files with 14 additions and 17 deletions

View file

@ -369,8 +369,8 @@ limit %d""" % (self._groupLimit(), self.reportLimit), lim=self.dayCutoff)
ivl = card.ivl if leaving else -(self._delayForGrade(conf, card.grade)) ivl = card.ivl if leaving else -(self._delayForGrade(conf, card.grade))
def log(): def log():
self.deck.db.execute( self.deck.db.execute(
"insert into revlog values (?,?,?,?,?,?,?,?,?)", "insert into revlog values (?,?,?,?,?,?,?,?)",
int(time.time()*1000), card.id, ease, card.cycles, int(time.time()*1000), card.id, ease,
ivl, lastIvl, ivl, lastIvl,
card.factor, taken, type) card.factor, taken, type)
try: try:
@ -469,8 +469,8 @@ queue = 2 %s and due <= :lim order by %s limit %d""" % (
taken = min(card.timeTaken(), self._cardConf(card)['maxTaken']*1000) taken = min(card.timeTaken(), self._cardConf(card)['maxTaken']*1000)
def log(): def log():
self.deck.db.execute( self.deck.db.execute(
"insert into revlog values (?,?,?,?,?,?,?,?,?)", "insert into revlog values (?,?,?,?,?,?,?,?)",
int(time.time()*1000), card.id, ease, card.reps, int(time.time()*1000), card.id, ease,
card.ivl, card.lastIvl, card.factor, taken, card.ivl, card.lastIvl, card.factor, taken,
1) 1)
try: try:

View file

@ -138,7 +138,6 @@ create table if not exists revlog (
time integer primary key, time integer primary key,
cid integer not null, cid integer not null,
ease integer not null, ease integer not null,
rep integer not null,
ivl integer not null, ivl integer not null,
lastIvl integer not null, lastIvl integer not null,
factor integer not null, factor integer not null,
@ -326,7 +325,7 @@ name, "{}", "{}", ?, "" from models2""", simplejson.dumps(
r = [] r = []
for row in db.execute(""" for row in db.execute("""
select select
cast(time*1000 as int), cardId, ease, reps, cast(time*1000 as int), cardId, ease,
cast(nextInterval as int), cast(lastInterval as int), cast(nextInterval as int), cast(lastInterval as int),
cast(nextFactor*1000 as int), cast(min(thinkingTime, 60)*1000 as int), cast(nextFactor*1000 as int), cast(min(thinkingTime, 60)*1000 as int),
yesCount from reviewHistory"""): yesCount from reviewHistory"""):
@ -340,10 +339,9 @@ yesCount from reviewHistory"""):
# no ease 0 anymore # no ease 0 anymore
row[2] = row[2] or 1 row[2] = row[2] or 1
# determine type, overwriting yesCount # determine type, overwriting yesCount
reps = row[3] newInt = row[3]
newInt = row[4] oldInt = row[4]
oldInt = row[5] yesCnt = row[7]
yesCnt = row[8]
# yesCnt included the current answer # yesCnt included the current answer
if row[2] > 1: if row[2] > 1:
yesCnt -= 1 yesCnt -= 1
@ -351,16 +349,16 @@ yesCount from reviewHistory"""):
# new or failed # new or failed
if yesCnt: if yesCnt:
# type=relrn # type=relrn
row[8] = 2 row[7] = 2
else: else:
# type=lrn # type=lrn
row[8] = 0 row[7] = 0
else: else:
# type=rev # type=rev
row[8] = 1 row[7] = 1
r.append(row) r.append(row)
db.executemany( db.executemany(
"insert or ignore into revlog values (?,?,?,?,?,?,?,?,?)", r) "insert or ignore into revlog values (?,?,?,?,?,?,?,?)", r)
db.execute("drop table reviewHistory") db.execute("drop table reviewHistory")
# longer migrations # longer migrations

View file

@ -103,9 +103,8 @@ def test_learn():
# check log is accurate # check log is accurate
log = d.db.first("select * from revlog order by time desc") log = d.db.first("select * from revlog order by time desc")
assert log[2] == 2 assert log[2] == 2
assert log[3] == 2 assert log[3] == -180
assert log[4] == -180 assert log[4] == -30
assert log[5] == -30
# pass again # pass again
d.sched.answerCard(c, 2) d.sched.answerCard(c, 2)
# it should by due in 10 minutes # it should by due in 10 minutes