drh
52fb8e1945
Faster memory allocation from lookaside by not trying to keep track of the
...
number of outstanding allocations, and rather computing that value only
when requested.
FossilOrigin-Name: a06263f1efd2d45eac88b8d59e8fe8e458670fa3808c795feaa7f247fc36cbe9
2017-08-29 20:21:12 +00:00
drh
b2a0f75c06
Remove the rarely-used scratch memory allocator. This makes the code smaller,
...
faster, and easier to maintain. In place of the scratch allocator, add the
SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite
that large memory allocations should be avoided.
FossilOrigin-Name: 54b000246cfb5c7b8adb61a17357ef5a49adddde9e48e8937834d5ba0beb8a6b
2017-08-28 15:51:35 +00:00
drh
dbd6a7dc06
Split off sqlite3DbFreeNN() from sqlite3DbFree() and use it in cases where
...
we know that the argument to be freed is never NULL.
FossilOrigin-Name: ad90e8bb5e47945607c8fb47b6ade8cfc52a9b684805cc40132629be0ecc14cc
2017-04-05 12:39:49 +00:00
drh
a6bf20b587
Fix an error in the SQLITE_MAX_MEMORY implementation resulting from a bad
...
merge. Update the OSSFuzz interface so that it times out after running
the byte-code engine for 10 seconds.
FossilOrigin-Name: f8560c60d10c0365b33342ab05b5a953987b0471
2017-03-10 17:03:11 +00:00
drh
1e45c7db56
Add the -DSQLITE_MAX_MEMORY=N compile-time option. The default is no limit.
...
FossilOrigin-Name: eabd4ef498a0f0d97d65e321c4d06ab90523ed61
2017-03-10 16:22:40 +00:00
drh
e43d6aee45
Add the SQLITE_MAX_MEMORY compile-time option that provides a hard upper bound
...
on the amount of memory that SQLite will use, per process.
FossilOrigin-Name: 77dfe2abdae88dea81217f352d87e5ba2c822715
2017-03-10 15:55:54 +00:00
drh
d879e3eb8d
Change all legacy instances of "#if SQLITE_DEBUG" to "#ifdef SQLITE_DEBUG" for
...
consistency.
FossilOrigin-Name: 670f10b24230863688270d12ac519609ade2302b
2017-02-13 13:35:55 +00:00
mistachkin
40b84365e4
Typo fixes in comment. No changes to code.
...
FossilOrigin-Name: c09dd5c0befaf5028abfead8114bd74a30ffe5d4
2017-02-08 18:13:46 +00:00
drh
087a29c78b
Always invoke the xRoundup() method of the memory allocator before calling
...
xMalloc().
FossilOrigin-Name: 77b470b0df73dc5ae5ad2f0170ef7c50558c7c88
2017-02-08 16:01:57 +00:00
drh
be7a0cee4e
Fix the build for SQLITE_ENABLE_MEMORY_MANAGEMENT.
...
FossilOrigin-Name: 8c85b8fdd7f0ba65fba83361d361a567b797a184
2017-01-13 12:53:35 +00:00
drh
1d21bac8aa
Avoid unnecessary calls to the xRoundup() method of the memory allocator when
...
the soft heap limit is not set.
FossilOrigin-Name: 4209b89eab01814228a178963238e0dffffad2a4
2017-01-10 16:09:46 +00:00
drh
1aa346950e
Avoid a potential (harmless) signed integer overflow in memory usage
...
accounting when calling sqlite3_realloc() to reduce the size of an
allocation.
FossilOrigin-Name: 2d71cbdf6bc24f0269027c70b39ea7f342436bdb
2016-12-27 12:08:36 +00:00
drh
cee11adaaa
Small size reduction and performance increase in the string duplicator.
...
FossilOrigin-Name: cda998f080cb00779d8c0d1c83d8fe2b74462cd4
2016-10-17 00:48:06 +00:00
mistachkin
fad3039c51
Enhance ability to debug out-of-memory errors.
...
FossilOrigin-Name: 6a9c4a3ebfb7cc0738ef6634440ccab44a21ff28
2016-02-13 23:43:46 +00:00
drh
f5818aa560
Make sure variable declarations occur at the beginning of blocks, even
...
with SQLITE_DEBUG enabled.
FossilOrigin-Name: 2f7778e64d93ef237e23ceac01ea9808df5cf2a1
2016-02-06 19:48:50 +00:00
drh
575fad6500
Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
...
cases where db is guaranteed to be not NULL.
FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh
b84e574c89
Further performance improvements that fall out of the mallocFailed changes.
...
FossilOrigin-Name: d94416ddca8f7ed727dd335d38155ea5945a86b7
2016-02-05 02:42:54 +00:00
drh
4a642b6060
Improvements to the way that OOM errors are processed.
...
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
2016-02-05 01:55:27 +00:00
drh
1da26a48dd
Performance improvement in sqlite3DbMallocRaw().
...
FossilOrigin-Name: ff8eadbed5004ab03438f737492387dee6b9750a
2016-01-20 03:36:32 +00:00
drh
ac536e613a
Move pointer range comparisons into a macro, where they can be dealt with
...
in a more portable way.
FossilOrigin-Name: ad3124c834b080aaaf24934d6f08b3601ac3ae53
2015-12-10 15:09:17 +00:00
drh
56d90be183
Remove an unreachable branch in malloc.c.
...
FossilOrigin-Name: a36b7fe92372a13ff0b6e08f1704496045c6f62a
2015-10-26 12:55:56 +00:00
drh
59a052359d
Remove a superfluous conditional from the memory allocation initialization.
...
FossilOrigin-Name: 9ccf8f8d35723f2a9b59010b6d5f37a14164a188
2015-10-15 17:21:35 +00:00
drh
039ca6ab59
Performance optimizations to the sqlite3MallocSize() by requiring the
...
argument to always be non-NULL.
FossilOrigin-Name: cb65989b0710c65e4df69063b346344fdb1d12c7
2015-10-15 16:20:57 +00:00
drh
b02392e6f0
Change sqlite3StatusSet() into sqlite3StatusHighwater() so that only the
...
highwater mark is recorded. This gives a small size reduction and
performance improvement.
FossilOrigin-Name: 6422d223dd10018703c6b083d29a3c35c837fc97
2015-10-15 15:28:56 +00:00
drh
5fb72e5f3e
No-op the sqlite3_memory_alarm() interface in a different way, that does
...
not break legacy memory behavior. This is a re-do of
check-in [5d3f5df4da9f40d5].
FossilOrigin-Name: 8250e2a487ee12c9a2dea5603ab60aed51e5dc7b
2015-09-10 01:22:09 +00:00
drh
4ef299a32c
The sqlite3_memory_alarm() interface has been deprecated and undocumented
...
for almost 8 years (since version 3.5.3). Change it into a no-op.
FossilOrigin-Name: 5d3f5df4da9f40d5897b5c23b2ea9333fc18ac2c
2015-09-02 14:56:56 +00:00
drh
054bbabc76
Small size reduction and performance increase in sqlite3DbMallocSize().
...
FossilOrigin-Name: 8a80967f849eed002a701235ed7fb406099d566e
2015-09-01 20:09:33 +00:00
drh
01c5c00c12
Preserve the number of requested PAGECACHE pages even if the memory pointer
...
or size is zero. Enhance the pcache1.c header comment to explain the memory
layout of a page cache line.
FossilOrigin-Name: dacb2a615ce1c0573baf4518000454038745cf2a
2015-07-04 18:15:04 +00:00
drh
597d2b6412
Change sqlite3ApiExit() so that its first argument is never NULL.
...
FossilOrigin-Name: 791b706ec6c3e80885666e48e01524f0e9a7557e
2015-06-30 03:13:47 +00:00
drh
22c17b8bf5
Simplifications to error message processing. Fix a possible problem in error
...
message formatting when vacuuming a database with a corrupt schema.
FossilOrigin-Name: 56ef98a04765c34c1c2f3ed7a6f03a732f3b886e
2015-05-15 04:13:15 +00:00
drh
df5e1a00de
Fix the sqlite3_memory_used() and sqlite3_memory_highwater() interfaces so
...
that they really do provide a 64-bit answer.
FossilOrigin-Name: 8a0d5d5e9a4515603c47e9354af47550155a6f2d
2015-05-10 02:01:08 +00:00
drh
592f0cb15e
Avoid leaving the malloc subsystem in a partially initialized state if
...
the low-level initialization callback fails.
FossilOrigin-Name: 3e872011ff5e27738c282f46d2b5803d94fe4b76
2015-03-26 17:04:23 +00:00
drh
af89fe66ea
Add the sqlite3_status64() interface. Make the new interface and the legacy
...
sqlite3_status() both atomic and threadsafe. Check threadsafety using
assert()s.
FossilOrigin-Name: 1ce8e8fa4b866aafa12b1da0eb4d02321af9293e
2015-03-23 17:25:18 +00:00
mistachkin
d425864d33
Fix harmless compiler warnings with MSVC when assert() and SQLITE_MEMDEBUG are both enabled.
...
FossilOrigin-Name: 9513dbd4860c8dd391f831982d09aff227d16f5c
2015-03-21 23:38:59 +00:00
drh
cbd55b0362
Change the definition of SQLITE_CONFIG_SCRATCH so that at most one scratch
...
buffer is used per thread. Use the generic heap memory allocator for the
WalIterator object when running a checkpoint.
FossilOrigin-Name: 391c9b85abcb5ba300fb2e116384639310c69ed2
2014-11-04 14:22:27 +00:00
drh
d231aa3a42
Enhance (and fix) the MEMTYPE tags associated with heap memory allocations
...
when SQLITE_MEMDEBUG is used.
FossilOrigin-Name: ca5b789e33c4e5ce366d8f5372d086442f84e230
2014-10-07 15:46:54 +00:00
drh
8da47419dd
Update to requirements marks related to changes in the memory allocation
...
interface and enhancement of the documentation regarding DEFAULT clauses
in CREATE TABLE.
FossilOrigin-Name: 440705b98a3429b830ea85e71cc1e414bc6d8058
2014-10-03 14:54:47 +00:00
drh
17bcb10299
Add the Mem.szMalloc element to the Mem object and use it to keep track of
...
the size of the Mem.zMalloc allocation.
FossilOrigin-Name: 9c09ac353df6041808cace41880f4729ee73f5e1
2014-09-18 21:25:33 +00:00
drh
20f3df046a
Fix harmless warnings on 32-bit MSVC builds.
...
FossilOrigin-Name: 5192f964b2a85459553f1cea741b9791606ccc4e
2014-09-18 02:20:54 +00:00
drh
3329a63ac5
Fix compiler warnings and change the nullMem structure initializer into a
...
format that MSVC can understand.
FossilOrigin-Name: 163bfae8583b2d3002a3a43d6bf8a66fefd73acb
2014-09-18 01:21:43 +00:00
drh
da4ca9d19c
Add new APIs that take 64-bit length parameters:
...
sqlite3_malloc64(),
sqlite3_realloc64(),
sqlite3_bind_blob64(),
sqlite3_bind_texte64(),
sqlite3_result_blob64(),
and sqlite3_result_texte64().
Internal memory allocation routines also now use 64-bit unsigned length
parameters for safety.
Also add the sqlite3_msize() interface.
Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a
integer overflow problem.
FossilOrigin-Name: 94954850cf2e1ec0b7f590c7f46cdc54c72558ce
2014-09-09 17:27:35 +00:00
drh
b50c65d561
Faster implementation of the sqlite3ApiExit() routine.
...
FossilOrigin-Name: bd41d394d48516eb7d8ddc46abdcb427aa80173e
2014-08-23 20:25:53 +00:00
drh
b4586f1254
Another memory allocator performance optimization.
...
FossilOrigin-Name: 6da6f46d0c43e3b68c21f514ddf8ee663c20f249
2014-08-23 19:42:06 +00:00
drh
3ccd5bf89e
Changes to sqlite3ScratchMalloc() that make the entire memory allocation
...
interface a little faster and about 100 bytes smaller.
FossilOrigin-Name: f83daa16f65ef35062412e88c214852a4aeb3da2
2014-08-23 19:04:55 +00:00
drh
13f40da31d
Split the sqlite3Error() routine into sqlite3Error() and
...
sqlite3ErrorWithMsg(), for a slight size reduction and performance increase.
FossilOrigin-Name: cf561d1f0bb60b3d638632d20bd686dda4fa4a04
2014-08-22 18:00:11 +00:00
drh
b0e7704e9f
Simplify and improve the performance of the sqlite3VdbeMemGrow() routine.
...
FossilOrigin-Name: 48ecf18774ba9572d86696c60d87007a619d9f53
2013-12-10 19:49:00 +00:00
drh
9ccd8659ff
Change the PRAGMA parser to use a binary search for the pragma name.
...
Also: Minor performance enhancement to sqlite3DbFree() and to the
token dequoter.
FossilOrigin-Name: 870c030b4e1854e6e0d39907fadbd82774c16f56
2013-09-13 16:36:46 +00:00
drh
3608f177ba
Make sure lookaside memory allocations are unusable after they are freed.
...
FossilOrigin-Name: 3869aef6348018f584137f36f6924193a790e52f
2012-05-21 16:59:16 +00:00
drh
de0f18154e
Check the return code from sqlite3_initialize() called from within
...
sqlite3_soft_heap_limit64() and return an error from sqlite3_soft_heap_limit64()
if sqlite3_initialize() fails.
FossilOrigin-Name: 676acce274fec692a1eb34d27ee4b1327b4b3334
2011-12-22 17:10:35 +00:00
drh
2e5a422eee
Fix a bug in memory usage tracking that was introduced by
...
check-in [4e33a0eaf83922].
FossilOrigin-Name: 8ba456ae0b3d0c0b6f72f98bd0bc28f72dfa4ff5
2011-05-05 17:00:51 +00:00