History of src/os.h

Since the return value of sqlite3OsClose() is always ignored, we might as
well make it "void" instead of "int", and thereby save 50 bytes in the
compiled binary.
file: [8e976e59]
check-in: [7ee570e7]
user: drh
branch: trunk,
size: 9004

Add compile-time define to indicate if the VFS supports the concept of a current directory (as WinCE and WinRT do not). Avoid using the GetTempPath and GetFullPathName APIs on WinRT. Some tests still need adjustments.
file: [38aabd5e]
check-in: [86c049a1]
user: mistachkin
branch: winrt,
size: 11628

Add function sqlite3OsFileControlNoFail(), which is the same as sqlite3OsFileControl() except that it does not simulate OOM errors. This saves adding calls to the BenignMalloc() functions around each of the invocations of sqliteOsFileControl() that ignore the return code.
file: [7a24446b]
check-in: [af59b182]
user: dan
branch: trunk,
size: 11098

Remove the code that attempts to find the sector size from the OS and
hardcode the xSectorSize methods of the unix and windows VFSes to return
SQLITE_DEFAULT_SECTOR_SIZE, which is now set to 4096 unless overridden.
file: [c7d88883]
check-in: [03d8362c]
user: drh
branch: trunk,
size: 10937

Changes so that the xShmOpen VFS method is no longer required. Its job can be done by the first call to xShmMap. Rename xShmClose to xShmUnmap.
file: [93cb145b]
check-in: [f4780bde]
user: dan
branch: experimental,
size: 10789

Remove xShmGet/Size/Release from the sqlite3_vfs structure. Change the name of xShmPage to xShmMap. Remove some code that is now unused from os_unix.c and some of the test VFS implementations.
file: [d7775504]
check-in: [fc0cabc1]
user: dan
branch: experimental,
size: 10829

Initial code for incremental checkpoint in WAL mode. This check-in compiles
on unix and runs as long as you do not engage WAL mode. WAL mode crashes and
burns. Consider this check-in a baseline implementation for getting the new
capability up and running.
file: [6f604986]
check-in: [ef3ba7a1]
user: drh
branch: wal-incr-ckpt,
size: 10848

Add a new xShmBarrier method to the VFS - a shared-memory fence operation.
Implement the same in both unix and win32. Use it to make the WAL subsystem
more robust.
file: [efcc7f00]
check-in: [1bd011c9]
user: drh
branch: trunk,
size: 10844

Moved check and define for OS_WINCE from os_win.c to os.h (with the other OS_* defines). This allows OS_WINCE to be available for mutex_w32.c which is included earlier than os_win.c in the almagamation. (CVS 5176)
file: [6e7e5d4e]
check-in: [ad6a782e]
user: shane
branch: trunk,
size: 10933

Add a parameter to specify the size of the output buffer passed to xGetTempname() and xFullPathname(). This, and the previous commit, are changes to the public vfs API introduced in 3.5.0. (CVS 4433)
file: [4c880cf6]
check-in: [8b29f5fb]
user: danielk1977
branch: trunk,
size: 10926

Fix the amalgamation so that it works with -DSQLITE_ENABLE_REDEF_IO. Change
tclsqlite.c so that it can be appended to the amalgamation. Create a new
amalgamation of header files for use by projects that want to redefine their
own I/O interface using -DSQLITE_ENABLE_REDEF_IO. (CVS 3817)
file: [9240adf0]
check-in: [f2caff87]
user: drh
branch: trunk,
size: 20312

Change the default prefix for temporary files so that it no longer
contains the text "sqlite". In this way, perhaps we will not get so
many false bug reports such as ticket #2049, #1989, and #1841. (CVS 3498)
file: [b33ce697]
check-in: [7ce48000]
user: drh
branch: trunk,
size: 18152

Modify the sqlite3OsInMutex os-layer interface to take a single parameter
to distinguish between mutexes held by the current thread and mutexes held
by any thread. Part of the fix for ticket #1630. (CVS 2973)
file: [e4637ead]
check-in: [e1ad9df1]
user: drh
branch: trunk,
size: 16539

Automatically deallocate thread-specific data when it is no longer
being used. Ticket #1601. Also implemented the suggestion of
ticket #1603. Memory management is now off by default at compile-time.
The sqlite3_enable_memory_management() API has been removed. (CVS 2919)
file: [9debc3d3]
check-in: [5d9c6aa9]
user: drh
branch: trunk,
size: 16540

Make the OsFile structure opaque with its internal structure known only to
the appropriate os_*.c implementation. Omit the os_unix.h and os_win.h
include files. The crash tests are broken by this patch. (CVS 2791)
file: [a429c353]
check-in: [058f3175]
user: drh
branch: trunk,
size: 7959

Modify the OS layer so that I/O routines are called through a virtual function
table. The os_test.c module has been replaced by test6.c. The crash tests
are busted now and need to be fixed. (CVS 2785)
file: [64564ddc]
check-in: [1f69aec2]
user: drh
branch: trunk,
size: 8042

Drop support for MAC OS9. SQLite 3 has never worked for that OS because
the developers do not have access to a machine running it and nobody from
the community has stepped forward to provide a port. By moving the
os_mac.c file into the attic, we make the lack of support official. (CVS 2220)
file: [ae44064d]
check-in: [de9ad673]
user: drh
branch: trunk,
size: 7410

More work on windows locking. Fix some problems with unix locking. There
is still an assertion failure on windows locking in attach2.test. (CVS 1539)
file: [a3a9c2df]
check-in: [0c2d169c]
user: drh
branch: trunk,
size: 5999

When creating a new journal file, open a (read-only) file descriptor on the
directory containing the journal and sync that directory once to make sure
that the journal filename entry gets into the directory. Ticket #410. (CVS 1066)
file: [8aed1c92]
check-in: [09c10fe3]
user: drh
branch: trunk,
size: 5698

Save the full pathname of the database file so that journalling still works
even if the user changes working directories after opening the databae.
Ticket #200. (CVS 798)
file: [09fd96b4]
check-in: [1c58b4fc]
user: drh
branch: trunk,
size: 3683

Try to better detect when the library is compiled for large file support (LFS)
but the support is not available in the host OS kernel. (CVS 782)
file: [1caaea97]
check-in: [a29d60ec]
user: drh
branch: trunk,
size: 3611

Add large file support to Windows. Change large file support for Unix so
that it compiles automatically - without requiring special options on the
compiler command line. (CVS 781)
file: [deac8efe]
check-in: [2008b56f]
user: drh
branch: trunk,
size: 3098

Add support for databases larger than 2GB under Unix. Must be compiled
with -D_FILE_OFFSET_BITS=64 and -D_LARGEFILE_SOURCE in order to work with
larger databases. (CVS 778)
file: [c5e4fb59]
check-in: [a3f67fe9]
user: drh
branch: trunk,
size: 2592

Partial fix for ticket #96: Return SQLITE_MISUSE from sqlite_exec() if called
from a child process with an active transaction that was started in the parent. (CVS 675)
file: [5b9a6987]
check-in: [72a609ec]
user: drh
branch: trunk,
size: 2483

Fix a race condition in the locking code that would sometimes cause
SQLITE_PROTOCOL or SQLITE_CORRUPT to be returned when SQLITE_BUSY should
have been returned. (CVS 326)
file: [00a18e0a]
check-in: [b0d21887]
user: drh
branch: trunk,
size: 2119

Bug fix: sqlite_exec() would sometimes return SQLITE_PROTOCOL when it
should have returned SQLITE_BUSY. There was also a deadlock that the
previous bug was masking. (CVS 322)
file: [c5c12f5f]
check-in: [585ed5eb]
user: drh
branch: trunk,
size: 1958