Hello, We came across an issue last week with SQLite 3.5.9 on Windows. A program stopped working on Windows when we upgraded from SQLite 3.4.1 to SQLite 3.5.9. It turned out that the cause was that SQLite 3.5.9 (and perhaps SQLite 3.5.x in general) was not fully honoring the temp_store_directory pragma. That is, the pathname for the pager's statement journal (Pager::zStmtJrnl) is computed when the pager is opened but not necessarily recomputed when the temp_store_directory is changed, so the pager may try to use a different directory than intended. This was aggravated by some bug (apparently in MinGW) where GetTempPath() is only cycling through the TMP, TEMP, and USERPROFILE environment variables to find a viable temporary folder when running as Administrator (or perhaps a user in the Administrators group).
My fix was to compute Pager::zStmtJrnl in pagerStmtBegin(), right before opening the statement journal. It appears that some rearchitecture in SQLite 3.6.0 (http://www.sqlite.org/cvstrac/chngview?cn=5190) removes this bug, so I won't submit a patch, but I'll be happy to provide one should anyone request it. By the way, it seems a little bit questionable that sqlite3_temp_directory is a global, and hence the temp_store_directory pragma is also global, affecting all databases opened within the same process. cheers, Arun Bhalla _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users