Commit Graph

794 Commits

Author SHA1 Message Date
drh
81028a455d The former sqlite3ResetInternalSchema() routine was really two different
routines, selected by parameter, each with a confused mission.  So split
this routine up into three separate smaller routines, calling each
separately as needed.  Hopefully this will make further refactoring and
schema reset collateral damage containment easier.

FossilOrigin-Name: aa0c3493d3647d7efe527067e9fcccefda8e3008
2012-05-15 18:28:27 +00:00
dan
bba02a95d9 When a connection disconnects from a shared-cache database, only delete the in-memory schema if there are no other connections.
FossilOrigin-Name: 46f4eb5430d7bc9a339cdf7124ff4bd518eaa39b
2012-05-15 17:15:34 +00:00
mistachkin
9917a71da0 Merge updates from trunk.
FossilOrigin-Name: 4ab1ffd45d4c25368b9b393a3336068b747d8b22
2012-03-19 23:32:26 +00:00
mistachkin
86f89871b0 Add SQLITE_OMIT_SHUTDOWN_DIRECTORIES compile-time option to disable clearing the sqlite3_data_directory and sqlite3_temp_directory variables during sqlite3_shutdown. Also, only clear the variables if the heap was actually shutdown.
FossilOrigin-Name: 1ae9f9e4f730eccbc0fc3408de1ac3c4be931e01
2012-03-18 01:32:44 +00:00
mistachkin
e4c46aaccd Reset the sqlite3_data_directory and sqlite3_temp_directory variables when the sqlite3_shutdown function is called since they may refer to memory allocated by the heap subsystem that was just shutdown.
FossilOrigin-Name: cd70bc4b788b947d47a7a7158c27028160df06bd
2012-03-16 10:28:40 +00:00
drh
421377e67a Add the sqlite3_db_readonly() interface. This is still tentative, pending
a closer look at other ideas to accomplish the same thing.

FossilOrigin-Name: 254f99ea9ff1534948bdb179e69ab0c940c87ec1
2012-03-15 21:28:54 +00:00
mistachkin
a112d140ae Add experimental support for resolving relative database file paths using a fixed user-defined directory.
FossilOrigin-Name: 7354ae8fd3eccee2cf9f6501da5b1a014c31556f
2012-03-14 00:44:01 +00:00
drh
cd565fd118 Fix a typo in the header comment of sqlite3_commit_hook().
FossilOrigin-Name: 3784d1475b49f24e4a51450edc94aee66fd48fe4
2012-03-01 21:30:44 +00:00
drh
21021a5cbf Add the new SQLITE_ABORT_ROLLBACK extended error code to be returned for
statements that are cancelled due to a rollback.

FossilOrigin-Name: 549f4fd00d8325c10099b100e5202b77ee1d83ad
2012-02-13 17:01:51 +00:00
drh
0f198a7409 Change the ROLLBACK command so that pending statements to not block it. The
pending statements instead return SQLITE_ABORT upon next access.  Note: This
causes separate shared-cache connections in read_uncommitted mode to abort as
well.

FossilOrigin-Name: 9b66c79e054c8a109d1ee8d35fed1c42814c330d
2012-02-13 16:43:16 +00:00
drh
38d9c612ed Futher pedantic fixes to the sqlite3_uri_boolean() interface.
FossilOrigin-Name: 77b3430de69e23ba3feda3d618fe4880dd465023
2012-01-31 14:24:47 +00:00
drh
5dc2bcda7e Make sure large negative arguments to PRAGMA cache_size do not cause
32-bit signed integer overflow.  Also correct a requirements mark.

FossilOrigin-Name: 17c30634a71051158f8d37fd51b3c2a125ad8bd2
2012-01-02 15:45:12 +00:00
drh
b8a45bbdb8 Fix typos in comments. No changes to code.
FossilOrigin-Name: 6827338ecbe43e28da88d919851ebffde9f6d398
2011-12-31 21:51:55 +00:00
dan
d9bb3a9749 Hold the database handle mutex for the duration of sqlite3_db_release_memory().
FossilOrigin-Name: eeaf2988004ff5343be60ab4ba2f809f76c94b51
2011-12-30 11:43:59 +00:00
drh
9291372094 Add interfaces sqlite3_uri_boolean() and sqlite3_uri_int64() which are
wrappers around sqlite3_uri_parameter() combined with internal routines for
converting strings to booleans and 64-bit integers.

FossilOrigin-Name: 83d26b9a9115eadac9e59a33d608bca0ab2519e3
2011-12-23 00:07:33 +00:00
drh
a60ef3d570 Merge the nx-devkit changes into trunk. This includes the new
SQLITE_FCNTL_VFSNAME file-control.

FossilOrigin-Name: da118e02c0576ce16f7a26663f59413316223d55
2011-12-14 18:33:13 +00:00
drh
c7f946297a Change the SQLITE_EXTRA_INIT routine to take a single argument which is a
pointer to a string.  Call SQLITE_EXTRA_INIT with a NULL argument.
Fixes to multiplexor to treat the VFS properly in corner cases.  Fix the
initialization of multiplex3.test.

FossilOrigin-Name: 8e65b9132530e46c62bd1352bfc2e9c29f57af5f
2011-12-13 18:22:38 +00:00
drh
1cdf011da3 Merge the nx-devkit changes into trunk.
FossilOrigin-Name: 03a70c3dae8d912fccd9d72c575dc372b198d238
2011-12-13 15:37:12 +00:00
drh
e5077c1211 When an sqlite3_auto_extension() function fails, report back its actual
error code, not the generic SQLITE_ERROR.

FossilOrigin-Name: ce55f250f56fa3a1ca864f81e9e86f911b981490
2011-12-13 04:08:36 +00:00
drh
9797706c04 Add a compile-time shutdown procedure to be called by sqlite3_shutdown()
to undo the effects of the compile-time initialization procedure.

FossilOrigin-Name: c2ed86f5945662a4ddcdc7b303df3f64fb3bf17d
2011-12-13 01:34:21 +00:00
drh
678a9aa7bd Import the experimental parse-tree explainer, with fixes, from the
tree-explain branch.

FossilOrigin-Name: bcbc7152d49107afa926c8950360c61a6cf3d244
2011-12-10 15:55:01 +00:00
drh
7e02e5e6b5 Begin adding the data-structure explaining subsystem. All is contained within
FossilOrigin-Name: 79ae51c5b1b20ed0a425a87e65a32a096a80b7e1
2011-12-06 19:44:51 +00:00
drh
4dd65e0f0c Removed the unused "type" field from the CollSeq (collating sequence) object.
FossilOrigin-Name: ab89b047e82efdf59ed91a38b5195341a3743cbf
2011-11-29 14:46:56 +00:00
drh
283829cb20 Add the sqlite3_db_filename() interface.
FossilOrigin-Name: 93a947989b57959aacc37007a143fdf3921793ab
2011-11-17 00:56:20 +00:00
drh
09419b4bae Add the sqlite3_db_release_memory() interface and the shrink_memory pragma.
FossilOrigin-Name: 3f58e7c8895d1252eff56282c08b1a6f1194452c
2011-11-16 19:29:17 +00:00
drh
61a4bd5c6c Follow-on to the previous check-in to prevent a division by zero if the
lookahead slot size is something goofy like 6 on a 32-bit machine.

FossilOrigin-Name: 6bda711f93e753dd0be8d896a007b3f7b5064787
2011-11-10 02:39:28 +00:00
drh
8225d66be6 Use sqlite3MallocSize() to get the actual size of the memory allocation
used for lookaside cache and increase the size of the cache to use the
full allocation.

FossilOrigin-Name: 0e53ecad9468d0a13d155a4462551d4c234a7d5c
2011-11-10 02:24:11 +00:00
drh
e73c91496f Minor changes needed to restore full branch test coverage.
FossilOrigin-Name: bc10a753579b65ba4604867204b7b3d8383f3ac7
2011-11-09 16:12:24 +00:00
dan
22e21ff4fc Experimental change to the pcache interface to allow page buffers to be allocated separately from their associated container structures.
FossilOrigin-Name: c275c9d323cb1dccb031b199d413ac3a0b244fea
2011-11-08 20:08:44 +00:00
drh
30ddce6ff4 Added the tool/warnings-clang.sh script. Changes so that there are no
warnings with either gcc or clang even including FTS4 and RTREE and
both with and without SQLITE_THREADSAFE=0.

FossilOrigin-Name: 39408702a989f907261c298bf0947f3e68bd10fe
2011-10-15 00:16:30 +00:00
drh
b07028f71c Add assert() statements and eliminate needless variable assignments in order
to get the clang scan-build utility to report zero problems against the
SQLite core.  Clang's static analysis did find one real problem - but it was
in the command-line shell, not in the SQLite core.

FossilOrigin-Name: 60fee9574b0125705787e33c16f116cf188c8323
2011-10-14 21:49:18 +00:00
drh
cb5e4dbf4e The sqlite3_overload_function() interface returns an error if it is unable
to create the overload function.  Ticket [20f9d4fbbff3a3]

FossilOrigin-Name: d5b6b374c5225d21c386fb3d6507d3938296e759
2011-10-12 23:49:49 +00:00
drh
e4cf0b3106 Add the SQLITE_EXTRA_INIT macro.
FossilOrigin-Name: a3220f36c164dd2edf085c07ea08d617d8438812
2011-08-25 00:14:41 +00:00
dan
c17d696c14 Return an error if localtime_r() fails within one of the date/time functions. Fix for [bd484a090c].
FossilOrigin-Name: 76ae8257efc1df6e20ce5718d4824adbbde423ec
2011-06-21 12:47:30 +00:00
drh
45caededba Hush some harmless compiler warnings in the URI parsing logic.
FossilOrigin-Name: 0206bc6f87bb9393218a380fc5b18039d334a8d8
2011-06-03 14:19:10 +00:00
drh
bd69559bfd Fix an off-by-one error in the new sqlite3_uri_parameter() function.
FossilOrigin-Name: 9593a640795458ce6e57e02dd5d702b642858f76
2011-05-17 19:43:38 +00:00
drh
cc487d13fc Add the sqlite3_uri_parameter() interface function for use in building
new VFSes.

FossilOrigin-Name: 6b5de95fb575c7ceb3034068c4f5e0fccb1b15ac
2011-05-17 18:53:08 +00:00
dan
1943299629 Have flags passed to sqlite3_open_v2() apply to the main and any attached databases. And change things so that any "mode=xxx" or "cache=xxx" options specified as part of a URI for the main database do not also apply to attached databases.
FossilOrigin-Name: 3e490915301216e242a5cdeb0febaff12ed53cb9
2011-05-10 18:39:10 +00:00
drh
de941c3756 Return a suitable error message if the mode= argument to a URI specifies
a higher mode than what is allowed by context.  Other minor cleanups for
the URI parsing logic.

FossilOrigin-Name: d9bc1c7fe0ca5f6973a85827330958f4d09f8171
2011-05-09 19:20:17 +00:00
drh
ffd9668fb5 Set the sqlite3.mallocFailed flag if sqlite3ParseUri fails with SQLITE_NOMEM.
FossilOrigin-Name: ca3797d4967361e31a8a5ce1ce8190b095f3ed4c
2011-05-07 18:40:36 +00:00
drh
5dd72ad6df Return SQLITE_MISUSE from the sqlite3_open_v2() function if the 3rd parameter
is not a valid set of bit-values.

FossilOrigin-Name: 3c926ce0976e765b4c51fcd81d251268ff21a741
2011-05-07 18:18:33 +00:00
drh
522c26fbfb Fix minor compiler warnings.
FossilOrigin-Name: 139eecbe1b072711a36128f1eeb24fc3e3bacc1c
2011-05-07 14:40:29 +00:00
dan
8d7a2d3b45 Remove some unnecessary modifications from the uri branch. Add a test to show that ATTACH only interprets its argument as a URI if the connection was opened with SQLITE_OPEN_URI (or URI interpretation is globally enabled).
FossilOrigin-Name: aa90b943254cf348aa2d23ac05e1895b188e2101
2011-05-06 18:53:27 +00:00
dan
286ab7c2b1 Update comments and documentation associated with new URI parsing code. Add test file e_uri.test, containing tests mapped to documentation regarding URI filenames.
FossilOrigin-Name: 92751788eae082e3104838cb6dd8b9793cb325d1
2011-05-06 18:34:54 +00:00
dan
6d49e25613 Remove some unused code related to URI parsing.
FossilOrigin-Name: 008cd0ef6b504cf4549468f795aa46f8472f0130
2011-05-03 15:09:05 +00:00
dan
3b18a9a334 Allow only "localhost" and "" as authorities in URIs. Do not allow escapes (%HH) in the authority part of a URI.
FossilOrigin-Name: b8a0f1b523d1f31c8e7a102ba4bae5935b07104a
2011-05-03 11:53:20 +00:00
dan
78e9dd2b54 Change the supported URI options to "mode" and "cache".
FossilOrigin-Name: 0a694a0b27e3ce251ce313cb5d19a7637c2fa309
2011-05-03 10:22:32 +00:00
dan
8e98037c1b Test that it is now possible to use different VFSs for two databases attached to a single handle.
FossilOrigin-Name: 2af51f856c6203f836d8bb62b6b79b19554886e7
2011-04-23 19:06:26 +00:00
dan
3a6d8aec2a Have the ATTACH command do URI interpretation in the same way as sqlite3_open() and sqlite3_open_v2() do.
FossilOrigin-Name: 68240e75e87a54cde93352b0ec364d34365a8170
2011-04-23 15:54:54 +00:00
dan
5de1537478 Fix parsing of %00 in uri handling code.
FossilOrigin-Name: 44f0874a95408c75a296964a04eef00341abb94a
2011-04-23 10:12:30 +00:00
dan
cd74b611f4 Add the start of the "uri-filenames" feature.
FossilOrigin-Name: b8a8132e7148a7c90ca1352f20ab71d97b0bc4b0
2011-04-22 19:37:32 +00:00
drh
8b2b2e67fe Fix typos in documentation comments. No changes to code.
FossilOrigin-Name: 9c64b5a99c5251818000e7d655f3a870589b631e
2011-04-07 01:14:12 +00:00
drh
fcd71b6010 Suppress many harmless compiler warnings, mostly signed/unsigned comparisons
within asserts or unused parameters in extensions.

FossilOrigin-Name: 3eeb0ff78d04891b5fd1a3d99a9fb8cfbed77a81
2011-04-05 22:08:24 +00:00
drh
9bbc2e283e Minor comment typo corrections. Simplify an assert. No functional changes.
FossilOrigin-Name: 82c2316240345167a571507d9392dfb6445ef523
2011-04-04 20:40:22 +00:00
drh
c7792fa052 Begin a series of changes designed to reduce the scope and frequency of
invalidating schemas.  Design goals are that the internal schema should
never be deleted out from under a prepared statement that is running and
that all prepared statements should be expired if the schema is invalidated.
At the same time, minimize the number of schema invalidations.  This change
merely revises the sqlite3ResetInternalSchema() function to use -1 as the
wildcard for "all" rather than 0, so that we can reset the main schema
independently of all the others.

FossilOrigin-Name: 6a8ad6e31e0d2b8a5ace38faf0efd805155ee5f3
2011-04-02 16:28:52 +00:00
drh
d7b302bf64 Fix a signed/unsigned comparison compiler warning.
FossilOrigin-Name: c81da6f98d89935442c447a51736e11baf5a7bc1
2011-03-23 22:54:59 +00:00
drh
58ad580ffa Change the xSetSyscall methods of the VFS so that they do not cast object
pointers into function pointers.  Fix other unrelated compiler warnings.

FossilOrigin-Name: e059152adce3a8fb693f082b82b5669a238c8d6f
2011-03-23 22:02:23 +00:00
drh
01c7dc887c Increase the upper bound on SQLITE_MAX_ATTACHED from 30 to 62.
FossilOrigin-Name: 7aaf8772274422f5020fad9eea490e195170720f
2011-03-23 18:22:34 +00:00
drh
e83cafd2f0 Add the ability to enable and disable foreign key constraints and triggers
using calls to sqlite3_db_config().

FossilOrigin-Name: 09e167f9c14625924b17bbb1f292f89ac9ddc93a
2011-03-21 17:15:58 +00:00
shaneh
a6ec892b5b Fix issue with mem5 allocator when min request size is larger thatn 2^30.
FossilOrigin-Name: d7dae06fb2d57ed6b9555b774712f42077ae4155
2011-03-09 21:36:17 +00:00
drh
03e1b40b03 Reserve a range of bits in the SQLITE_OPEN_xxxx bit vector for future
expansion.

FossilOrigin-Name: 9b9046546db5b060e37e7ba01c23bb7e9528d861
2011-02-23 22:39:23 +00:00
drh
383d79ee0b Simplifications to the sqlite3_wal_checkpoint_v2() logic.
FossilOrigin-Name: 652b8835c58fc9d474c9837fc966d8857bec4a91
2011-02-09 03:03:16 +00:00
dan
9c5e3680df Change blocking-checkpoint tests so that they run once using "PRAGMA wal_checkpoint" and once using calls to sqlite3_wal_checkpoint_v2(). Also fix edge cases surrounding the output variables set by wal_checkpoint_v2().
FossilOrigin-Name: 5a4b6652cf3780ffed6fe0fe669e8090b0b71e81
2011-02-07 15:12:12 +00:00
drh
87fa53ee8d Merge in the blocking-checkpoint enhancement, including the new
sqlite3_wal_checkpoint_v2() interface and the
PRAGMA wal_checkpoint(full) statement.

FossilOrigin-Name: bac7342c368a7c4f5f2878e08d9581dcbf57dd58
2011-02-02 16:34:08 +00:00
drh
0b52b7d0cd Update all built-in VFSes to return SQLITE_OK for the
SQLITE_FCNTL_SYNC_OMITTED file-control operation.  Also change the 
xFileControl methods to return SQLITE_NOTFOUND for unrecognized
operation codes.

FossilOrigin-Name: 6f2c72a0f6579db3f40c079436ca40e3e52bd6d9
2011-01-26 19:46:22 +00:00
drh
a4bfd7fde8 Add support for the SQLITE_DEFAULT_FOREIGN_KEYS compile-time option.
FossilOrigin-Name: c959945ab7129b67eb2364befb9bf5cc88a8b0bf
2010-12-09 19:15:17 +00:00
drh
27f9aba18c Merge the checkpoint_fullfsync pragma and the superlock demonstration into
the checkpoint-v2 experimental branch.

FossilOrigin-Name: ebf74015f09fe241c1c6902dc8954f2b59ab41ec
2010-11-19 18:51:31 +00:00
drh
3eb0811457 Add the SQLITE_FCNTL_FILE_POINTER verb to sqlite3_file_control().
FossilOrigin-Name: 4425b0645d0afebe3172201012d501c6992daa38
2010-11-19 14:37:49 +00:00
dan
f2b8dd588d Fixes for SQLITE_BUSY handling in blocking checkpoint code.
FossilOrigin-Name: 4c663a4dcc77e00558edd94f58410605b95db33a
2010-11-18 19:28:01 +00:00
dan
cdc1f049bf Modify the interface to the blocking wal-checkpoint functionality.
FossilOrigin-Name: 72787c010c8944e8fcf9c98aa4482f129142d8e9
2010-11-18 12:11:05 +00:00
dan
a58f26f93f Add experimental command "PRAGMA wal_blocking_checkpoint", which uses the busy-handler to block until all readers have finished in order to ensure the next writer will be able to wrap around to the start of the log file.
FossilOrigin-Name: 7e3fc2c833a5baa08820c499867b6902bdc2ed5a
2010-11-16 18:56:51 +00:00
drh
88404c2a7d Make sure the sqlite3_create_collation() interfaces always return an error
code if they fail.  Ticket [a04e42a3fcacaffa3133436].

FossilOrigin-Name: 6464276ec1c0951a6edc59eb402ca3dd49629a18
2010-10-11 17:58:21 +00:00
drh
f759bb83d4 Further updates to the sqlite3_pcache_methods documentation, plus the addition
of a few evidence marks related to pcache.

FossilOrigin-Name: 34edb54bb03ad4e54f2e4de12d767e6fa8822ba4
2010-09-09 18:25:34 +00:00
drh
4e93f5bf90 Revised documentation for sqlite3_limit(). Added some evidence marks and
assert() statements to verify sqlite3_limit() behavior.

FossilOrigin-Name: 883b9b7441593200def05d8a482bc92d3dc0e96b
2010-09-07 14:59:15 +00:00
drh
9dd55f5187 Fix a discrepancy between the documented behavior of SQLITE_DBCONFIG_LOOKASIDE
and what it actually does.  Also add evidence marks on the DBCONFIG_LOOKASIDE
implementation.

FossilOrigin-Name: f483be441323e1cb91516964cd6ab0edecad4366
2010-09-03 03:32:46 +00:00
shaneh
bd2aaf9ab1 Fix some compiler warnings under MSVC.
FossilOrigin-Name: afdc82a99eba260aed8ae2cca4bcec629f384098
2010-09-01 02:38:21 +00:00
drh
9f129f467e Add evidence mark comments to source code. Add additional information to the
documentation of sqlite3_release_memory().  Fix a minor inefficiency in mem1.c
that was discovered while writing requirements tests.

FossilOrigin-Name: 53b0c03fd33d2d8141fd386de5493fec64456042
2010-08-31 15:27:32 +00:00
drh
75c014c321 Remove the sqlite3BtreeFactor() wrapper routine. All modules now call
sqlite3BtreeOpen() directly.

FossilOrigin-Name: 0900e35348f4b9bf327d6ae2884c4ddbb6345d8d
2010-08-30 15:02:28 +00:00
dan
9508daa929 Add code to allow user-defined searches of r-tree tables. Still largely untested.
FossilOrigin-Name: 782ca3b716ee1ecb0dfb5ab6f21dfd73d41758e4
2010-08-28 18:58:00 +00:00
drh
7b19facf56 Make sqlite3_create_function() a special case of sqlite3_create_function_v2()
in order reduce the number of code paths and simplify testing.

FossilOrigin-Name: 4758d86d57aaafc058c98c8b485eae24e6547588
2010-08-27 18:44:54 +00:00
dan
d2199f0f8d Add the sqlite3_create_function_v2() API, a version of create_function that allows a destructor to be specified.
FossilOrigin-Name: 9a724dfbe822c77e76721abe3443c9cb018bb2e2
2010-08-27 17:48:52 +00:00
drh
badc980afa Refactor the implementation of the scratch memory allocator. Add the
SQLITE_TESTCTRL_SCRATCHMALLOC interface to facilitate testing.

FossilOrigin-Name: a3475ddfbe4526e6e0b334fd1376ee7c31508b80
2010-08-27 17:16:44 +00:00
drh
357b5f97be Change sqlite3_open_v2() to return SQLITE_MISUSE if the combination of bits
in the flags parameter is invalid.  The documentation says the behavior in 
this situation is undefined - the documentation is unaltered by this code 
change.

FossilOrigin-Name: 5e8101c5122336844ea920e6fbdace23e35b931f
2010-08-24 18:07:57 +00:00
dan
a550f2decd In shared-cache mode, do not allow one connection to checkpoint a database while a second connection is reading or writing the same shared-cache.
FossilOrigin-Name: e75b52d156905ce16bedb94f65c01a4640bdfa75
2010-08-02 10:47:05 +00:00
drh
4d9a7bf990 Remote the SQLITE_OMIT_GLOBALRECOVER macro - it is subsumed by
SQLITE_OMIT_DEPRECATED.  Add support to sqlite3_compileoption_used()
for SQLITE_OMIT_WAL.

FossilOrigin-Name: 21a2db908b9eeb7477fc9d8b2b54482db93cd76f
2010-07-07 01:52:31 +00:00
drh
75e876be30 Include the SOURCE_ID value in the log messages output for corruption, misuse,
and CANTOPEN errors.

FossilOrigin-Name: 1727a81fed65bebfea43e0bda271584096d82785
2010-06-23 17:59:51 +00:00
drh
23e35723a7 Add the SQLITE_TESTCTRL_PGHDRSZ verb for sqlite3_test_control() used to get
the size of pcache headers for testing purposes.

FossilOrigin-Name: 5d694f04fecf47ca325e108d463c24f42def55d5
2010-06-10 14:07:40 +00:00
dan
0dc7b74fbe Add an English language error message to corresponding to SQLITE_PROTOCOL. "locking protocol".
FossilOrigin-Name: ca327e32cfe1633f2c9d3f058e411f108aaa2b3c
2010-06-04 15:59:58 +00:00
drh
f83dc1ef3f Remove global variables when compiled with SQLITE_OMIT_WSD
FossilOrigin-Name: dd10a547f10364058025c48b28d8fd240bf46aff
2010-06-03 12:09:52 +00:00
drh
f53303573a OOM errors during an auto-checkpoint are benign.
FossilOrigin-Name: 3d252ce5d0d843e4e65beed672598e65c5745129
2010-05-24 20:27:44 +00:00
drh
5def0843f1 Change the behavior of the sqlite3_wal_hook() callback. It should now return
SQLITE_OK or an error code and the error code is propagated back up the 
stack.  If a checkpoint is desired, the callback should invoke
sqlite3_wal_callback() itself.

FossilOrigin-Name: 1b14195e05fe5551992a39246ec3bcf6a33bbfac
2010-05-05 20:00:25 +00:00
dan
af0cfd366a Have sqlite3_wal_checkpoint() handle a zero-length string in the same way as a NULL pointer. Fix "PRAGMA wal_checkpoint" so that it checkpoints all attached databases.
FossilOrigin-Name: 7fecd21f45b9ce773ffbcef6c84066474e8cd01c
2010-05-03 15:58:50 +00:00
dan
6fcff07f6a If the sqlite3_wal_checkpoint() API is passed a NULL pointer in place of a database name, attempt to checkpoint all attached databases.
FossilOrigin-Name: 27a5c09ce8a35039d844d08cfe5698e8b438abfe
2010-05-03 14:05:43 +00:00
drh
b033d8b9dc Make sure the mutex is held while calling sqlite3ApiExit() in
sqlite3_wal_checkpoint().  Other cleanup of WAL logic.

FossilOrigin-Name: 11a85b821abff1ecb7ec8c37bc7783be9fc4ea6d
2010-05-03 13:37:30 +00:00
dan
87c1fe1b69 Have sqlite3_wal_checkpoint() populate the database handle error message and error code (as returned by sqlite3_errmsg() and sqlite3_errcode()).
FossilOrigin-Name: ff234cf574c7ae384ab1ebc79b2171ef0541bc91
2010-05-03 12:14:15 +00:00
dan
5a299f9134 Add the "PRAGMA wal_autocheckpoint" command. Rename "PRAGMA checkpoint" to "PRAGMA wal_checkpoint".
FossilOrigin-Name: 714e5947264571386f966aa8fcdd5607b5832238
2010-05-03 11:05:08 +00:00
dan
586b9c8a94 Add the sqlite3_wal_checkpoint() and sqlite3_wal_autocheckpoint() APIs.
FossilOrigin-Name: 9803196dec85e3aa4105cc477e9cfe98d370e486
2010-05-03 08:04:49 +00:00
dan
5cf53537a8 Support compile-time option SQLITE_OMIT_WAL, for building without WAL support.
FossilOrigin-Name: 9b230c43dfa112e3e1589f9775926807bd36b36e
2010-05-01 16:40:20 +00:00
drh
7ed91f2344 Refactor wal.c to use the VFS. This check-in compiles and links and works
ok as long as you leave WAL turned off, but WAL does not work.

FossilOrigin-Name: 62db5fa3b61be885b2d94e9b9ce3877b2c588350
2010-04-29 22:34:07 +00:00
drh
833bf968e3 Rename the sqlite3_log_hook() to sqlite3_wal_hook(). Added comments to
wal.h.

FossilOrigin-Name: bbc385111b19071e20fe963fab814262c815b3e9
2010-04-28 14:42:19 +00:00
dan
8d22a17411 Add the sqlite3_log_hook() interface for scheduling checkpoints.
FossilOrigin-Name: 9bda601455705475075e33bfa85687bce34b15ff
2010-04-19 18:03:51 +00:00
drh
c633908199 Wrap all automatic index changes inside SQLITE_OMIT_AUTOMATIC_INDEX. Add
the automatic_index PRAGMA to turn it on and off.

FossilOrigin-Name: a811a47fbe4f757a7ab575ae5a0f65177a3f07c0
2010-04-07 16:54:58 +00:00
dan
b7dca7d733 Modify the vdbe so that the comparison operator opcodes do not modify the data type of operands. Fix for [aa92c76cd4].
FossilOrigin-Name: 8858042fa1449516a2c7dbb991dca3eb6c5794cb
2010-03-05 16:32:12 +00:00
drh
af46dc12f7 Add testcase() macros beside each sqlite3_log() call to make sure it is
tested with both logging enable and disabled.

FossilOrigin-Name: 1168763d2cd96acfa0488198e8bc82f0c4fa35a3
2010-02-24 21:44:07 +00:00
drh
380083ce18 Merge the compile-time option introspection interfaces into the trunk.
FossilOrigin-Name: 9f429434c0404f03a3e5c6741b769afe98a5c6c9
2010-02-23 20:32:15 +00:00
drh
413c3d36a2 Continuing improvements to error reporting and the sqlite3_log() routine.
FossilOrigin-Name: edea3bb740ddd096a46e00678b59d465bb1e2903
2010-02-23 20:11:56 +00:00
shaneh
dc97a8cdc1 Refactored compile time option diagnostic support to use strings identifiers instead of bitmask.
FossilOrigin-Name: 76a0294ab4208a0858a13bab0858e1bc1448b651
2010-02-23 20:08:35 +00:00
drh
9978c97ec5 Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging
output for CORRUPT, and CANTOPEN errors.

FossilOrigin-Name: 7c4cca6d1a23a6d1591b62f58c3716a944969947
2010-02-23 17:36:32 +00:00
shaneh
ca07b9df47 Removed checking of some compile options from the sqlite3_compileopts() API.
FossilOrigin-Name: 833da702ff9bd99d62640756d80e094256efff5c
2010-02-23 05:17:51 +00:00
shaneh
bdea6d1368 Test new api to report which options (defines) were used to compile SQLite.
FossilOrigin-Name: 84c9756993caf82710a0905ed1987d144bc764fd
2010-02-23 04:19:54 +00:00
drh
3f28070109 Add a new, experimental logging interface designed to aid in debugging of
deeply embedded projects that use SQLite.

FossilOrigin-Name: 103321e37ae46eacfad4e127d13477ad5dd02bab
2010-02-18 18:45:09 +00:00
drh
855787a1b3 Fix a bug in the new sqlite3_test_control case of the previous check-in.
FossilOrigin-Name: 3b77701bc854997346e9cc33fe64d00d4b6332bd
2010-01-02 03:46:43 +00:00
drh
0e857739c4 Add a new sqlite3_test_control() verb that facilitates testing that all
keywords are shown in the documentation.  (Two keywords were found to
be missing while testing the change.)

FossilOrigin-Name: d3cdc4b12be7f1ed2249ad210482200868956d12
2010-01-02 03:21:35 +00:00
drh
07096f68ae Move the query flattener turn-off from a pragma to an sqlite3_test_control()
call.  Make provisions (not yet implemented) to turn off other optimizers
using the same call.

FossilOrigin-Name: 4a97c623f4e190134de4b2ca406e311034a74797
2009-12-22 23:52:32 +00:00
drh
d68eee04b4 Extensive edits to the comments in the sqlite.h.in source file to identify
testable statements of truth about the C-language interface.

FossilOrigin-Name: ea884e1ed8dba1aa0f3cf68fc71923954983f6c6
2009-12-11 03:44:18 +00:00
drh
1860e3f98f Remove "const" from parameter of sqlite3BtreeFactory() to avoid a compiler
warning.

FossilOrigin-Name: eb7a544fe49d1626bacecfe53ddc03fe082e3243
2009-11-04 13:30:01 +00:00
drh
75f8d8be1a All SQLITE_MAX_VARIABLE_NUMBER to exceed 32767. The sizes of some structures
increase when the compile-time parameter is configured this way.

FossilOrigin-Name: 16a24b4485420bdf30d3c8e22cfbaf008e07df02
2009-11-03 01:22:07 +00:00
dan
937d0dea4f Add the experimental sqlite3_reoptimize() API.
FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
2009-10-15 18:35:38 +00:00
dan
1da40a381f Check in implementation of foreign key constraints.
FossilOrigin-Name: d5d399811876391642937edeb9e8434dd9e356f5
2009-09-19 17:00:31 +00:00
drh
f4cfac9d63 Bug fix in the SQLITE_OPEN_PRIVATECACHE option added a few minutes ago.
FossilOrigin-Name: f3a0f23bc77f8c73924f1d371afae9a0f65bae67
2009-09-09 15:29:41 +00:00
drh
f1f12688d8 Added SQLITE_OPEN_SHAREDCACHE and SQLITE_OPEN_PRIVATECACHE flags as
possibilities to sqlite3_open_v2(), to override the global shared
cache mode setting.  Ticket [9fd0bc36639c15]

FossilOrigin-Name: f509eb8b488bb39deda4ca88f66ed40c6784af02
2009-09-09 14:17:52 +00:00
drh
417168ade2 Add the SQLITE_LIMIT_TRIGGER_DEPTH option to sqlite3_limit().
FossilOrigin-Name: d7dc8b433691745b3842282569f1573d1e057963
2009-09-07 18:14:02 +00:00
shane
cea72b2dc2 Warning cleanup from the MSVC compile.
FossilOrigin-Name: 26cd015c0ee1c18dd37f11b47ce35cfa320b3514
2009-09-07 04:38:36 +00:00
dan
5e1a278879 Fix a problem in main.c. SQLITE_NoRecTriggers -> SQLITE_RecTriggers.
FossilOrigin-Name: 5ac69ed608affb4104b4665560a3a490ea5af217
2009-09-01 17:28:29 +00:00
dan
5bde73c4eb Change "PRAGMA disable_recursive_triggers" to "PRAGMA recursive_triggers". Also a fix for compiling with OMIT_TRIGGER defined.
FossilOrigin-Name: e016cca36390451d5d1c6e0d1b3cdbd6d869be1a
2009-09-01 17:11:07 +00:00
dan
65a7cd1631 More fixes and comment updates.
FossilOrigin-Name: 38a9327bad1a01e3d7a47fad44ece2f6c7e88643
2009-09-01 12:16:01 +00:00
dan
76d462ee78 Fixes for new triggers scheme.
FossilOrigin-Name: 9eb91efda5241609ff18ff15ef5eaa0e86788eab
2009-08-30 11:42:51 +00:00
drh
f8d4e8bd3f Set the "type" correctly of built-in BINARY collating sequences for UTF16.
FossilOrigin-Name: 167644f33c949b532655c2297aedf13f93876396
2009-08-20 02:49:30 +00:00
dan
3d6e060b48 Move error simulation code from the sqlite3_os_init() functions into a wrapper.
FossilOrigin-Name: 67ad21abf88abb7a3e2eacddcaf1ab5d54149807
2009-08-17 15:52:25 +00:00
dan
e1ab219309 Add tests to check that sqlite recovers from an error in sqlite3_initialize() correctly.
FossilOrigin-Name: 904a371c6c9d3f20332b37767b06161fa0a78113
2009-08-17 15:16:19 +00:00
drh
9ac06509f1 Enhanced documentation and minor code tweaks in preparation for hardening
the sqlite3_initialize/shutdown interfaces against initialization failures.

FossilOrigin-Name: 98c49e6135ae6268a80de88f8b0284f88ef32e1d
2009-08-17 13:42:29 +00:00
drh
47baebc2a6 Incorporate fossil-scm version information into the build. Add the
SQLITE_SOURCE_ID macro to the header.  Add the sqlite3_sourceid() interface.
Add the sqlite_source_id() SQL function.

FossilOrigin-Name: 302dabe98f50b472bccd65c58504bc8a330049c4
2009-08-14 16:01:24 +00:00
drh
dfc926410e Always provide a name for the TEMP database even if SQLite is compiled using
SQLITE_OMIT_TEMPDB. (CVS 6908)

FossilOrigin-Name: 0ba17c04834c0a44c8690169c0096c1d9cf325e4
2009-07-20 11:32:03 +00:00
drh
c046e3edeb Added the SQLITE_TESTCTRL_RESERVE option to sqlite3_test_control().
Simplifications to btree.c to facilitate structural coverage testing. (CVS 6894)

FossilOrigin-Name: cfbeda1b3126503e9631471ce4713e25b007859f
2009-07-15 11:26:44 +00:00
drh
9ed7a9953e Remove the priorNewRowid field from the sqlite3 structure. Use the
last_insert_rowid as the initial value when searching for a new random
rowid in the OP_NewRowid opcode. (CVS 6824)

FossilOrigin-Name: 96729b2d499f029bfaec6648a592e8ec697d9521
2009-06-26 15:14:55 +00:00
drh
4c8555fd47 Improved handling of oversize string and blob errors. Other simplifications
in support of full coverage testing. (CVS 6813)

FossilOrigin-Name: 8b34076668f0f712de0fbbe9bc2e68d42797e1b2
2009-06-25 01:47:11 +00:00
drh
8bfdf72136 Reorganize and cleanup the prepared statement object. Remove code that has
been commented out for ages and is no longer relevant to anything. (CVS 6786)

FossilOrigin-Name: 37ae5f5e8feb34a8e6e8b34aa18df1e9a1ce55cb
2009-06-19 14:06:03 +00:00
drh
6860da015f Remove the actual checks that verify that memory pools (such as set up
using SQLITE_CONFIG_HEAP) are 8-byte aligned.  But document that 8-byte
alignment is required. (CVS 6742)

FossilOrigin-Name: e9b55ccc8b6d4f21c9c8f8e7ba053475833fc833
2009-06-09 19:53:58 +00:00
drh
39bf74a288 Require that the buffer specified by SQLITE_CONFIG_HEAP be 8-byte aligned. (CVS 6739)
FossilOrigin-Name: 18b78068cc94de51f081824c93f7b14c7c35726d
2009-06-09 18:02:10 +00:00
shane
cf6973963a Fix compiler warnings with MSVC build. (CVS 6699)
FossilOrigin-Name: 0791588520603d106aa0b8ce24d68b740b7b80c8
2009-06-01 16:53:09 +00:00
drh
b093719a17 Make sure sqlite3_shutdown() completely disables the default pager cache
mechanism in pcache1.c.  Ticket #3872.  Also fix some comments associated
with configuring the page cache. (CVS 6668)

FossilOrigin-Name: 6240992cef5cb867d7a638f1906d05aa8efd0652
2009-05-22 10:53:29 +00:00
drh
7aaa878619 Updates to the extension loading logic to support full coverage testing. (CVS 6659)
FossilOrigin-Name: 929cfbc66f6e2ea6b44417305d0f4ae36567c9bf
2009-05-20 02:40:45 +00:00
drh
b25a9f4618 Make sure the SQLITE_OPEN_EXCLUSIVE flag is ignored by sqlite3_open_v2().
That flag is to be used by the VFS interface only.  Ticket #3855. (CVS 6629)

FossilOrigin-Name: c37f0279ebfaf76b4086e6d16b6e12633424c27d
2009-05-12 13:35:11 +00:00
drh
c4a64facce Rework the logic that generates a schema for tables created using
"CREATE TABLE ... AS SELECT ...".  Instead of trying to copy the raw
datatype string from the right-hand side, just make the type one 
of TEXT, INT, REAL, NUM, or nothing.  This is much simpler than 
trying to parse and quote datatype strings.  Other minor 
implifications to build.c are bundled with this change. (CVS 6626)

FossilOrigin-Name: 33cf83591e6e13875ef6ada5b8ac8ab07619d8bc
2009-05-11 20:53:28 +00:00
drh
f3af63f941 Add the SQLITE_TESTCTRL_ASSERT and SQLITE_TESTCTRL_ALWAYS codes for the
sqlite3_test_control() interface. (CVS 6623)

FossilOrigin-Name: 38df91c2edebee22d02b5f84260ee9e5e14db48e
2009-05-09 18:59:42 +00:00
drh
dff6c173dd Change the sqlite3_create_function() family of routines to return
SQLITE_MISUSE instead of SQLITE_ERROR if their parameters are incorrect. (CVS 6617)

FossilOrigin-Name: 866f13e28c6fdb98947e1c7a89b7855bb5bbdb96
2009-05-07 13:43:49 +00:00
drh
b2f9efc3f0 Fix compiler warning found with gcc -Wextra. (CVS 6614)
FossilOrigin-Name: 93bdbc5e2f9771a30358cde03f0d3cb708d73d48
2009-05-06 19:03:13 +00:00
shane
60a4b53823 Changes to silence compiler warnings under MSVC. (CVS 6613)
FossilOrigin-Name: df599237e1ca8b4f361477a712cf761aa1fac3df
2009-05-06 18:57:09 +00:00
drh
dee0e404d6 Changes to facility full coverage testing of util.c. (CVS 6597)
FossilOrigin-Name: a612299092a48b38c5f9cf430bbcaf41777cbcb3
2009-05-03 20:23:53 +00:00
drh
e61922a6a1 Remove the aFKey hash table, which was not being used. Simplify the
FKey object.  Simplify the hash.c module since the copyKey parameter
formerly used only by aFKey is now no longer required. (CVS 6594)

FossilOrigin-Name: 80c43a355c6e482457abc2f9c3ad3a565cec55fb
2009-05-02 13:29:37 +00:00