Can you email me the database that does this? On 4/4/17, Ben Newberg <ben.newb...@gmail.com> wrote: > I've noticed with 3.18.0 that it's possible to make a database increase in > size after running pragma integrity_check (which returns "ok") and then > running vacuum. > > Alternatively, vacuuming without running pragma integrity_check first keeps > the database the same size as before. > > The page size on the database in question is 1024. The database starts with > no pages in the freelist. I can't reproduce this with 3.17.0. > > SQLite version 3.18.0 2017-03-28 18:48:43 > Enter ".help" for usage hints. > > --1) Before the vacuum. Database page count = 3077, and the freelist page > count is 0: > sqlite> .dbinfo > database page size: 1024 > write format: 1 > read format: 1 > reserved bytes: 0 > file change counter: 52 > database page count: 3077 > freelist page count: 0 > schema cookie: 19 > schema format: 4 > default cache size: 0 > autovacuum top root: 0 > incremental vacuum: 0 > text encoding: 1 (utf8) > user version: 0 > application id: 0 > software version: 3008010 > number of tables: 2 > number of indexes: 1 > number of triggers: 0 > number of views: 0 > schema size: 309 > > --2) Running a vacuum (without pragma integrity_check) results in the same > size of database: 3077 page count and 0 freelist page count: > sqlite> vacuum; > sqlite> .dbinfo > database page size: 1024 > write format: 1 > read format: 1 > reserved bytes: 0 > file change counter: 53 > database page count: 3077 > freelist page count: 0 > schema cookie: 20 > schema format: 4 > default cache size: 0 > autovacuum top root: 0 > incremental vacuum: 0 > text encoding: 1 (utf8) > user version: 0 > application id: 0 > software version: 3018000 > number of tables: 2 > number of indexes: 1 > number of triggers: 0 > number of views: 0 > schema size: 309 > > --3) Now running pragma integrity_check which returns "ok", and then > vacuuming. This increases the database page count to 3236: > sqlite> pragma integrity_check; > ok > sqlite> vacuum; > sqlite> .dbinfo > database page size: 1024 > write format: 1 > read format: 1 > reserved bytes: 0 > file change counter: 54 > database page count: 3236 > freelist page count: 0 > schema cookie: 21 > schema format: 4 > default cache size: 0 > autovacuum top root: 0 > incremental vacuum: 0 > text encoding: 1 (utf8) > user version: 0 > application id: 0 > software version: 3018000 > number of tables: 2 > number of indexes: 1 > number of triggers: 0 > number of views: 0 > schema size: 309 > sqlite> > > Here is the full schema: > CREATE TABLE bids_list (report_id INTEGER, price_id INTEGER, premium_id > INTEGER, period_inactive INTEGER DEFAULT (0) CHECK (period_inactive IN (0, > 1))); > CREATE TABLE bids_dates (report_id integer primary key, date text, current > integer check (current in (0, 1))); > CREATE INDEX idx_price_id ON bids_list (price_id); > /* No STAT tables available */ > > Is the pragma fixing something in the index perhaps? > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >
-- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users