Hi,

I would like to file a bug report:

Using "PRAGMA temp_store_directory = 'directory-name';" with paths which 
contain non-ASCII characters doesn't work because SQLite reports the 
directory as not writable (SQLite.Net.SQLiteException: "not a writable 
directory").

We are setting the temp_store_directory to Windows' temp path which is 
by default the "C:\Users\(Username)\AppData\Temp" folder. So if the user 
name of the logged-in user contains UTF-8 characters (e.g. "S?mez") 
executing the command "PRAGMA temp_store_directory = 
'C:\Users\S?mez\AppData\Temp'; fails.


When we took a look at the SQLite source code, this is where we suspect 
the issue:
* pragma.c: case PragTyp_TEMP_STORE_DIRECTORY: / call to sqlite3OsAccess()
* sqlite3OsAccess() calls xAccess()
* xAccess() (used in rc = pVfs->xAccess(pVfs, zName, flags, &ret);) maps 
to winAccess on Windows which checks the file attributes for the 
readonly flag.
* winAccess() calls winConvertFromUtf8Filename(), which seems to have an 
issue with UTF-8 characters in paths.

Used SQLite version: sqlite-winrt81-3081002.vsix
Applies to both WinRT (Windows 8.1 App) and .NET 4.5

Thanks,
Michael Geier
Graz, Austria

Reply via email to