1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00
Commit Graph

6337 Commits

Author SHA1 Message Date
drh
083310dfcc Change the weighting of binary searches on tables to 1/10th the cost of a
search on an index.  Change the assumed reduction in search space from a
indexed range constraint from 1/3rd to 1/4th.  Do not let the estimated 
number of rows drop below 1.

FossilOrigin-Name: 4847c6cb71423248b186ab7842b97c83e2f5fefd
2011-01-28 01:57:41 +00:00
drh
b966194a63 Change the cost estimator in the query planner to take into account the
logN rowid lookup cost when going from an index to a table.

FossilOrigin-Name: b442525b0ba642bb8d57b87b7b9e373b6046454a
2011-01-24 15:11:23 +00:00
drh
534230cf2e Add the ability to use indices for constraints of the form "x IS NOT NULL"
when sqlite_stat2 is available and most entries for column x are NULL.

FossilOrigin-Name: 5d5bddd290e71a7b03bcc23ff29881c23233cbff
2011-01-22 00:10:45 +00:00
drh
5ac0607169 Adjustments to the result row estimator for the IN operator so that it gives
the same estimates as the equivalent OR operator.  Test cases for the same.

FossilOrigin-Name: c82cb9c028b3ba5463ae50c30196dbf157a7a305
2011-01-21 18:18:13 +00:00
drh
0c50fa0f61 Make use of histogram data to make better estimates for the number of rows
that will be returned from "x IN (v1,v2,v3,...)" constraints.

FossilOrigin-Name: fd3977a27ae68e694df12a4713e55515c1e87c5d
2011-01-21 16:27:18 +00:00
drh
9b3eb0adc1 Add the ability to use indices when a range contraint is bounded on
the lower end by NULL.

FossilOrigin-Name: f73a167b434fadcbbd15e3891c4b7f4f87f6363c
2011-01-21 14:37:04 +00:00
drh
82759754ce Use histogram data to improve the row-count estimates on equality constraints.
FossilOrigin-Name: 6bfc5c69eb22938972bbf4e60179952dc215f770
2011-01-20 16:52:09 +00:00
drh
e847d3247f The first of a planned series of enhancements to the query planner that
enable it to make better use of sqlite_stat2 histograms when the table
has many repeated values.

FossilOrigin-Name: 2cd374cd23fa2fd38f49090d6eeb9b1e521d51d5
2011-01-20 02:56:37 +00:00
drh
3a5676ce26 Comment improvements in pcache1.c. No changes to code.
FossilOrigin-Name: 9660a0a22547656cc3765b673d0cee9e1dd829ef
2011-01-19 21:58:56 +00:00
drh
40f9837ff6 Do not use SQLITE_MUTEX_STATIC_MEM2 since it has been reused as STATIC_OPEN.
Instead, create a new static mutex STATIC_PMEM which is an alias for the
unused STATIC_LRU2.

FossilOrigin-Name: f1cf02efcb3a871fef49f8b5f41bcf07622a6d29
2011-01-18 15:17:57 +00:00
drh
9f8cf9da27 Here is a completely new implementation of the mutex-free-pcache. This
one uses a common code base and automatically selects whether or not to 
use mutexes depending on compile-time and start-time options.

FossilOrigin-Name: d094a1bfb7569a52b637fe9ba5d3fa6ce5ea6d94
2011-01-17 21:32:24 +00:00
drh
eee50ca5a7 Fix a typo in the documentation for sqlite3_stmt_readonly().
FossilOrigin-Name: 56417a3386fc84dd36bf1488e88149b1ac6a0d02
2011-01-17 18:30:10 +00:00
drh
602acb4871 Add the SQLITE_OMIT_AUTORESET compile-time option which if enabled causes
the sqlite3_step() routine to return SQLITE_MISUSE if it is called after
it has previously returned anything other than SQLITE_ROW, SQLITE_BUSY, or
SQLITE_LOCKED.

FossilOrigin-Name: 053ce76deb356d31358454507ba94947142e20ca
2011-01-17 17:42:37 +00:00
drh
c5aae5c90b Add back an ALWAYS() to regain full test coverage.
FossilOrigin-Name: b93f6f3e679c7710f42580a8dd9ce43136376c1d
2011-01-17 02:24:12 +00:00
drh
c6aed5424b On a backup from a smaller to a larger page size, do not begin committing
the transaction until the source pages after the pending byte have been
copied.

FossilOrigin-Name: 612e2599d3e1a17c268402fce018a53dee6dffe1
2011-01-16 22:37:09 +00:00
drh
d40d7ec78b Make sure the change-counter and SQLite-version fields of the header are
set correctly even when doing a VACUUM with locking_mode=EXCLUSIVE.
Ticket [5d863f876ee9561b].

FossilOrigin-Name: 04fa1e16905183b948ee6456675799a873d5f97d
2011-01-16 00:56:19 +00:00
drh
54a7347aa1 Fix the change-counter increment for WAL pages so that it works even when
invoked from xStress.  Ticket [5d863f876ee9561b95e2].

FossilOrigin-Name: 228e7c34c64114670fe015747d47fdaa3b7e1270
2011-01-15 18:11:12 +00:00
drh
104a7bba8c Increment the change counter and update the SQLite version number whenever
page 1 is added to the WAL.  Ticket [5d863f876ee9561b9]

FossilOrigin-Name: c1e0d09cd3f5feae123468a35f147021d839641c
2011-01-15 17:12:59 +00:00
drh
94e7bd55bd Fix comments, including some documentation comments, in the page cache
logic.  No code changes.

FossilOrigin-Name: c80e9c1a0dc0e501b209874e147e1cb1348cb4a4
2011-01-14 15:17:55 +00:00
dan
47e909bb15 Fix a bug in test code (test_vfs.c).
FossilOrigin-Name: 772a3845f8ef5cd3131992c45f6ce607977820f3
2011-01-14 11:51:28 +00:00
drh
5b3696e8a6 Fix a typo on the sqlite3_open_v2() documentation.
FossilOrigin-Name: b0add45abc9929c5b8d1124879bc3e8acf2ab7c7
2011-01-13 16:10:58 +00:00
drh
efd95a7aca Do not raise an SQLITE_CORRUPT error in Recoverymode
if the database size in the header is larger than the physical file
size.  This facilitates recovery of a database in which the database size
field has been corrupted.

FossilOrigin-Name: 114640d920e16c85de90b19d53c485135875de5b
2011-01-12 17:56:26 +00:00
dan
da56b15e95 Merge accidentally created fork.
FossilOrigin-Name: b7d080b8e850bd262f53f29ba4687a62cf76d4ef
2011-01-11 17:40:30 +00:00
dan
354bfe0363 Add the SQLITE_FCNTL_SYNC file-control.
FossilOrigin-Name: b3f2f465c310a2cfef8731a0dae3453593b68de9
2011-01-11 17:39:37 +00:00
drh
ca94d8bf82 Change the page size of the destination database in a backup, if it is
changeable, prior to starting the backup.

FossilOrigin-Name: a5e4e0caad788318bc973e2550488a3b83128b8b
2011-01-11 17:38:03 +00:00
dan
9f4beedb6f If a rollback is attempted in journal_mode=off mode, force SQLite to discard the contents of the pager cache before processing any subsequent queries.
FossilOrigin-Name: ece7efce2733b4fdd71db385abebbde464ac8f30
2011-01-11 16:09:55 +00:00
drh
444d26065e Update pager requirements to accound for the ZIPVFS extension.
FossilOrigin-Name: d94e59b514c16c5f7ea506e0af1c6e2ffecc13be
2011-01-10 21:01:10 +00:00
drh
2e5de2f2b3 Reorder the fields in private structures in an effort to reduce alignment
gaps and thus make the structures smaller, and to put frequently accessed
fields first.  Also update some obsolete comments.  Valgrind shows a very
slight performance improvement.

FossilOrigin-Name: 378a1d13af4a6f4cb2bfa65944b3b0d444b9f21c
2011-01-07 02:50:40 +00:00
drh
db26d4c9e1 Add the sqlite3_vsnprintf() interface.
FossilOrigin-Name: fc67adea414320e0c0b24054f76070cfaeebb401
2011-01-05 12:20:09 +00:00
drh
65a0ce16aa Fix a null-pointer dereference that can occur on an OOM error while running
ANALYZE with SQLITE_ENABLE_STAT2.

FossilOrigin-Name: 73128d4ef5d7703bf7af0553c307b55dc1b783f6
2011-01-04 20:06:33 +00:00
drh
4856698fa5 Fix the ANALYZE command so that it takes collating sequences into account
when gathering index statistics.

FossilOrigin-Name: a5867cfc4c9b9155fa345247dec29e38fffa8002
2011-01-04 19:01:26 +00:00
drh
8e93b10a4e The ANALYZE command now counts at all rows of an index, even those containing
NULL values.  A valid sqlite_stat1 entry is created even if the index contains
nothing but NULLs.

FossilOrigin-Name: 824c8dd3015bbd5c8a1dd661cfe09fe5bf7a80d3
2011-01-04 17:57:53 +00:00
dan
b29010cd4f Have testfixture invoke C routine Zipvfs_Init() when creating a new interpreter if SQLITE_ENABLE_ZIPVFS is defined.
FossilOrigin-Name: 430635dacfa818e8266a88214aaf60c77862de1c
2010-12-29 18:24:38 +00:00
dan
72903821e3 Fix some off-by-one errors in the comments for API functions create_function() and value_blob(). No changes to code or tests.
FossilOrigin-Name: 7ded90baeb75db5af83345cd2c31211cbee1e91b
2010-12-29 10:49:46 +00:00
drh
b469f46083 Do not include <sys/mmap.h> if SQLITE_OMIT_WAL is defined.
FossilOrigin-Name: b82e85ece94c8e25c1dc3251f5444a295fbf8c89
2010-12-22 21:48:50 +00:00
drh
2a58e9cc32 Add test cases for the new lookaside hit and miss status outputs. Add
the output of lookaside hit and miss to the command-line shell statistics.

FossilOrigin-Name: b0888047bb6d9ac55e29b9224df2ff650728bb78
2010-12-21 21:28:38 +00:00
drh
e0a55f443b Merge into the trunk the experimental enhancements to sqlite3_db_status()
for measuring lookaside memory allocator performance.

FossilOrigin-Name: 8c3b06c299554759b67437e09ee7ef6420dacafc
2010-12-21 20:36:45 +00:00
drh
29ecd8a077 Rearrange a variable declaration in the proxy locking code to avoid a harmless
compiler warning on recent MacOS versions.

FossilOrigin-Name: 39bbd35599e735b32f7ed18143073165b805dd98
2010-12-21 00:16:40 +00:00
drh
08bd9f83ce Clarify the documentation of the SQLITE_STATUS_MALLOC_COUNT parameter to
sqlite3_status().

FossilOrigin-Name: 3b41bcc3e36a9ef0146bc2f6ae86377bd1700afd
2010-12-20 17:00:27 +00:00
drh
0b12e7f860 Add additional DBSTATUS options for measuring the hit and miss rates against
the lookaside memory pool - information useful in tuning the lookaside size.
Currently experimental pending analysis of performance impact.

FossilOrigin-Name: 34613f1dc54c638531ca2f5907b71fbe8841233e
2010-12-20 15:51:58 +00:00
drh
9c88d68988 Add the "-heap" option to the command-line shell - to allocate a fixed heap
for use with SQLITE_ENABLE_MEMSYS5.

FossilOrigin-Name: 74fff692345fed4b247e2b34c1e63b4d50cddfd4
2010-12-17 14:03:01 +00:00
drh
cd2f58b374 Fix minor typos in the sqlite3_backup documentation.
FossilOrigin-Name: df430be59d0766a34a94ab85fec9aa3c3baeb740
2010-12-17 00:59:59 +00:00
drh
230bd63011 Improvements to the documentation for sqlite3_backup. No code changes.
FossilOrigin-Name: f83609f4703b5e74a91bca071a4ac2843189f463
2010-12-16 20:35:09 +00:00
drh
4278d53efa Fix an assertion fault that can only occur if SQLITE_ENABLE_STAT2 is defined
and the constant folding optimization is disabled using sqlite3_test_control().
Problem introduced by [ad8bc68197f2b4] but we missed it prior to the 3.7.4
release due to taking shortcuts and skipping tests in the release checklist.

FossilOrigin-Name: 70a3d81742fcd481f83ccc8f7ff6af58bc29c4fa
2010-12-16 19:52:52 +00:00
drh
7d20844542 Make wal_checkpoint a no-op if a prior checkpoint has already copied all
WAL content into the database.  This prevents a concurrent write to the
database from resetting the wal-index out from under the WalIterator of
the checkpoint as it is initializing.

FossilOrigin-Name: cf86affcb7d3089496e9849cbf43a211097e4f64
2010-12-16 02:06:29 +00:00
drh
d9c9b78e6c Enhanced comments in wal.c and declare some procedure parameters "const".
No changes to the generated code.

FossilOrigin-Name: d0e4375b8a784d4e4ae66caababac919edd61883
2010-12-15 21:02:06 +00:00
drh
901e994b8b When registering the built-in LIKE and GLOB functions, make sure that they
are tagged with SQLITE_UTF8 so that if other application-defined LIKE and
GLOB implementations are provided for UTF16, then the appropriate function
will be selected.

FossilOrigin-Name: e1660764f20fed3fe92156d2b7f06075ff6ac145
2010-12-15 18:54:37 +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
7f322e791c Mention the SQLITE_DEFAULT_WAL_AUTOCHECKPOINT compile-time option in the
documentation for the sqlite3_wal_autocheckpoint() interface.

FossilOrigin-Name: 5a52dd59ff577b071b4ed9316dc3bc753a18c8da
2010-12-09 18:55:09 +00:00
drh
10fc727d35 Update the sqlite3_stmt_readonly() interface so that its output is
well-defined for all prepared statements, and so that it gives the 
correct result for VACUUM.

FossilOrigin-Name: 9c19b7ae3542fd1fac692b4471f1839b22685c76
2010-12-08 18:30:19 +00:00