1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

1193 Commits

Author SHA1 Message Date
drh
1e3af33436 Go back to allocating each page and its header with a single memory
allocation.  This undoes the change of (4409). (CVS 4495)

FossilOrigin-Name: f56c9884be796dee3f267aca6021eb1846d8527c
2007-10-20 13:17:54 +00:00
danielk1977
c4f6f62900 Fix a memory leak that could occur during error-state recovery. (CVS 4457)
FossilOrigin-Name: 3d1d13d1eb5817c22956e6e7792783116a828962
2007-10-03 15:22:25 +00:00
danielk1977
ae72d98252 Add automatic recovery from the pager "error-state". Also add a new error code - SQLITE_IOERR_NOMEM. (CVS 4454)
FossilOrigin-Name: 12eca32a6a3d68d5b20eed03afdffe7599e66014
2007-10-03 08:46:44 +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
667a6c98e9 Fix an undeclared identifier in an IOTRACE (debugging) block. (CVS 4416)
FossilOrigin-Name: 48e59c747f2be08102f16290fa57dfffc2ae920d
2007-09-10 06:12:04 +00:00
drh
334b299462 Base the name of the statement journal on the original database filename.
Remember the statement journal name for the lifetime of the Pager so
that the name pointer passed to xOpen persists as long as the file
exists. (CVS 4410)

FossilOrigin-Name: 44d8d1e92d93a5bb28bd10281b4d87e89586ef58
2007-09-06 23:28:23 +00:00
drh
bf4bca541e Allocate page cache headers and page cache data buffers separately.
The data buffer will be a power of two in size and this gives some
malloc implementation additional optimization opportunitites. (CVS 4409)

FossilOrigin-Name: 2b755defe51a565a2b6ace58381d6e91f6f17db8
2007-09-06 22:19:14 +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
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
65839c6afd Add tests for malloc() failure when the atomic-write optimization is being used. Also fix things so that rollback can occur without a malloc(), even if there is a master journal file. (CVS 4330)
FossilOrigin-Name: 481fd3a89e50e329596d96565170e3d9977aae29
2007-08-30 08:08:17 +00:00
danielk1977
a1644fd863 Modifications to the malloc failure tests to test transient and persistent failures. (CVS 4321)
FossilOrigin-Name: e38ef81b85feb5bff2ad8448f3438ff0ab36571e
2007-08-29 12:31:25 +00:00
drh
d0679edc7a Clean up the locking in the btree logic. (CVS 4316)
FossilOrigin-Name: 967ab229af462a8ae663090ea36b4cc10e351653
2007-08-28 22:24:34 +00:00
danielk1977
84f786fcdd Add some comments and test-cases for the global lru page list (used by sqlite3_release_memory()). (CVS 4308)
FossilOrigin-Name: 0b80168895993af5774369f839f284712d006f0a
2007-08-28 08:00:17 +00:00
danielk1977
9f61c2f129 Modify sqlite3_release_memory() to use a global LRU list of pages. Untested. (CVS 4301)
FossilOrigin-Name: 5626ce0b5e249d48b56fdc4561ef663941eb23dc
2007-08-27 17:27:49 +00:00
drh
ae28c01aa8 Fix bugs in temp database handling introduced by the prevous check-in. (CVS 4288)
FossilOrigin-Name: 300038be9368556a29efce7cf3657fabfe54d8f9
2007-08-24 16:29:23 +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
danielk1977
9663b8f92d Select the default page size for new databases based on the sector-size and IOCAP flags. (CVS 4286)
FossilOrigin-Name: 13dda2e8e879835c21e539ba3ff8f96face1af4c
2007-08-24 11:52:28 +00:00
danielk1977
f55b899824 Add tests to simulate power-failure on devices that support IOCAP_SEQUENTIAL or IOCAP_SAFE_APPEND. (CVS 4284)
FossilOrigin-Name: bdf5cb8d25d93d48220ce46acad2ccf967a87843
2007-08-24 08:15:53 +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
danielk1977
4cd2cd5c69 Add code to reduce rollback journal i/o based on IOCAP flags. As yet untested. (CVS 4278)
FossilOrigin-Name: 595568492e63822caed5b6970542dcee4615dc4d
2007-08-23 14:48:23 +00:00
danielk1977
863c0f9b87 Ensure temporary files are deleted when they are closed. (CVS 4277)
FossilOrigin-Name: cf4e3c158aa71afc91f263a314c2e750d191fb41
2007-08-23 11:47:59 +00:00
danielk1977
f8940aefb6 Add some further tests and a bugfix for the atomic-write optimization. (CVS 4276)
FossilOrigin-Name: 5f0fb894f44069c4aa9b8dba62b4d8a262c991de
2007-08-23 11:07:10 +00:00
drh
ed138fb3bc All of the malloc test cases run. Still seeing failures in malloc4.test. (CVS 4272)
FossilOrigin-Name: 205d0b881d541db65837ce6cf44d58d607635bc2
2007-08-22 22:04:37 +00:00
danielk1977
dd97a49c1a Fix a bug in the logic for journaling pages when the device sector-size is greater than the page size. (CVS 4270)
FossilOrigin-Name: b6399dff1370449912391cc5925bdc468b5dade0
2007-08-22 18:54:32 +00:00
danielk1977
c7b6017c8a Add code for the atomic-write optimisation. Disabled by default. (CVS 4268)
FossilOrigin-Name: 581fadfe31757e3fb97b12f93c1e3c085e4b6009
2007-08-22 11:22:03 +00:00
drh
86f8c197dd Reenable the memory management logic. The quick.test script now runs with
SQLITE_MEMDEBUG and SQLITE_ENABLE_MEMORY_MANAGEMENT. 7 minor errors. (CVS 4265)

FossilOrigin-Name: 1914044b8832041f13b20ead613bd13725425d7a
2007-08-22 00:39:19 +00:00
danielk1977
7a2b1eeb7f Delay opening temporary pager files until they are first written. (CVS 4260)
FossilOrigin-Name: 3fb97a63ef70662abdba18ce8b480e6b0badcfb1
2007-08-21 14:27:01 +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
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
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
b4b47411ab Begin migration to using sqlite3_vfs interface. (CVS 4240)
FossilOrigin-Name: af3e3c7acdc67013dd733effebe981620d922dd1
2007-08-17 15:53:36 +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
8940f4ee56 Backout check-in (4206) and replace it with a much better and more
general fix for the problem identified in ticket #2565. (CVS 4208)

FossilOrigin-Name: 7961a7385013d74ec78cbdfff6867c505528c163
2007-08-11 00:26:20 +00:00
drh
34f5621ff1 Fix some incorrect asserts() in the pager - problems brought to light by
the new soft-heap-limit testing apparatus of check-in (4202). (CVS 4207)

FossilOrigin-Name: 51f3e01b7486f23b67bdfb6bb19fc5297b2c8cec
2007-08-10 23:56:35 +00:00
drh
fdd30b0e46 Fix the corruption problem of ticket #2565 as demonstrated by the test added
in (4204).  There may yet be other instances of similar problems lurking in
the code. (CVS 4206)

FossilOrigin-Name: 7ed2f59e70e0d9a8ad0c47c8c12fae0aaddcedce
2007-08-10 23:54:16 +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
b100391318 Cleanup unused function in pager.c. This is the conclusion of the fix
to ticket #2518. We believe the fix is complete and correct. (CVS 4165)

FossilOrigin-Name: 31dba1e933c523a47fdd007c2c7492133dfe72f2
2007-07-20 00:33:36 +00:00
drh
f85953edd0 Preliminary fix for ticket #2518. Make sure the VACUUM command
increments the change counter. (CVS 4163)

FossilOrigin-Name: 75263797e29af437290c09e85cd5fd2aea08694f
2007-07-19 16:35:17 +00:00
drh
2f9ad1b47d Remove vestigal code from Makefile.linux-gcc. Ticket #2466. (CVS 4133)
FossilOrigin-Name: 338c18791006bac3709410087316700aad3b332f
2007-06-26 22:10:12 +00:00
drh
8ffa817305 Bring the pager_datahash() macro into sync with its function definition.
Ticket #2422. (CVS 4087)

FossilOrigin-Name: ba967bbb62ccf29438db352c573773ae741d0daf
2007-06-18 17:25:17 +00:00
drh
4f0aee41c3 Fix a faulty assert() in the pager. (CVS 4083)
FossilOrigin-Name: 4cff47b06132768e92ba2235cab5c17d1082f8f9
2007-06-16 18:39:41 +00:00
drh
732c817f8b A minor logic correction in the previous check-in. Also added a lengthy
comment describing the meanings of various flags in the 
{quote: PgHdr} structure. (CVS 4080)

FossilOrigin-Name: 57bf8204cde47dfeb31c064f2b128b9a8d94189f
2007-06-16 11:17:45 +00:00
drh
5e3853112a Fix a database corruption problem that can occur in auto-vacuum mode when
a malloc() failure causes a statement rollback, additional statements
are run in the same transaction, then the total transaction rolls back. (CVS 4079)

FossilOrigin-Name: c9dcf2b926c99ff9cee68589f364461ab2a1d11f
2007-06-16 04:42:12 +00:00
drh
477731b52d Additional debugging instrumentation added to the pager. (CVS 4078)
FossilOrigin-Name: dcdb20f81ae923f6f56d75c7b8b89a0b3abff954
2007-06-16 03:06:27 +00:00