Passing NULL to xOpen()'s zName parameter opens a temp file.

-scott


On Thu, Jul 30, 2015 at 4:29 PM, Howard Kapustein <
Howard.Kapustein at microsoft.com> wrote:

> >There cannot be a fully portable way, because path specifications are not
> portable
> Which begs the question, why isn't there an xGetTempFilename VFS function
> in sqlite3_vfs?
>
> Wouldn't the simplify things? Have the VFS handle it apropos, with the
> default VFS' in SQLite (or an older VFS lacking it) use the current hunt
> sequences for compat
>
>         - Howard
>
> This email may contain confidential and privileged information.  Any
> unauthorized use is prohibited.  If you are not the intended recipient,
> please contact the  sender by reply email and destroy all copies of the
> original message.
>
> -----Original Message-----
> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:
> sqlite-users-bounces at mailinglists.sqlite.org] On Behalf Of Simon Slavin
> Sent: Tuesday, July 28, 2015 4:31 AM
> To: General Discussion of SQLite Database <
> sqlite-users at mailinglists.sqlite.org>
> Subject: Re: [sqlite] pragma temp_store_directory is deprecated, what is
> the alternative?
>
>
> On 28 Jul 2015, at 9:55am, Paolo Bolzoni <paolo.bolzoni.brown at gmail.com>
> wrote:
>
> > From the C interface, the way to decide the directory is setting the
> > value of sqlite3_temp_directory char pointer. As explained here:
> > https://www.sqlite.org/c3ref/temp_directory.html
> > This is also the first place sqlite3 checks.
>
> The documentation is clear:
>
> "Applications are strongly discouraged from using this global variable. It
> is required to set a temporary folder on Windows Runtime (WinRT). But for
> all other platforms, it is highly recommended that applications neither
> read nor write this variable. This global variable is a relic that exists
> for backwards compatibility of legacy applications and should be avoided in
> new projects."
>
> Also, sqlite3_temp_directory is accessed by the VFS level, by choice of
> the VFS.  You might someday switch to another VFS which ignores it.
>
> > From anywhere else sqlite3 checks the value of those env variables:
> > SQLITE_TMPDIR, TMPDIR, TMP, TEMP, USERPROFILE.
>
> All uses of SQLite are 'the C interface'.  That's all SQLite is: C code.
> The C code checks the above places, depending on which VFS you're using,
> which usually comes down to which OS you're using.
>
> The C code checks whatever environment variable the OS expects a user to
> use to set a default location for their temporary files.  (It also checks a
> lot of other places, but it will definitely check whatever the
> documentation for the OS says is the correct environment variable.)
> Generally speaking you should let the computer's user or administrator set
> this variable, since they know which drives they have attached to the
> computer, and which one they want temporary files on. You're just a
> programmer of one application, running on a computer you've never seen.
>
> The exceptions are for embedded controllers, where the programmer is the
> administrator, and that on all platforms SQLite can create huge temporary
> files and some systems don't have that much space available for temporary
> files.
>
> Simon.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>

Reply via email to