The overhead is tiny, but even so, we do not want to burden the billions of SQLite applications that do not need 8 3 filename support.
If the SQLITE_ENABLE_8_3_NAMES=1 option is used, then SQLite is capable of using 8 3 filenames but that capabilities is disabled and must be enabled separately for each database connection by using using URI filenames when opening or ATTACH-ing the database files and include the "Make sure that database filenames follow the 8 3 filename format and that they do not have an empty name or extension. Note that it is very important that the database filename have some kind of extension.
It will not find them, since they were saved using 8 3 names by the application that crashed, and hence the database will not be properly recovered and will likely go corrupt.
Using a database file with 8 3 filenames in some cases while in other cases using long filenames is equivalent to deleting a hot journal.
But on systems that impose 8 3 filename constraints, the auxiliary files do not fit the 8 3 format even though the original database file does.
The recommended fix for this problem is to select a different filesystem.
It is robust, easy to install, easy to use, and works well with a variety of SSH clients, including Bitvise SSH Client, Open SSH, and Pu TTY. We develop our SSH Server for Windows, which is compatible with Pu TTY. From time to time, they need to find the Pu TTY download link. We purchased it from a previous owner who used it in ways unrelated to software.
The SSH Server is developed and supported professionally by Bitvise. We also provide an SSH Client for Windows which is not a version of Pu TTY, but is free and dedicatedly maintained. We thought it useful to repurpose it the way you see.
When auxiliary files are needed for a rollback journal or a write-ahead log or for one of the other kinds of temporary disk files, then the name for the auxiliary file is normally constructed by appending a suffix onto the end of the database file name. This approach to auxiliary file naming works great on systems that support long filenames.
This will avoid compatibility issues and the danger of database corruption caused by inconsistent use of 8 3 filenames.
Some devices are compelled to use an older filesystem with 8 3 filename restrictions for backwards compatibility, or due to other non-technical factors.
The auxiliary rollback journal and write-ahead log files are essential to SQLite for being about to recover from a crash.
If an application is using 8 3 names and crashes, then the information needed to safely recover from the crash is stored in files with the "" URI parameter, then SQLite will use the long filenames to try to locate the rollback journal or write-ahead log files.
In such situations, SQLite can be coerced into using auxiliary files that fit the 8 3 pattern as follows: Compile the SQLite library with the either the compile-time options SQLITE_ENABLE_8_3_NAMES=1 or SQLITE_ENABLE_8_3_NAMES=2.