Commit Graph

439 Commits

Author SHA1 Message Date
drh
eb0d74ff39 Check at the write() call to work around the msdos bug in OSX actually
succeeds and throw an error if it does not.  #ifdef out the work-around
for all platforms other than OSX.  Ticket #3633. (CVS 6237)

FossilOrigin-Name: b054b569172c53f4e185e4a64f41d08784aa0f8b
2009-02-03 15:27:02 +00:00
drh
a6d90f0ddd Remove a harmless UMR that occurs inside some debugging code. (CVS 6190)
FossilOrigin-Name: 191c399fc6354b35477ec21f685377e2af26f49b
2009-01-16 23:47:42 +00:00
drh
c7288ee0b8 Avoid using ENOTSUP on systems that do not define that symbol.
Ticket #3512. (CVS 6182)

FossilOrigin-Name: fcb6c677124102558f7a7a22bc3569b664424a4c
2009-01-15 04:30:02 +00:00
drh
8f941bc7a1 Add asserts to detect if a transaction commits without first incrementing
the transaction counter.  These asserts are intended to prevent future
problems similar to ticket #3584. (CVS 6179)

FossilOrigin-Name: b676ccfd9019e65b52251332d94de1b3018ec823
2009-01-14 23:03:40 +00:00
drh
d2cb50b74c Coverage improvements in pragma.c. Change the __DARWIN__ macro to __APPLE__,
which is available by default on Leopard. (CVS 6153)

FossilOrigin-Name: 64c56226b91e57883c8059f65330318e53376b8a
2009-01-09 21:41:17 +00:00
drh
617634eca2 Allow database files to be created in the root directory on unix.
Ticket #3570. (CVS 6141)

FossilOrigin-Name: 81014334ad57e380e21c47ad6eebe9f16b4ad24c
2009-01-08 14:36:20 +00:00
danielk1977
852e232922 Fix a variable type to prevent a warning in the proxy-locking code. (CVS 6051)
FossilOrigin-Name: d9595b961800a13c141bebdb8c0a67377f30efad
2008-12-22 03:36:59 +00:00
drh
103fe74315 Fix the TCL test harness so that it compiles and runs on OSX with
SQLITE_ENABLE_LOCKING_STYLE. (CVS 6017)

FossilOrigin-Name: 561d5de16ec07546a3bb691f308fb2495a0d0a43
2008-12-11 02:56:07 +00:00
drh
ea6788322e Never use strlen(). Use our own internal sqlite3Strlen30() which is
guaranteed to never overflow an integer.  Additional explicit casts to
avoid nuisance warning messages. (CVS 6007)

FossilOrigin-Name: c872d554930ecf221ac2be5f886d5d67bb35288c
2008-12-10 19:26:22 +00:00
drh
1875f7a3db The amalgamation now compiles cleanly on GCC with options
-pedantic-errors -Wno-long-long. (CVS 5991)

FossilOrigin-Name: 73c7302c5f76a2f61ecd75f8bda69bb500d3119c
2008-12-08 18:19:17 +00:00
drh
947bd8091b Make sure dot-lock is fully enabled when SQLITE_ENABLE_LOCKING_STYLE is
disabled.  Fix compiler warnings when SQLITE_ENABLE_LOCKING_STYLE is
disabled. (CVS 5976)

FossilOrigin-Name: 4697249fcc6041ba7d2fb89589c855a8bec71eb2
2008-12-04 12:34:15 +00:00
drh
c66d5b64de Fix a missing forward declaration that is needed when
SQLITE_PREFER_PROXY_LOCKING is defined. (CVS 5972)

FossilOrigin-Name: 24235300b3f64f0396e1016afbe31aec9ea69b62
2008-12-03 22:48:32 +00:00
drh
715ff30e27 Reorganize the proxy-locking method in os_unix.c. Additional cleanup. (CVS 5971)
FossilOrigin-Name: 31f6090e22b54d657afc8c23171d000d47850205
2008-12-03 22:32:44 +00:00
aswift
f0551ee5e4 Make os_unix compile with SQLITE_ENABLE_PROXY_LOCKING (CVS 5970)
FossilOrigin-Name: 3efedac6aa4f544d40c2f782109d4e1795e449a0
2008-12-03 21:26:19 +00:00
drh
6b9d6ddc21 Continue with the cleanup of os_unix.c. (CVS 5969)
FossilOrigin-Name: 215d36ea89078036fb66b5154f054613b735dab3
2008-12-03 19:34:47 +00:00
drh
9b35ea62c7 Continuing to refactor os_unix.c. This is an incremental check-in. (CVS 5967)
FossilOrigin-Name: c13df0311ef4f6a510f42105293f7c53c323fda8
2008-11-29 02:20:26 +00:00
drh
7708e9720b Continuing work on the os_unix.c refactoring. Removed all of the
LOCKING_STYLE_* constants and instead pass around pointers to the
underlying sqlite3_io_method objects. (CVS 5966)

FossilOrigin-Name: 1017d2fb1935a278ef442030bf7bdf5e112c566a
2008-11-29 00:56:52 +00:00
drh
734c9864cb First step in refactoring os_unix.c. This is work in progress. The code
compiles and runs on Linux and MacOSX (as long as SQLITE_ENABLE_LOCKING_STYLE
is turned off), but there are a few test failures. (CVS 5965)

FossilOrigin-Name: 7825cd63e5cb390a9c2c05957ebc9b189612f04a
2008-11-28 15:37:20 +00:00
danielk1977
c015e39ff9 Move the definition of function transferOwnership() in os_unix.c to below the static functions it calls. (CVS 5954)
FossilOrigin-Name: 622cb59791ab9f61c2e5131cb6ece5e75cdc9fae
2008-11-25 12:07:40 +00:00
drh
107886abe8 Factor out and simplify the canonical pathname logic in the VxWorks OS
interface. (CVS 5943)

FossilOrigin-Name: adb0aafaa6b1ea06541f653a2559f099fb1b2795
2008-11-21 22:21:50 +00:00
drh
6c7d5c5b33 Work toward cleaning up and refactoring the os_unix.c VFS module.
Change IS_VXWORKS to OS_VXWORKS.  The VxWorks implementation can now
be built and tested on Linux using -DOS_VXWORKS=1 -Dsem_t=int -DPATH_MAX=512 -DNO_GETTOD=1. (CVS 5942)

FossilOrigin-Name: 30a0132a83ce95d45f106fce1439e7509fdc64d1
2008-11-21 20:32:33 +00:00
drh
41022645ee Fixes to the proxy locking so that os_unix.c compiles on linux with proxy
locking omitted. (CVS 5935)

FossilOrigin-Name: 6f910b7036817f4bb4de807bf48938d20ab033cc
2008-11-21 00:24:42 +00:00
aswift
aebf413d9a Added support for proxy file locking style
Added pragma support for controlling proxy file locking
Added file control access to last errno and proxy locking
Added support for TMPDIR environment variable
Extended unit tests to cover new proxy locking pragmas and file control features (CVS 5934)

FossilOrigin-Name: b9bc36d3d5e35821ef69c0881a84c0afed253c9e
2008-11-21 00:10:35 +00:00
danielk1977
f3d3c27a0c Fix some compiler warnings that show up when building the amalgamation only. (CVS 5927)
FossilOrigin-Name: d1abe8a1c9a990b02c71d6c249436381c9fde443
2008-11-19 16:52:44 +00:00
danielk1977
a03396aafb Fix a few more compiler warnings. (CVS 5926)
FossilOrigin-Name: 70b2f6839ca97dfc08f72875283f5c75c8fcf0cc
2008-11-19 14:35:46 +00:00
danielk1977
c70dfc477f In os_unix.c, use "IS_VXWORKS" instead of "defined(__RTP__) || defined(_WRS_KERNEL)". Purely because it's easier on the eyes. (CVS 5925)
FossilOrigin-Name: 92c91a6cd7bcbe79206bdf7708fe9049a7b7fdd6
2008-11-19 13:52:30 +00:00
danielk1977
397d65f641 Eliminate some of the "unused parameter" warnings in os_unix.c. (CVS 5923)
FossilOrigin-Name: 2f5aaad90b7e3bbb31866c43db3e24a1be26f03b
2008-11-19 11:35:39 +00:00
danielk1977
62c14b3487 Changes to avoid "unused parameter" compiler warnings. (CVS 5921)
FossilOrigin-Name: 88134322c36b41304aaeef99c39b4ef5b495ca3b
2008-11-19 09:05:26 +00:00
danielk1977
00e136135e Modifications to avoid unsigned/signed comparisons in various files. (CVS 5914)
FossilOrigin-Name: 8009220c36635dd9b6efea7dc13281ca9625c40a
2008-11-17 19:18:54 +00:00
chw
971854898a Added support for vxworks >= 6.4; RTP mode tested, kernel mode untested. (CVS 5910)
FossilOrigin-Name: f45a1493636a5ee474dd6c0b5d286be2249b05aa
2008-11-17 08:05:31 +00:00
danielk1977
41a6a61d94 Change the way threadsOverrideEachOthersLocks() works to avoid trying to write-lock a (potentially) read-only files. Also, assume that on non-linux systems threads do override each others locks. Ticket #3472. (CVS 5883)
FossilOrigin-Name: 8ecae0943b06102fe22133db0dcaf58ecbd39545
2008-11-11 18:34:35 +00:00
drh
4c17c3fb11 Add documentation to make it clear that short reads from xRead in the VFS
must be zero-filled. (CVS 5867)

FossilOrigin-Name: fb311d6f4098a08f05b3fac9a2a7e2a53c38bb5f
2008-11-07 00:06:18 +00:00
danielk1977
d39fa70c79 Fix an error in (5826). (CVS 5828)
FossilOrigin-Name: 8065a92f705dfa04863ba4a828f5bd2803901be8
2008-10-16 13:27:40 +00:00
danielk1977
d138dd8687 Do not open and sync the directory in unixDelete() if the SQLITE_DISABLE_DIRSYNC option is defined. (CVS 5826)
FossilOrigin-Name: 8ef141644edc5182785c6a554222c2ffbe92fef5
2008-10-15 16:02:48 +00:00
drh
72cbd078c3 Fix the xRandomness() method on the unix VFS to return the number of bytes
of randomness obtained. (CVS 5821)

FossilOrigin-Name: b7687e2f2dfa5b0a01ba87ae0bf13684cda50499
2008-10-14 17:58:38 +00:00
danielk1977
0afae93fa4 Fix some function declarations (change "int foo()" to "int foo(void)"). Ticket #3399. (CVS 5740)
FossilOrigin-Name: 0fb98c35353d8c0a8d669bbe45fe84e3a5060621
2008-09-24 09:12:46 +00:00
drh
40bbb0a3e8 Enable the LOCKING_STYLE extensions by default on a Mac. Leave them
disabled on all other posix platforms. (CVS 5737)

FossilOrigin-Name: bae1d5b16948705b7dec7b139e3586b4b510cbfa
2008-09-23 10:23:26 +00:00
danielk1977
cd3b3c8902 Add instrumentation to os_unix.c to test that a return value of SQLITE_FULL from an xSync() callback is handled correctly. (CVS 5730)
FossilOrigin-Name: 7bd2da93c6cce52edbbe53fe26a82ad159dd6b6b
2008-09-22 11:46:32 +00:00
danielk1977
5ad6a88f59 Check if error code ENOTSUP is supported before using it. Ticket #3375. (CVS 5697)
FossilOrigin-Name: c32cb106c5d68e98f51f1eaf9ae0e2a3c36d00d6
2008-09-15 04:20:31 +00:00
danielk1977
0a732f59b0 Add support for the SQLITE_THREADSAFE=2 and SQLITE_DEFAULT_MEMSTATUS compilation options. (CVS 5676)
FossilOrigin-Name: 85c2a58901338c1c4652c2cbee51e5f48d289191
2008-09-04 17:17:38 +00:00
danielk1977
73245a7818 If SQLITE_ENABLE_LOCKING_STYLE is defined, have the os_unix.c module offer the following extra VFS implementations for explicitly selecting a locking-style: "unix-none", "unix-afp", "unix-posix", "unix-flock" and "unix-dotfile". (CVS 5674)
FossilOrigin-Name: 6e8fb64639cc7451005d9f1dd2d0ef62576abbdd
2008-09-04 06:22:25 +00:00
aswift
f54b1b341b quieting compiler warning about pointer/int conversion size mismatch (CVS 5602)
FossilOrigin-Name: f8a70501c234545b3030144ac6bcbfaa0d2b0069
2008-08-22 18:41:37 +00:00
drh
f489c45a63 Fix os_unix.c so that it will compile on Linux again. (CVS 5588)
FossilOrigin-Name: 2416708208357304904e38b2d36081a1adf5e44b
2008-08-22 00:47:53 +00:00
aswift
5b1a256663 Added SQLITE_IOERR_LOCK extended error code and support for detecting and returning errors in the os_unix lock, unlock and check reserved lock variants, also added support for populating and returning system error codes so that they can be accessed via xGetLastError, unfortunately xGetLastError can't seem to access the unixFile structure where the lastErrno is recorded. (CVS 5586)
FossilOrigin-Name: c1af14e2b6bf5af0aff3df3adbe8cb9aabe1c4a3
2008-08-22 00:22:35 +00:00
drh
5462624dc4 When opening a zero-size database on unix, write one byte into the file before
interrogating the inode number.  This works around issues with msdos
filesystems mounted on OS-X.  Ticket #3260. (CVS 5504)

FossilOrigin-Name: a480a8845fb3b49967de0790b30e6250c824b9be
2008-07-30 17:28:04 +00:00
drh
da0e768be2 In the unix OS implementation, replace inode hash tables with linked lists. (CVS 5503)
FossilOrigin-Name: db4022db64dc5864e6f1d0a20672183879ad43aa
2008-07-30 15:27:54 +00:00
drh
93a960a0a8 Remove unused code. Test coverage enhancements. Modify the algorithm used
to select column names for VIEWs of joins so that the constructed column
names omits the underlying table names. (CVS 5386)

FossilOrigin-Name: 636cd723296a8b1709011fdd99b236ffddf3f1b0
2008-07-10 00:32:42 +00:00
danielk1977
6cb427f5c4 Fix a malloc() failure related problem in os_unix.c. (CVS 5328)
FossilOrigin-Name: ba8819a6f3dbc45d88346789de42971aacc0d246
2008-06-30 10:16:04 +00:00
danielk1977
e339d65a89 Rearrange some ENABLE_LOCKING_STYLE related code in os_unix.c. (CVS 5324)
FossilOrigin-Name: f70d552bcd0df884eea2e2272bae558d35fc8845
2008-06-28 11:23:00 +00:00
danielk1977
29bafeabcd Change the OS_XXX pre-processor symbols to SQLITE_OS_XXX. Symbols "OS_UNIX", "OS_WIN", "OS_WINCE", "OS_OS2" and "OS_OTHER" are now "SQLITE_OS_UNIX", "SQLITE_OS_WIN", "SQLITE_OS_WINCE", "SQLITE_OS_OS2" and "SQLITE_OS_OTHER", respectively. (CVS 5311)
FossilOrigin-Name: cdd4cf4ce2ab363ddc3f27c5e44896e17269a161
2008-06-26 10:41:19 +00:00
danielk1977
c0fa4c5f32 Remove internal function sqlite3OsDefaultVfs(). The built-in VFS layers now register their VFS implementations by calling sqlite3_vfs_register() from within sqlite3_os_init(). (CVS 5307)
FossilOrigin-Name: 8fa33b79d7369ec5777fd9ad3349f0fa31b98fd6
2008-06-25 17:19:00 +00:00
danielk1977
59f8c08ecc Implement the 'CONFIG_SINGLETHREAD' and 'CONFIG_MULTITHREAD' configuration modes. (CVS 5234)
FossilOrigin-Name: 5059644c4bc5f6679afd939e0bc26080f42a9918
2008-06-18 17:09:10 +00:00
drh
40257ffd0a Progress toward implementation of sqlite3_config() and a rework of the
mutex and memory allocation subsystems.  This is an incremental check-in. (CVS 5218)

FossilOrigin-Name: a03c5af115889f477e17187a198a7d2d40bc76bf
2008-06-13 18:24:27 +00:00
danielk1977
bcb97fe95e Add the xGetLastError() member function to the sqlite3_vfs structure. It is neither called nor implemented at this point. (CVS 5192)
FossilOrigin-Name: b8f1da52c303de20d40aa20a7a031728d5d69af5
2008-06-06 15:49:29 +00:00
danielk1977
17b90b5316 Remove the xGetTempname() method from the vfs structure. Temp files are now opened by passing a NULL pointer as the filename to xOpen(). (CVS 5190)
FossilOrigin-Name: 5173b3e816c7eb711cd21a9068bbafb9ebb7cff1
2008-06-06 11:11:25 +00:00
danielk1977
861f74563d Modify the signatures of the sqlite3_vfs.xAccess and sqlite3_vfs.xCheckReservedLock functions. (CVS 5188)
FossilOrigin-Name: 4226ac54beea1b58de8ab7b9d768d999f50438a6
2008-06-05 11:39:11 +00:00
shane
9bcbdad298 Consolidated inline assembly versions of "hwtime()" into hwtime.h. Provided MSVC version. Modified code for consistent use of hwtime(). Changed implementation to use sqlite_uint64 and sqlite_int64 instead of unsigned long long int and long long int for MSVC compiler support. (CVS 5178)
FossilOrigin-Name: 9883b406ce24eae93942ee5e6aab33fb6b05329f
2008-05-29 20:22:37 +00:00
danielk1977
822a51628f Add more version tags to files that lack them. Ticket #3120. (CVS 5137)
FossilOrigin-Name: 81a8c70ed7a86abf286706fdbc251f31c9c53382
2008-05-16 04:51:54 +00:00
drh
65594045d0 Better error messages when trying to open a large file using a version
of SQLite that omits large file support.  Tickets #3096 and #3094. (CVS 5085)

FossilOrigin-Name: bdd89cd231745e6bd498b2751d7ff2cf6169b3eb
2008-05-05 16:56:34 +00:00
danielk1977
f96d8aebf3 Fix test for buffer overrun in unixGettempname(). Fix for #3091. (CVS 5069)
FossilOrigin-Name: fc0ca647bd1c7c953bb0f3eb7d3471572fd18c34
2008-04-30 08:56:10 +00:00
drh
2fa1868fb6 Add a new api sqlite3_randomness() for providing access to SQLite's
internal PRNG.  Add sqlite3_test_control() verbs for controlling the PRNG. (CVS 4882)

FossilOrigin-Name: 15110ea02768bfe977a57eccd6b941a36ebd6b32
2008-03-19 14:15:34 +00:00
drh
308aa32ffc Another fix to the OsUnlock I/O error logic. (CVS 4839)
FossilOrigin-Name: 22bd537ee2af6779ecb38502513ae533f85f7c2e
2008-03-07 20:14:38 +00:00
drh
1aa5af1151 Correctly handle I/O errors that occur during OsUnlock(). Before this
fix, an I/O error during OsUnlock() could lead to database corruption.
That is not a serious problem, though, since errors during OsUnlock()
are not possible on most systems. (CVS 4838)

FossilOrigin-Name: b4c1258edb4a40501d13c9da674d0366d5a8c694
2008-03-07 19:51:14 +00:00
drh
339eb0b8af Cleanup the locking-style code in os_unix.c. (CVS 4837)
FossilOrigin-Name: 40f55c09dbd31f861b9f9c7641cce92553d94e35
2008-03-07 15:34:11 +00:00
drh
218c508433 Updates to the locking-style code in os_unix.c. Not yet working. (CVS 4834)
FossilOrigin-Name: 6ebce3b798c60050fb3c583d805570bb06837108
2008-03-07 00:27:10 +00:00
drh
93aed5a177 Get all tests running without memory leaks. (CVS 4714)
FossilOrigin-Name: 5807921f5a6e2e08f2c9e79aa91d8c587d64de74
2008-01-16 17:46:38 +00:00
drh
85b623f2f9 Change all instances of "it's" in comments to either "its" or "it is",
as appropriate, in case the comments are ever again read by a pedantic
grammarian.  Ticket #2840. (CVS 4629)

FossilOrigin-Name: 4e91a267febda572e7239f0f1cc66b3102558c36
2007-12-13 21:54:09 +00:00
drh
3c7f2dc4ca Use the specified buffer length, not the maximum buffer length in
unixFullPathname() and related functions. (CVS 4595)

FossilOrigin-Name: f015a38771d98996366d66787b9b066f9ef5e248
2007-12-06 13:26:20 +00:00
danielk1977
7c055b9b7c Avoid leaking a file descriptor after a malloc failure on unix. (CVS 4518)
FossilOrigin-Name: c249d5da721b32f6fe409a5b55a5d49a58994fec
2007-10-30 17:28:51 +00:00
drh
9e0ebbfa41 Add comments to the code warning that _XOPEN_SOURCE might need to be
defined manually if using USE_PREAD or USE_PREAD64. (CVS 4509)

FossilOrigin-Name: d7ed7cd077fe5f9ffba2bca48b84b231ccfd85b0
2007-10-23 15:59:18 +00:00
drh
777b17af7e Fixes for uninitialized variables. Tickets #2658 and #2659. (CVS 4437)
FossilOrigin-Name: 27fe1288336665c4d47c5d7ddcbeacc451ec4a9d
2007-09-20 10:02:54 +00:00
rse
25c0d1a18a The code is correct as it contains an assert(3) in the "default" switch
case, but GCC 4.3 is not able to detect this and instead complains
with "warning: 'amode' may be used uninitialized in this function".
Hence, although the assert(3) already protects the code here, get rid of
this compiler warning by doing a simple initialization of the "amode"
variable. (CVS 4436)

FossilOrigin-Name: 91831ff2922666b39d8f4ba448982c6763030633
2007-09-20 08:38:14 +00:00
danielk1977
adfb9b0501 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)
FossilOrigin-Name: 8b29f5fbfc723cdf67cf3410cd01f7c17ea39a4b
2007-09-17 07:02:56 +00:00
danielk1977
76ee37f9bb Change the names of xGetTempName and sqlite3OsGetTempName to xGetTempname. To be consistent with xFullPathname and sqlite3OsFullPathname. (CVS 4432)
FossilOrigin-Name: ad3687b16e9420d8bbaa3a645aaf803813b36061
2007-09-17 06:06:39 +00:00
danielk1977
ed10afb4c0 Remove the unixFile.isOpen variable (no longer in use). (CVS 4401)
FossilOrigin-Name: 1786e9c881a67fbf8bd014d643590534c8c601dc
2007-09-05 13:56:32 +00:00
drh
70c01456e8 Unix OS interface returns SQLITE_CANTOPEN following a getcwd() failure. (CVS 4384)
FossilOrigin-Name: ed15db4610bc6202c624234e48d234e0005825e4
2007-09-03 17:42:17 +00:00
drh
33f4e02af6 Honor the SQLITE_OPEN_ flags passed into sqlite3_open_v2(). Some
test cases added but more are needed.  Ticket #2616. (CVS 4376)

FossilOrigin-Name: 020a2b10d408f51d4ef3211c5f701f5378fd4625
2007-09-03 15:19:34 +00:00
danielk1977
843e65f2fc Remove the syncOk argument to pager_recycle. Now that sqlite3_memory_release uses a global lru list of page, it is no longer required. (CVS 4364)
FossilOrigin-Name: fb27692ab10b22851b265348bb6b3e1dececd60f
2007-09-01 16:16:15 +00:00
danielk1977
95c8a54c7d Fix for registration of non-default vfs objects. (CVS 4360)
FossilOrigin-Name: 5f48fb95c26a713b3259ee49fd444108030376dc
2007-09-01 06:51:27 +00:00
drh
9e33c2c108 Remove the xLockState method for sqlite3_io_methods. Replace it with
a defined call to xFileControl().  This simplifies the interface and
also gives us coverage testing of sqlite3_file_control(). (CVS 4355)

FossilOrigin-Name: 306586c412b87c6d12bac796641517afa3f9eb6a
2007-08-31 18:34:59 +00:00
drh
cc6bb3eaeb Initial implementation of the sqlite3_file_control() interface.
Compiles and passes all historical tests but the new method is itself
untested. (CVS 4353)

FossilOrigin-Name: d3ab3e3911f10b17d0859a34f4f007c790a0cd82
2007-08-31 16:11:35 +00:00
danielk1977
2f2d8c7331 Prevent sqlite from opening directories as databases under unix. Fix for test cae in misc7.test. (CVS 4342)
FossilOrigin-Name: e30546504c59c7d92d83a32d9b7e83edc175e247
2007-08-30 16:13:33 +00:00
danielk1977
c16d463085 Remove the SYNC_BARRIER flag. (CVS 4337)
FossilOrigin-Name: 5a22d8695b49cf7bc2eee382b66a98d29adb9e6e
2007-08-30 14:49:58 +00:00
drh
46c99e0f5d Work around problem with forward declarations of constants in MSVC
in the amalgamation.  Ticket #2574. (CVS 4304)

FossilOrigin-Name: dc80b2e1f4e1d31479aad9f39e651e62f2601fb8
2007-08-27 23:26:59 +00:00
drh
50d3f9064b Added the 34to35.html document describing the changes between 3.4.2 and
3.5.0.  Minor interface cleanups. (CVS 4302)

FossilOrigin-Name: 0791f917bb18d7305b805b9cbcb308bdd7b3a1f5
2007-08-27 21:10:36 +00:00
drh
1cc8c448b5 Remove nRef and vfsMutex from the sqlite3_vfs structure. Omit the
sqlite3_vfs_release() interface.  Less memory allocated for a pager
in the common case where the size of the pathname is less than MAX_PATH. (CVS 4287)

FossilOrigin-Name: b8451da378179d43f25d9a014480c0f13dd1dc37
2007-08-24 16:08:29 +00:00
drh
153c62c461 The win32 driver compiles but does not yet work well. Many bugs
fixed. (CVS 4282)

FossilOrigin-Name: 3a68fcddfa9184e4b310ce0a21312c54b9462ec8
2007-08-24 03:51:33 +00:00
drh
4a50aac564 Improvements to memory leak detection. The --backtrace=NNN option is now
recognized by tester.tcl.  Memory leak summaries are automatically written
to the file ./memleak.txt and each leak is tagged with the test in which
it occurred.  The quick.test script runs on Linux with no errors and
no leaks. (CVS 4273)

FossilOrigin-Name: 21f6b31097692171c6493e6ca6de6acbd62dc595
2007-08-23 02:47:53 +00:00
drh
f3a65f7e44 The malloc.test script now passes all tests with no errors. (CVS 4271)
FossilOrigin-Name: db818430e9ea4ef4a4af575784009d5acae785a3
2007-08-22 20:18:21 +00:00
drh
51fc347a2e Remove the obsolete static mutexes. Use only the lastest static mutex code. (CVS 4259)
FossilOrigin-Name: 6225cd461cdd2132eeb480aa4deb8986b7f63c15
2007-08-21 13:51:23 +00:00
drh
29278e3dbb Remove unnecessary #includes of "os.h". New mutex implementations. (CVS 4255)
FossilOrigin-Name: fbbd5bda544ffec4e1b43407b12e546235dc7873
2007-08-21 10:44:15 +00:00
drh
d677b3d688 Work toward multithreading support. Currently crashes quickly on a test. (CVS 4253)
FossilOrigin-Name: 1315bd8e125602275fb718780f9b2730bd37f6ab
2007-08-20 22:48:41 +00:00
danielk1977
2a6bdf6d5b Call sqlite3OsSleep() with an argument in microseconds, not milliseconds. (CVS 4248)
FossilOrigin-Name: 917790413ced92266bf5c7cca6d130ed7ac6221b
2007-08-20 16:07:00 +00:00
danielk1977
967a4a1c96 Changes to crash-test io backend (test6.c) so that it works with the sqlite3_vfs interface. (CVS 4247)
FossilOrigin-Name: 40f66ada815fa1043d24c9cd6d898e1797e7044a
2007-08-20 14:23:44 +00:00
danielk1977
ad94b58a5e Update the locking-style code in os_unix.c. The updates are as yet untested. (CVS 4244)
FossilOrigin-Name: 41f2175b1ed7eccf271b687ee5c3ea262a0cd096
2007-08-20 06:44:22 +00:00
danielk1977
f036aef061 Fix full_fsync() related functionality broken as part of the migration to sqlite3_vfs. (CVS 4243)
FossilOrigin-Name: cb24cda179c2b526c5ac48be75e372d2b9db808c
2007-08-20 05:36:51 +00:00
danielk1977
fee2d25a70 Further progress on migration to sqlite3_vfs. (CVS 4242)
FossilOrigin-Name: a258c4ec240f96bccfe493e98d0827ec7dd12e67
2007-08-18 10:59:19 +00:00
danielk1977
90949c2003 Remove some old OsFile and IoMethod related code. Add the sqlite3OsLockState function. (CVS 4241)
FossilOrigin-Name: 08a0f48028794abbeae1b4852652062b38d37d88
2007-08-17 16:50:38 +00:00
danielk1977
b4b47411ab Begin migration to using sqlite3_vfs interface. (CVS 4240)
FossilOrigin-Name: af3e3c7acdc67013dd733effebe981620d922dd1
2007-08-17 15:53:36 +00:00
drh
dce8bdb8c0 Remove the thread specific data subsystem from the unix build. Remove
legacy cruft from sqliteInt.h.  Use the new mutex subsystem in the PRNG. (CVS 4237)

FossilOrigin-Name: 3d60c14a32955b69e714a73372924d421899f83b
2007-08-16 13:01:44 +00:00
danielk1977
1e5369531e More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233)
FossilOrigin-Name: 77b1671351fe94b0ebc126a63140643deae2aa64
2007-08-16 10:09:01 +00:00
drh
174357527a Half-way through a major refactoring of the memory allocation.
I have not even attempted to compile so I am certain there are
countless errors. (CVS 4231)

FossilOrigin-Name: deb7ecd65f7b83eaf0ba610eeef3b0ede61db1c3
2007-08-16 04:30:38 +00:00
danielk1977
6207906027 Modify the crash-recovery test code in test6.c for 3.5. Also change some other code to use the new sqlite3_io_methods interface. Lots of things are broken now. (CVS 4228)
FossilOrigin-Name: af9503daf3f7703fcddad754bc1dc9e179830b6e
2007-08-15 17:08:46 +00:00
drh
fd131daecd Remove all tabs from source code files. Ticket #2556. (CVS 4198)
FossilOrigin-Name: 7550dd1d5980a399fbb06b4ed69216700f879a0b
2007-08-07 17:13:03 +00:00
drh
e78669b6b8 Set FD_CLOEXEC on all open files under Unix. Ticket #2475. (CVS 4146)
FossilOrigin-Name: f1e5fed8eb0fb92bd0f040666c017850afe3cf9f
2007-06-29 12:04:26 +00:00
drh
63fff5f7a5 Cast the 2nd parameter of ftruncate to off_t to work around bugs in
some unix implementations.  Ticket #2425. (CVS 4089)

FossilOrigin-Name: 0b20a69609c64af922bedab381f7d075e9da4fc5
2007-06-19 10:50:38 +00:00
drh
3b62b2fa8b Use C-sylte comments exclusively, never C++ comments. Ticket #2406. (CVS 4052)
FossilOrigin-Name: 8f5b789fea23d76128c10b37158de2525a54ce20
2007-06-08 18:27:03 +00:00
drh
5bb3eb9b9a Eliminate all uses of sprintf() and strcpy(). These were not being
misused.  But getting rid of them removes a library dependency.  And
it avoids warnings from the OpenBSD compiler.  Ticket #2336. (CVS 3916)

FossilOrigin-Name: ba4845b32bdf38e623c4f7246e6e327715bbba4b
2007-05-04 13:15:55 +00:00
drh
bb5f18d2ca Additional coverage testing. (CVS 3823)
FossilOrigin-Name: 26b2e1aede3f776134b2d6e941d17a907843e650
2007-04-06 18:23:17 +00:00
drh
bdcc276e94 Do not use the second parameter to gettimeofday() on unix. Pass it a NULL. (CVS 3804)
FossilOrigin-Name: 96b678818c9a536b77f10b25256facf4bff1ff65
2007-04-02 18:06:57 +00:00
drh
61fc595fdd Fix some warnings about unused and uninitialized variables. (CVS 3788)
FossilOrigin-Name: 18aec1ddfb08b74f0ef9cf1215eac7af71449db3
2007-04-01 23:49:51 +00:00
drh
2c547df6cf Make unix builds threadsafe by default. (CVS 3787)
FossilOrigin-Name: ddfc3b2df0b37be66fc55bb216cdcb6ba67aa7fd
2007-04-01 18:46:19 +00:00
drh
a16313e505 Move the sqlite3_temp_directory global variable out of the OS porting layer
and into main.c so that it is more accessible to non-standard OS porting
layers. (CVS 3759)

FossilOrigin-Name: 23653f7aab6609f69948a7366bef9ebd0fd4d0b1
2007-03-30 11:29:32 +00:00
drh
e2396a1090 Assume any return code from fcntl() other than -1 is success. Formerly we
only assumed that 0 was success.  Ticket #2173. (CVS 3754)

FossilOrigin-Name: 8d0073c0e8408558dae39f789ac3fa2622b52365
2007-03-29 20:19:58 +00:00
drh
3ceeb75680 Change the name of PAGER_SECTOR_SIZE to SQLITE_DEFAULT_SECTOR_SIZE. Make
the new OS-layer interface routine for finding sector size optional. (CVS 3750)

FossilOrigin-Name: 0fb9af1d6e20bf25511c6d2097937cc11137776e
2007-03-29 18:19:52 +00:00
danielk1977
979f38e5ee Test handling of IO errors that occur in OsDelete() or OsTruncate() operations. Also use an anonymous file for temporary storage during a VACUUM. (CVS 3729)
FossilOrigin-Name: b24a6e7b024c8b9a0b6fd15bd8f247e458781ca2
2007-03-27 16:19:51 +00:00
drh
4f0c587819 Modify sources to that they can be combined into a single sqlite3.c source
file.  Eliminate all type-pruned pointer warnings. (CVS 3722)

FossilOrigin-Name: 0b832e218ec12b0eb559e407d80aba6709e2ea85
2007-03-26 22:05:01 +00:00
danielk1977
a3d4c887e0 Add a comment to the OsSectorSize() function. (CVS 3710)
FossilOrigin-Name: 0fd9983a98d8d61654f252f1708a4d7232a96b53
2007-03-23 10:08:38 +00:00
drh
8350a2187a In os_unix.c, make a distinction between pread() and pread64(). Add a new
compile-time macro USE_PREAD64 to select the latter. (CVS 3709)

FossilOrigin-Name: 177cd92910d01c97eb3133a59fad417edbb1aa92
2007-03-22 15:22:06 +00:00
danielk1977
b472117c11 Add new OS file method to return the sector-size of the underlying storage: sqlite3OsSectorSize() (CVS 3700)
FossilOrigin-Name: 5752d84d374205e011d49b0221d6237967fe0743
2007-03-19 05:54:48 +00:00
drh
3f56e6ebac Enhanced temp-file security under unix. There are no known attacks against
prior versions - this check-in is just an added precaution. (CVS 3687)

FossilOrigin-Name: 5af61402f65bddc4040a20470f267c9404cba631
2007-03-15 01:16:47 +00:00
drh
15d00c4e7b Improvements to OS layer tracing on the unix backend. (CVS 3664)
FossilOrigin-Name: 3ad96dbe09b99bd5f623de0de3072a25e9e2bc17
2007-02-27 02:01:14 +00:00
drh
8ebf6707cf Check the return value of lseek() in os_unix.c to make sure it really worked. (CVS 3628)
FossilOrigin-Name: e4408dd1fd32e6c5057cce0fdfa70eb2d9bd2531
2007-02-06 11:11:08 +00:00
aswift
ae0943b445 Fixed incorrect typecast for flock structure ptr in fcntl() call in sqlite3TestLockingStyle()
Restored previous fullfsync behavior, try fsync() if fcntl(fd, F_FULLFSYNC, 0) returns an error. (CVS 3621)

FossilOrigin-Name: f044c5f49f116ede8ab2d5ab43caa5ca9dd54ffe
2007-01-31 23:37:07 +00:00
drh
bafda0962e Additional changes in the pager and os interface layers to fix problems that
might be contributing to recently observed database corruption. (CVS 3549)

FossilOrigin-Name: a593d5743eab12c0f93a7bc436f0d69dfab0c387
2007-01-03 23:36:22 +00:00
drh
761df87ea5 Move the shared-library loading routines into the OS portability layer,
thus enabling the os_win.c code to handle the character encoding
confusion of win95/nt/ce.  Ticket #2023. (CVS 3541)

FossilOrigin-Name: a1bcc6de578992b28924c1cf974ea58251454e2d
2006-12-21 01:29:22 +00:00
aswift
448aa6f71a The uninitialized file descriptor from the unixFile structure is passed to sqlite3DetectLockingStyle in allocateUnixFile rather than the file descriptor passed in. This was causing the locking detection on NFS file systems to behave somewhat randomly and the result was locks were not respected and data loss could occur. (CVS 3508)
FossilOrigin-Name: b9dd16ef3df0785d8d0eea9a6f2ad580a7289834
2006-11-11 01:31:58 +00:00
drh
551b77365e Use the difference between the SQLITE_IOERR_SHORT_READ and SQLITE_IOERR_READ
returns from sqlite3OsRead() to make decisions about what to do with the
error. (CVS 3503)

FossilOrigin-Name: 6324ea811eec1200cee89e6f377368eaf2fcda77
2006-11-06 21:20:25 +00:00
aswift
108bc320f9 Bug fix: named local variable lockStyle as lockingStyle in SQLITE_ENABLE_LOCKING_STYLE block in allocateUnixFile (CVS 3473)
FossilOrigin-Name: aa0b96c3dfa1d8008cd944281c227604b2ee16d1
2006-10-11 17:19:46 +00:00
drh
bfe6631e7a Add the OS-X locking style patches to os_unix.c. Disabled by default. (CVS 3459)
FossilOrigin-Name: f4103dea5e1a87adccccca715946e174d1cc7450
2006-10-03 17:40:40 +00:00
drh
4ac285a1c2 Add support for extended result codes - additional result information
carried in the higher bits of the integer return codes.  This must be
enabled using the sqlite3_extended_result_code() API.  Only a few extra
result codes are currently defined. (CVS 3422)

FossilOrigin-Name: ba579ddc4361fc6e8ea66f9385770d70dfe94751
2006-09-15 07:28:50 +00:00
drh
5968593b51 Enhanced I/O error simulation. (CVS 3418)
FossilOrigin-Name: 86931854fc5a63571719639d9a23b1d6614a6153
2006-09-14 13:47:11 +00:00
drh
cdc35e9343 Remove a superfluous call to access() in the unix driver. Error spotted
by Coverity. (CVS 3175)

FossilOrigin-Name: 4f195aa1ebef5129e6f912e78b3d5f97b393a06c
2006-04-19 01:24:53 +00:00
drh
b912b2889c Use the pread()/pwrite() interface on Posix if compiled with -DUSE_PREAD=1.
Note that on Linux this is slower and does not work for large files. (CVS 3147)

FossilOrigin-Name: 5a24f61981df4d8b696f03372eba2d37228906d9
2006-03-23 22:42:20 +00:00
danielk1977
750b03e543 Changes so that test_async.c works with memory management turned on. (CVS 3093)
FossilOrigin-Name: f4150c29df2774b4422d4296d913cdbcee62c859
2006-02-14 10:48:39 +00:00
drh
4eb9a9792a Disable the /./ and /../ collapser logic in sqlite3OsFullPathname under Unix. (CVS 3092)
FossilOrigin-Name: 111a426b3e2fae77c9e6c3cd903fd80652b23720
2006-02-13 18:42:21 +00:00
drh
89ea93121d Add in-process file locking to test_async.c. The unix implementation of
sqlite3OsFullPathname() now attempts to remove /./ and /../ elements from
the path. (CVS 3090)

FossilOrigin-Name: 42379c623073eb541d053c2dff9f49087fb290f8
2006-02-13 17:03:47 +00:00
drh
e9565a6d94 Fix typo in os_unix.c. (CVS 3082)
FossilOrigin-Name: c0e987bcfa899c073d54fbd5a3606c704b8bc3d9
2006-02-11 02:03:52 +00:00
drh
ac530b1ab4 Add support and documentation for the fullfsync pragma. Also include
some other unrelated documentation updates. (CVS 3080)

FossilOrigin-Name: f2069d0bf3161591535e68b7389792e9cb7fe043
2006-02-11 01:25:50 +00:00
drh
6a3d670205 More comments on the unix locking code. Ticket #1672. (CVS 3075)
FossilOrigin-Name: 4b6f5688843ebe39f6bd3e863666a44d486fbe0f
2006-02-10 13:11:32 +00:00
drh
5c11123df8 Fix deadlock problem in the unix mutex. Ticket #1672. (CVS 3071)
FossilOrigin-Name: a6c30be214bb575f9ecfa299b7a597d21e3d3aca
2006-02-10 04:33:12 +00:00
drh
86631a5ad1 Ignore errors when when calling fsync() on a directory. Ticket #1657. (CVS 3068)
FossilOrigin-Name: d54d3b82c468b7e6dd39aac6aac56b26b3918c37
2006-02-09 23:05:51 +00:00
drh
5062d3a048 Add the SQLITE_THREADS_OVERRIDE_LOCKS compile-time option that disables
the run-time test to see if threads can override each others locks on unix. (CVS 3050)

FossilOrigin-Name: e83a19e8cb6d721b02502925b362f2e86b2de742
2006-01-31 23:03:35 +00:00
danielk1977
4d5238f0c0 Fix a couple of (harmless) intel compiler warnings. (CVS 3034)
FossilOrigin-Name: 2e23231f0c10b2bba9e08ea47859e2c0ffa84c76
2006-01-27 06:32:00 +00:00
drh
2f1a4d106d Fix uninitialized variable in os_unix.c. (CVS 3006)
FossilOrigin-Name: 892e644d20b9d132cf29242a9bca0116ebe6968f
2006-01-23 16:24:54 +00:00
drh
02afc86171 More compiler warnings fixed - or in some cases comments are added to explain
that the compiler is wrong. (CVS 2984)

FossilOrigin-Name: 507653a98cbd096f836a977408e373640c7cdb8f
2006-01-20 18:10:57 +00:00
danielk1977
76e8d1a292 Include the ThreadData structure in internal malloc() testing. Also fixes for revealed bugs. (CVS 2974)
FossilOrigin-Name: c7b9d50d0a975912776aaa2b870308652f77e1e6
2006-01-18 18:22:43 +00:00
drh
757b04ed36 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)

FossilOrigin-Name: e1ad9df1cf46287f2a7789275e98d28e05880e17
2006-01-18 17:25:45 +00:00
danielk1977
9e12800dec Use a global variable protected by a mutex instead of thread-specific-data to record malloc() failures. (CVS 2972)
FossilOrigin-Name: ac090f2ab3b5a792c2fdf897e10060f263e0d408
2006-01-18 16:51:35 +00:00
danielk1977
54f0198e47 Change sqlite3MallocClearFailed() calls to sqlite3ApiExit(), a better API. (CVS 2970)
FossilOrigin-Name: e0b022e5b2bfd272b4e25cd7a7b472206a118bbe
2006-01-18 15:25:17 +00:00
drh
a3fad6f5f3 Convert the unix driver to use a recusive mutex. Similar changes to the
windows driver are pending. (CVS 2968)

FossilOrigin-Name: 8830bbbac8e0c9243956aac42dc9f86a0bd1fa07
2006-01-18 14:06:37 +00:00
danielk1977
cbb8496c5e Arrange for ThreadData to be automatically deallocated even if SQLITE_MEMDEBUG is defined. Fix for #1623. (CVS 2965)
FossilOrigin-Name: 9e2e40845d30cc150abe23ee318a721b4fe9613c
2006-01-17 16:10:13 +00:00
drh
f1a221e695 Clean up comments in os_unix.c. (CVS 2950)
FossilOrigin-Name: 2170e803ad48cffa6dddf8b591e0c085a7e66c86
2006-01-15 17:27:17 +00:00
drh
3832230e25 Closing a file from the wrong thread is harmless on most systems.
(See ticket #1611)
But on systems like RedHat9 with broken fcntl() locks, it leaks file
descriptors.  That is better than the alternative of prematurely breaking
locks and causing database corruption.  Nevertheless, it would be good
if we could figure out a way to report errors when closing a file from
the wrong thread. (CVS 2946)

FossilOrigin-Name: ad8f12cad1fcd9c54478abe20050f9a953035506
2006-01-15 02:43:16 +00:00
drh
64b1bea3ba Add tests and fix bugs in the new cross-thread lock resolution code.
When an unlock fails, do not leak file descriptors (ticket #1611).
But we really ought to report SQLITE_MISUSE or some other error instead
of just returning SQLITE_OK. (CVS 2945)

FossilOrigin-Name: f68e05cb2be65fad43fac823b2a9c53b6d2e797d
2006-01-15 02:30:57 +00:00
drh
029b44bdd3 Documentation updates. Fix to date.c. But most importantly: database
connections are now allowed to change threads as long as they are not
holding a lock. (CVS 2944)

FossilOrigin-Name: 03c422ecb508dd84dfafc8b7a0b790a43f5dadda
2006-01-15 00:13:15 +00:00
drh
70ff98ab74 Improve performance by about 10% by avoiding excess calls to get
the thread-specific data. (CVS 2921)

FossilOrigin-Name: a8c74febec11eb689ca9f6b454f8c8bbadfc49d7
2006-01-12 01:25:18 +00:00
drh
b4bc7057e5 Testing of the automatic TSD deallocation logic. The sqlite3_thread_cleanup()
API is documented.  This should close ticket #1601. (CVS 2920)

FossilOrigin-Name: fb518b0ce4ddd4aaca5cccf61e651f173e735119
2006-01-11 23:40:33 +00:00
drh
6f7adc8a80 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)

FossilOrigin-Name: 5d9c6aa964305c3f36741ff0058da5b5f3ce0d24
2006-01-11 21:41:20 +00:00
drh
29c636bc12 Added database server example code (untested). Fixed serveral bugs including
the autovacuum compile problem described by ticket #1593. (CVS 2897)

FossilOrigin-Name: ec332d8822d1ac9673581a26ab2a2fce5f2554a3
2006-01-09 23:40:25 +00:00
danielk1977
e501b89ada Rename DbSchema to "Schema" and SqliteTsd to "ThreadData". (CVS 2893)
FossilOrigin-Name: 82b81f69c78cb3f54634d9aea4f6a838474dc5e5
2006-01-09 06:29:47 +00:00
drh
8c0ca7d27c Drop the mutex if the TSD key allocation fails. Ticket #1585. (CVS 2880)
FossilOrigin-Name: 77ac231c0e21c09c0b612a4e72bcc863f2c95fd3
2006-01-07 04:06:54 +00:00
drh
198bf39128 Changes so that SQLITE_OMIT_PARSER and SQLITE_OMIT_DISKIO work. (CVS 2878)
FossilOrigin-Name: 9d71b7deaffdd7eb9ddad1f03df3e4c51c2cbd98
2006-01-06 21:52:49 +00:00
drh
0739723d76 Fix an alignment problem in the sqlite3OsRandomSeed(). Ticket #1584. (CVS 2872)
FossilOrigin-Name: 373b56f0048fd6a1946a97acfcca40fd12f7d572
2006-01-06 14:46:46 +00:00
drh
66560adab3 Change the OS interface layer to use traditional direct function call
implementations instead of the more complicated virtual function table.
Omit the asynchronous I/O demo. (CVS 2870)

FossilOrigin-Name: 2529c2e11fa1d345ec61f647e4f6fae20a7133d6
2006-01-06 14:32:19 +00:00
drh
3fbb0b1a3b Windows implementation of the thread-specific data interface. (CVS 2864)
FossilOrigin-Name: 3aa8befedf4534cd100a7309997a4ad2ba08af20
2006-01-06 00:36:00 +00:00
danielk1977
441b09ae55 Disable automatic invocation of sqlite3_release_memory() when a malloc() fails
in those cases where the global mutex is held. (CVS 2860)

FossilOrigin-Name: 6fdbb8b771e490f0d791326689245302c4fe18f5
2006-01-05 13:48:29 +00:00
drh
88f474a938 Add the xInMutex method to the os-layer switch for testing whether or not
mutexes are used correctly. (CVS 2851)

FossilOrigin-Name: a582b159595ff8d31c81e9b3044711d6590d3f0e
2006-01-02 20:00:12 +00:00
danielk1977
c529f52046 Move malloc(), free(), realloc() and allocationSize() into the Os vtbl. (CVS 2819)
FossilOrigin-Name: 81a41f66370ea7f6810dfb323ba5cea60f240edd
2005-12-15 10:50:53 +00:00
danielk1977
13a68c3f61 Add the sqlite3_os_routine_set()/get() functions. (CVS 2818)
FossilOrigin-Name: c1ed79f594fb85009c2e9e5e281cbe66a9d2fa17
2005-12-15 10:11:30 +00:00
drh
2646da7e52 Clean up annoying (and pointless) compiler warnings about differing signedness. (CVS 2810)
FossilOrigin-Name: 83a59151559d9496d4f546e03e65087ea974717d
2005-12-09 20:02:05 +00:00
danielk1977
2e588c7525 Many small changes to ensure memory is not leaked after malloc() fails. (CVS 2808)
FossilOrigin-Name: 601c335463aaabc2e9918e4b9298cff6161be5c4
2005-12-09 14:25:08 +00:00
danielk1977
261919cc16 Some elements of the new malloc() failure handling. Not all cases work properly yet. Also, library is not threadsafe if malloc() fails right now. (CVS 2800)
FossilOrigin-Name: e1606658f1b4530e3001db4779b5669c8d13c853
2005-12-06 12:52:59 +00:00
drh
054889ec6d Restructure the OS interface yet again. This time make the OsFile object
a virtual base class which is subclassed for unix, windows, and the crash
test simulator.  Add the new file "os.c" for common os layer code.  Move
all OS-specific routines into the sqlite3Os structure. (CVS 2795)

FossilOrigin-Name: bd8740d1aecba69e1b5d64d43db07e8ad8841f07
2005-11-30 03:20:31 +00:00
drh
392b3ddf2e The crash test works now, at least on unix. Untested on windows. But it never
worked on windows before so if it still does not there is no big loss.  I am
still troubled by the current design of the OS overloading mechanism.  Expect
to see more changes. (CVS 2794)

FossilOrigin-Name: fa1d7ecfcc648fbe9fc6d92e080cf937bdc9c439
2005-11-29 19:56:32 +00:00
drh
9cbe635219 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)

FossilOrigin-Name: 058f31753871b16b40fe4048e3adcee411e0f87d
2005-11-29 03:13:21 +00:00
drh
18839217da Add an OS method for making copies of file descriptors. This fixes the
crash tests. (CVS 2786)

FossilOrigin-Name: 57a674fc71512f11393b8eb595961ec9465ba4e1
2005-11-26 03:43:23 +00:00
drh
9c06c95309 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)

FossilOrigin-Name: 1f69aec285dd8e26bd739d5e44bb50fe03a9682a
2005-11-26 00:25:00 +00:00
danielk1977
d7c03f7485 Add the compilation option SQLITE_DISABLE_DIRSYNC (CVS 2782)
FossilOrigin-Name: f1298bb103aad46c737741d89d33c4c2904aec68
2005-11-25 10:38:22 +00:00
danielk1977
26c5d79f60 If SQLITE_DISABLE_LFS is defined, omit the bigfile tests. (CVS 2781)
FossilOrigin-Name: f882a516da18f45dbb668078d0d8240d930e1180
2005-11-25 09:01:23 +00:00
danielk1977
0964b23a99 Check the return code of full_fsync() when used to sync a directory fd. (CVS 2780)
FossilOrigin-Name: 84aae3b0ae7381710ff0bc9881cbde3559bb580b
2005-11-25 08:47:57 +00:00
drh
91636d58c0 The --enable-cross-thread-connect configuration option or the
-DSQLITE_ALLOW_XTHREAD_CONNECT compile-time option permits database
connections to be moved across threads.  This will cause latch-ups
and failures on some linux systems such as RedHat-9.  Do not use these
options if you want a portable build. (CVS 2778)

FossilOrigin-Name: 84aa4d58001ed943295f21f429c58c3c99b771d8
2005-11-24 23:14:00 +00:00
drh
d9cb6ac02f Changes to prevent various compiler warnings. (CVS 2750)
FossilOrigin-Name: e261b8b09a529a3e67dc27c3b83b660bcb32e195
2005-10-20 07:28:17 +00:00
drh
f2f23916ec Another attempt to get fdatasync to be ignored on non-conforming posix systems.
Now a system has to opt-in for fdatasync instead of opt-out.
Ticket #1467. (CVS 2741)

FossilOrigin-Name: 115340d4e85f1bbbab657edbb504284343d86e2c
2005-10-05 10:29:36 +00:00
drh
c035e6e4ab Optionally call fdatasync() instead of fsync() only if _POSIX_SYNCHRONIZED_IO
is positive, which should only be the case on operating systems that
actually support fdatasync(). (CVS 2732)

FossilOrigin-Name: a9b341dccffaf324a64139d6f482599258ef7009
2005-09-22 15:45:04 +00:00
drh
b4746b9e33 Defend against disk I/O errors that happen during an sqlite3OsSeek(). (CVS 2679)
FossilOrigin-Name: 461e3a0a27ff083b0bae10c9880e3b41bb85ee31
2005-09-09 01:32:06 +00:00
drh
eb796a7c8f While doing a transaction comment, use fdatasync() instead of fsync() in
cases there the file size is unchanged. (CVS 2673)

FossilOrigin-Name: 3c555a87493128620ac967faf7c63c2a58856e9e
2005-09-08 12:38:41 +00:00
drh
79158e1865 Changes to reduce the amount of stack space required. (CVS 2661)
FossilOrigin-Name: b86bd70f301205d6ca66475a425e157b976107e2
2005-09-06 21:40:45 +00:00
drh
19e2d37f1d Increase resolution of time-of-day on unix. Add an experimental
sqlite3_profile() API. (CVS 2639)

FossilOrigin-Name: ed2ca0873fa89d6cfd123541d5d1c6b92c72b6ab
2005-08-29 23:00:03 +00:00
drh
ad81e87054 Clean up possible locking problem in multithreaded applications that take
a malloc failure. (CVS 2611)

FossilOrigin-Name: 545e702a23c7a6b09e10441d4137efe5a9618a84
2005-08-21 21:45:01 +00:00
drh
d645967aaa Give the same access permissions to journal files as is given to databases. (CVS 2590)
FossilOrigin-Name: 7961ec0ccbc99d890689013b9602635941f308a6
2005-08-13 17:17:01 +00:00
drh
2b4b5962c4 Changes to the unix OS layer aimed at finding and fixing tickets
#1272 and #1285. (CVS 2517)

FossilOrigin-Name: 006dda3119f025d703da4e0215c378206e20cfd0
2005-06-15 17:47:55 +00:00
drh
0ccebe7e2d Changes to support linking without a parser and without a disk I/O interface. (CVS 2504)
FossilOrigin-Name: 62a7353d4af4886b1561832e8b36e8e788b38834
2005-06-07 22:22:50 +00:00
drh
41f5852eea Handle failures of getcwd() without segfaulting. Ticket #1274. (CVS 2490)
FossilOrigin-Name: c1691004d6d81b683a4ca5b1723c0de8b9b4e376
2005-06-06 15:06:39 +00:00
drh
8e855770de Provide a compile-time parameter to set the default file creation permissions
under Unix.  Ticket #1247. (CVS 2461)

FossilOrigin-Name: bfa55bec3233eed899606c309773f441857605ae
2005-05-17 11:25:31 +00:00
drh
e29b915e9b Remove unused code from util.c. Enhance the trace output in os_unix.c. (CVS 2397)
FossilOrigin-Name: f2f31919fdd181c79b86f849d46c60f1ed7a0db1
2005-03-18 14:03:15 +00:00
drh
f30cc9496a Fix bugs discovered in 3.1.4. F_FULLFSYNC not F_FULLSYNC. And a bug in
"make doc".  Also typos in the documentation. (CVS 2379)

FossilOrigin-Name: 3c57a4571fc8463ce9de1cbe5be45538bf2f0de9
2005-03-11 17:52:34 +00:00
drh
b851b2c938 Disable F_FULLSYNC if the sychronous pragma is not set to FULL. (CVS 2372)
FossilOrigin-Name: 58b8733b96165126ee8514f2ce0f88d249792847
2005-03-10 14:11:12 +00:00
drh
4c7f941cfc Make sure the rc variable in OsWrite of os_win.c is always initialized.
Also assert that the amt parameter is always greater than zero.
Ticket #1094. (CVS 2309)

FossilOrigin-Name: 4b399ae7791288e5d44f90da530908d9ca77ff4b
2005-02-03 00:29:47 +00:00
drh
842b864118 Initialize the random number generator from /dev/urandom, if available. (CVS 2258)
FossilOrigin-Name: aab8e7f8d81ffa786d5fae5a13963c6e58a8eefc
2005-01-21 17:53:17 +00:00
drh
1398ad3639 Continued refactoring of the name resolution logic and query optimizer. (CVS 2236)
FossilOrigin-Name: d8b2a7e09187564fe66a2b4bf0992c6a017146cf
2005-01-19 23:24:50 +00:00
drh
268283bc7f Fixes to the temp_store_directory pragma. (CVS 2185)
FossilOrigin-Name: 0a90eaf398aa4a689cd8326cd017951513ca748a
2005-01-08 15:44:25 +00:00
tpoindex
9a09a3caed Add PRAGMA 'temp_store_directory'. Added os_*.c function
sqlite3OsIsDirWritable(), split pragma.c changeTempStorage() function into
invalidateTempStorage(). (CVS 2171)

FossilOrigin-Name: 772e22cbd69463be41c2e73b4fd4eb33946193c4
2004-12-20 19:01:32 +00:00
drh
5719628afb Convert many constants to have type "const". (CVS 2006)
FossilOrigin-Name: d790c84c5a889928d07f5394fffef0cbb8d5f214
2004-10-06 15:41:16 +00:00
drh
9c105bb990 Fixes to the OsUnlock() interface. Correctly leave a SHARED lock behind
when requested.  Honor the error code that OsUnlock() returns.
Ticket #913 and #938. (CVS 1997)

FossilOrigin-Name: c4697503d0ad080290b91e96dfc9a1a63f2df7e6
2004-10-02 20:38:28 +00:00
drh
047d4836ff Additional code to test the SQLITE_FULL return when the disk is full. (CVS 1994)
FossilOrigin-Name: 44e56f0bba61245d342d6e75510d6c35785efd49
2004-10-01 14:38:02 +00:00
drh
ededaa59bd Fully release exclusive locks in the Unlock primitive of Unix.
Ticket #913. (CVS 1993)

FossilOrigin-Name: 11a37a74b101b9e37dcf1c3e57e45fbcd39a1c21
2004-10-01 03:02:48 +00:00
drh
eb206256f1 Use type i64 instead of off_t for file offsets since off_t is giving
portability problems.  Ticket #924. (CVS 1992)

FossilOrigin-Name: 8972c004dc825f668d952e7d082a89046b9260f1
2004-10-01 02:00:31 +00:00
drh
effd02bcbe Change the name of the global variable to sqlite3_temp_directory to
avoid a naming conflict with version 2.8. (CVS 1918)

FossilOrigin-Name: 431f7436a680b7c520aa559b0bf8619d7faba8c1
2004-08-29 23:42:13 +00:00
drh
ab3f9fea05 Add the ability to specify a alternative temporary file directory using the
"sqlite_temp_directory" global variable. (CVS 1885)

FossilOrigin-Name: fce56ba6a3c53843fabdfad4f545e35a83a01aa9
2004-08-14 17:10:10 +00:00
drh
a9600bc692 Separate P4 timing asm code out of the SQLITE_DEBUG macro so that SQLITE_DEBUG
can be used on non-x86 machines and with compilers other than GCC.
Ticket #838. (CVS 1876)

FossilOrigin-Name: add266ccc3146fa56572d109e84c8a79dc3df2ca
2004-08-04 14:44:33 +00:00
drh
0bb132bedc Lemon collapses common destructors and reduce actions into a single case. (CVS 1837)
FossilOrigin-Name: 3c5aa850eeec5c75c5200a3707852cc5fc9e780b
2004-07-20 14:06:51 +00:00
drh
6458e39c12 Report an error when attempting to open a directory as a database.
Ticket #687. (CVS 1832)

FossilOrigin-Name: 4d77037be34b357d24d18d1e13b5f0df580b83ff
2004-07-20 01:14:13 +00:00
drh
d5b447d9ac The OsFile under Unix records a pointer back to the pager. This is intended
to be used for an externalized locking patch. (CVS 1821)

FossilOrigin-Name: 511ee6392472d250b542961d1f715cc7453598e6
2004-07-19 22:08:09 +00:00
drh
dd809b087f Use the F_FULLFSYNC fctrl if it is available. Record the name of files
that are opened in the OsFile structure. (CVS 1799)

FossilOrigin-Name: 1d30d0dd46c2bd12ce3f7dc06492f3e27ab6bcee
2004-07-17 21:44:57 +00:00
drh
fd69dd6b3d Comment out unused routine in os_unix.c. (CVS 1759)
FossilOrigin-Name: 20db8124ace5fbfa99035ae28e5c98f4c5fcde00
2004-06-29 11:08:19 +00:00
danielk1977
2b444853e0 Bug-fixes to get the two threadtest C programs working again. (CVS 1756)
FossilOrigin-Name: ffd3312b66e2657c3431eab814aadec254af2403
2004-06-29 07:45:33 +00:00
drh
5fdae7711a Try to get threads working again on Linux. (CVS 1755)
FossilOrigin-Name: a8417cb83e9d070f46e7505f92a95f057b992658
2004-06-29 03:29:00 +00:00
danielk1977
489468cf26 Add a simple test case for inter-process locking. (CVS 1752)
FossilOrigin-Name: b0fcc99d227c061203fb1e0f4583b66723033159
2004-06-28 08:25:47 +00:00
danielk1977
90ba3bd065 A few more comment changes. No code alterations. (CVS 1689)
FossilOrigin-Name: b68b4a4262c2ab60f9a7cc0c206b9db207f86933
2004-06-25 08:32:25 +00:00
danielk1977
f42f25c2c5 Add a comment on the implementation of sqlite3OsLock(). No code changes. (CVS 1688)
FossilOrigin-Name: 084f3fffbdeb1e2b375817ae1111b867c9d32559
2004-06-25 07:21:28 +00:00
danielk1977
e302663615 Add os_test.c. Not activated yet. (CVS 1655)
FossilOrigin-Name: d16b863849d1aa887fe403e25153b1e9df6b837e
2004-06-22 11:29:02 +00:00
drh
da71ce1623 Fix an uninitialized variable. The variable was harmless, but pedantic
error checking in MSVC raised an exception on it. (CVS 1651)

FossilOrigin-Name: afc398c2ca97ff165ea8242a5ffb8b6374b7fa8f
2004-06-21 18:14:45 +00:00
drh
38f8271f81 Changes to allow libsqlite3.a and libsqlite.a to be both linked into the
same program at the same time. (CVS 1621)

FossilOrigin-Name: 2590fffcaa92adc619f7a927d2b5169d8dfef50a
2004-06-18 17:10:16 +00:00
danielk1977
5314c4d7ab Fix a couple of gcc warnings. (CVS 1615)
FossilOrigin-Name: 960f55f3ecbef4581c8cb7be860023ba10de4e96
2004-06-18 06:02:35 +00:00
drh
a285422922 Documentation updates in preparation for the release of version 3.0.0. (CVS 1613)
FossilOrigin-Name: 9fb29f7331254b601b71f0fe7d77f91915272dc7
2004-06-17 19:04:17 +00:00
danielk1977
369f27eb51 Minor bugfixes and test case adjustments for version 2 test cases to work
with version 3. (CVS 1598)

FossilOrigin-Name: e21a181376d4115c7dbe614f3f8a1fbf82d77c75
2004-06-15 11:40:04 +00:00
drh
bf9a7e4d4e Add the sqlite3OsFileModTime() interface. But it is still unused. The
change counter in page 1 is always incremented. (CVS 1594)

FossilOrigin-Name: 186c6f93e12978907c5f0ff81d90bdf7367b9274
2004-06-15 00:29:03 +00:00
danielk1977
962398d395 Ensure master journal file is deleted when a transaction is committed. (CVS 1586)
FossilOrigin-Name: cb3cbe00be9a42e974688016a056053cedb55eef
2004-06-14 09:35:16 +00:00
drh
3cde3bb0da Bug fix in the unix locking code. (CVS 1574)
FossilOrigin-Name: dcad244f58453d23f2bcb749dcea077434bbd08c
2004-06-12 02:17:14 +00:00
drh
a6abd04193 Fixes to the file locking. 109 tests are now failing. (CVS 1548)
FossilOrigin-Name: dc0763455bbf54c1d8728e16033709caedd6e1c6
2004-06-09 17:37:22 +00:00
drh
b3e043463d Do not require a RESERVED lock when transitioning from SHARED to EXCLUSIVE. (CVS 1542)
FossilOrigin-Name: 4dfdea7373f3471d17498da3d6c3aaf926a72d4b
2004-06-08 00:47:47 +00:00
drh
2ac3ee9787 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)

FossilOrigin-Name: 0c2d169cf3c0f36972015c952a2b46cb9a333881
2004-06-07 16:27:46 +00:00
danielk1977
9eed505701 Defer the exclusive db lock until the pager cache is flushed to disk. 41
tests now fail. (CVS 1528)

FossilOrigin-Name: d2f69e5ef2f261a00bb8427a4e2a1638ecfd17a9
2004-06-04 10:38:30 +00:00
danielk1977
13adf8a071 Untested updates to support atomic multi-file transactions (CVS 1526)
FossilOrigin-Name: d57e5252c8baaf615c2cd218a33356ea5d95a5e2
2004-06-03 16:08:41 +00:00
danielk1977
ecb2a9644b Fix a segfault in sqlite3OsLock() (CVS 1525)
FossilOrigin-Name: 51348b82c4d5801091537b80059d770410774905
2004-06-02 06:30:16 +00:00
danielk1977
9a1d0abed4 Unix version of sqlite3OsLock(). (CVS 1520)
FossilOrigin-Name: 023d1760c1a720632b25c98d14bf521ab91861e2
2004-06-01 14:09:28 +00:00
drh
7906975a0f Remove the OP_SetInsert opcode. (CVS 1443)
FossilOrigin-Name: 18e690e405710c9a8010340c01754bbfa3231fe9
2004-05-22 21:30:40 +00:00
drh
bbd42a6dda Split up os.c into separate files, one for each platform. (CVS 1441)
FossilOrigin-Name: 5c61be1c47ac960fba2a642e69a98436ce1cd725
2004-05-22 17:41:58 +00:00