On Sun, Jun 26, 2011 at 15:20, Daniel Shahaf <d...@daniel.shahaf.name> wrote: > Greg Stein wrote on Sun, Jun 26, 2011 at 15:11:43 -0400: >> On Jun 26, 2011 9:45 AM, "Daniel Shahaf" <d...@daniel.shahaf.name> wrote: >> > >> > Daniel Shahaf wrote on Sun, Jun 26, 2011 at 16:21:00 +0300: >> > > Running it: >> > > [[[ >> > > % for i in foo-*; do echo ./$i; ./$i; done >> > > ./foo-3.7.6.3 >> > > ./foo-3.7.7 >> > > Error 17: database schema has changed >> > > % >> > > ]]] >> > > >> > >> > Correction: >> > >> > [[[ >> > % for i in foo-*; do rm foo.db && echo $i && ./$i; done >> > foo-3.7.6.3 >> > foo-3.7.7 >> > Error 17: database schema has changed >> > ]]] >> >> Wait a second. You rm the database? > > Yes, so that both foo-3.7.6.3 and foo-3.7.7 start with "foo.db" > non-existing. Comparing a run of foo-3.7.6.3 with "foo.db" not > preexisting to a run of foo-3.7.7 with "foo.db" yes preexisting > would be bogus. > >> I thought this was a bug with carrying >> databases over to the new release? >> > > The reproductions so far are about creating databases, not about > upgrading them. > > It seems that sqlite-3.7.7 requires a "PRAGMA case_sensitive_like=1;" to > be in the same transaction as a "PRAGMA user_version = user_version+1;". > Since svn_sqlite__open() doesn't change USER_VERSION, it fails to create > the database.
Gotcha. I've replicated/confirmed the problem locally (on Mac OS X). Thanks for the short reproduction script! I'm going to take this to sqlite.org now. <insert rant about their mailing lists/> Cheers, -g