I have table somewhat like this created by sqlite 2.8.14:

create table t1( created timestamp not null, n int not null, url text
not null, primary key(n) );

somehow i've ended up with a database where .dump t1 produces a bunch of

insert into t1 values(NULL,NULL,NULL);

a pragma integrity_check produces output like:

*** in database main ***
On page 578 cell 0: Key is out of order
On page 1204 cell 4: Key is out of order
On page 1161 cell 2: Key is out of order
On page 1210 cell 0: Key is out of order
On page 1210 cell 6: Key is out of order
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
rowid -500152523 missing from index (t1 autoindex 1)
wrong # of entries in index (t1 autoindex 1)

the number of missing rows == the number of  NULL rows from the dump.

how does one get into this state where the contraints are ignored? If
I were a guessing man, I'd say that space is being reserved and
zeroed, but data is never being flushed to disk. Additionally, it
seems that a journal file is either not being created, or is being
deleted before the database is opened again, so that data is never
recovered.

Has anyone seen anything like this and can suggest possible causes?

Thanks,
- michael

Reply via email to