Commit Graph

210 Commits

Author SHA1 Message Date
drh 1153c7b25d Size KeyInfo objects so that IdxInserts always compare the correct number of
fields.

FossilOrigin-Name: 302a81390f039fc23eeb8510e95b9d9fa0b41edd
2013-11-01 22:02:56 +00:00
drh bbbdc83b52 The Index object now has nKeyCol and nColumn. nColumn is the total number
of columns and nKeyCol is the number of key columns.  Currently these always
differ by one.  Refactor aiColumn[] to be of type i16 instead of int.

FossilOrigin-Name: a106ce86cd4afd1f81603826de77df1fb25e9ab5
2013-10-22 18:01:40 +00:00
drh a7f4bf3f88 Make subroutines sampleCopy() and valueFromExpr() have file scope.
FossilOrigin-Name: 1660efbe46439734c7dc1674994ceb86a9b41d1a
2013-10-14 13:21:00 +00:00
drh 4f99189051 Fix various harmless compiler warnings. Change the "warnings.sh" script to
work with STAT4 instead of STAT3.

FossilOrigin-Name: 7df06684ab36bfdad9e9aca6940b7a665c2a0cb5
2013-10-11 15:05:05 +00:00
drh 2b1a64a120 The sqlite3Stat4ProbeSetValue() routine should always return results using
the database encoding.

FossilOrigin-Name: eb21663271369c3862bc8fd800f76d568c8579fe
2013-09-04 15:15:10 +00:00
dan 4a1aa3851a Fix a problem causing SQLite not to use stat4 or stat3 data to analyze constraints of the form "column = expr COLLATE collation" (those with an explicit COLLATE on the non-column side of the comparison operator).
FossilOrigin-Name: 1e86d81d46c9da6aaee0c6938ee40933f35e3d0d
2013-08-31 17:21:26 +00:00
drh 1435a9a126 Adjust ANALYZE for improved test coverage. Use the SQLITE_ENABLE_STAT3_OR_STAT4
macro (created in sqliteInt.h) to conditionally include code, instead of 
a boolean specifying both macros separately.

FossilOrigin-Name: 67a9a392edd62ef5a5a1ad3010b20a39b285793d
2013-08-27 23:15:44 +00:00
drh 2f53b90665 Merge the STAT4 capability into trunk.
FossilOrigin-Name: a32af0abe5fa6d570604fa3534e8230d5b6042fc
2013-08-26 23:18:06 +00:00
drh e7ecdfabd2 Update sqlite3MemCompare() to try common cases first, for a modest speed
improvement.

FossilOrigin-Name: b25bac79191975149d88fe34618c74354de62c5e
2013-08-21 19:13:53 +00:00
drh 202ca9075f In sqlite3Stat4ProbeSetValue() change a local variable name iVar to iBindVar
to avoid confusion with iVal, and fix a place where the name was actually
confused.

FossilOrigin-Name: 91733bc4856034c10bc2ba0acdae1970b05d62b9
2013-08-16 17:18:02 +00:00
drh 0e1f0029c0 Fix valueFromExpr() so that it returns SQLITE_NOMEM following an OOM when
changing text encodings.  Also fix some asserts to accommodate OOM errors.

FossilOrigin-Name: dc1ccd09c443cebc4731dbe1a0dea84a9ccf6a9b
2013-08-16 14:49:00 +00:00
dan af2583c83c Fix a crash that can occur following an OOM fault.
FossilOrigin-Name: 9f80b2687012ab7c4d6d654fe19f40878bd78bd8
2013-08-15 18:43:21 +00:00
dan 8ad169abb4 If ENABLE_STAT3 is defined but ENABLE_STAT4 is not, have ANALYZE create and populate the sqlite_stat3 table instead of sqlite_stat4.
FossilOrigin-Name: cca8bf4372ab7a0258aa5c9397818415c6cf0abf
2013-08-12 20:14:04 +00:00
dan dd6e1f193e Add the rowid field to the end of sample records stored in the sqlite_stat4 table.
FossilOrigin-Name: 3a5e8ab7ddbe1d943b35ef329fe4e5a1bfdb0d9d
2013-08-10 19:08:30 +00:00
dan ad45ed7414 Fix a segfault in "ALTER TABLE t1 ADD COLUMN b DEFAULT (-+1)". Also an assert() failure that could occur if SQLITE_ENABLE_STAT4 were not defined.
FossilOrigin-Name: 9fec3e38287067d60874530300fbeb602958c951
2013-08-08 12:21:32 +00:00
dan 87cd93215e When estimating the number of rows scanned using data from the sqlite_stat4 table, avoid allocating UnpackedRecord and KeyInfo structures until they are definitely required.
FossilOrigin-Name: 353950a5269fa439cc3e57b62e16558a84ea2557
2013-08-07 15:52:41 +00:00
dan 7a4192358a When possible, use the multi-column samples in sqlite_stat4 to estimate the number of index rows scanned by a query plan.
FossilOrigin-Name: 2973f5ca736c4a6f13c653d54b6a29d7cae8d0ed
2013-08-06 20:01:43 +00:00
dan f52bb8d385 Begin adding experimental sqlite_stat4 table. This commit is buggy.
FossilOrigin-Name: 2beea303a1d609cd2ff252412c50b966b9e5e8f1
2013-08-03 20:24:58 +00:00
mistachkin ef593f293e Fix two compilation issues, one warning and one error, that occur only when SQLITE_OMIT_UTF16 is defined.
FossilOrigin-Name: 10ace06be7fbe9a76a201c418b2af453c7a69043
2013-03-07 06:42:53 +00:00
dan 2b9ee77fd6 Fix a bug in the EXPLAIN code for listing trigger programs that was causing an out-of-bounds read.
FossilOrigin-Name: c9342ca58105499a5eb61c3e6d016559b6072c95
2012-03-31 09:59:44 +00:00
drh bb8c1b5e63 Fix a boundary case for the integer affinity routine for non-x86 processors.
FossilOrigin-Name: bea05ddddf5089bac9b1aa9fe1d2cd24b069ad44
2012-02-10 01:25:13 +00:00
drh aa538a581a Make the use and function of SQLITE_DYNAMIC clearer. Add assert() statement
to help ensure that SQLITE_DYNAMIC is not misused.

FossilOrigin-Name: ab80f2c3b2f1eea6e35989d3e9b6137b51091754
2012-01-19 16:57:16 +00:00
drh 45d29309a7 Fix typos in commands. Combine the ExpandBlob and expandBlob macros into one.
FossilOrigin-Name: fc9179e154751b51ddef429600d30a89d4a098bd
2012-01-08 22:18:33 +00:00
drh e4c88c0c38 Fix typos and comments and make minor changes to a few function names,
as suggested by readership.

FossilOrigin-Name: e9d05cbb7676cbda83f1b3b71447404d7edde898
2012-01-04 12:57:45 +00:00
drh 2faf5f5e9e Update the text of requirements associated with sqlite3_pcache_methods2.
Update requirements marks embedded in code.  All of the above are comment
changes only; there are no changes to code in this check-in.

FossilOrigin-Name: f945c41a72519d6bcfb478730ba0254bb24e5331
2011-12-30 15:17:47 +00:00
drh 5a9f90b574 Merge the latest trunk changes into the stat3-trunk branch.
FossilOrigin-Name: 11ca4ed8bf850dae1a24b7182f70039f32bd8dd1
2011-09-13 19:09:28 +00:00
drh 2d36eb43a4 About a 1% overall performance improvement by using a macro to avoid
no-op calls to sqlite3MemReleaseExternal().

FossilOrigin-Name: ff71d20a9ed129bd1785a3f7a777ce62098735b7
2011-08-29 02:49:41 +00:00
drh faacf17cc1 Begin a branch that experimentally replaces sqlite_stat2 with a new table
called sqlite_stat3 that will hopefully facilitate better query
planning decisions.

FossilOrigin-Name: 52e1d7e8ddd4bb5ef3a9d00fd2d719a8a784f807
2011-08-12 01:51:45 +00:00
drh d50ffc416f Fix additional cases of possible signed integer overflow, especially with
regard to negation.

FossilOrigin-Name: 2d5800bd8cfc7d7f5578a71b1aeaa74b2ec4b372
2011-03-08 02:38:28 +00:00
drh 158b9cb965 Fix all known instances of signed-integer overflow. Within SQL expressions,
integer overflow now forces coercion to floating point.  The shift operators
work with any integer right-hand operand with negative values reversing
the direction of the shift.

FossilOrigin-Name: abf21394124a0af46f072793718964cee2ce55d0
2011-03-05 20:59:46 +00:00
drh b1aa0ab6da Fix the sqlite3ValueFromExpr() routine so that it returns SQLITE_NOMEM
on an OOM when trying to extract a NULL.

FossilOrigin-Name: 1061e94fa983a441b289753b873559163ab849e6
2011-02-18 17:23:23 +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
dan 271065704c Avoid recursive calls to sqlite3VdbeMemRelease() when deleting VM frames used by trigger programs.
FossilOrigin-Name: 119ffe955eb1e8016cb8131a63bd17557f395f3f
2010-12-01 08:04:47 +00:00
drh e062d7b847 Avoid all memory allocation (and hence the possiblitity of OOM failure)
in sqlite3_value_double() and sqlite3_column_double().

FossilOrigin-Name: 4afdf9705a7c2b67aea31c5d51b9c295867d62d1
2010-10-05 12:05:32 +00:00
shaneh 5f1d6b616e Changes to remove sqlite3FitsIn64Bits().
FossilOrigin-Name: 43fef1cab6315f837782ea601d5a2aeb9843ab3c
2010-09-30 16:51:25 +00:00
drh 9351862b6d Fix the handling of default values for ALTER TABLE ADD COLUMN columns so
that is able to deal with negative numbers, including large negative numbers.
Ticket [8454a207b9fd2243c4]

FossilOrigin-Name: ce6cc16e3a151a0c67855abde1411422dfcc8828
2010-09-30 14:48:06 +00:00
drh 9339da1f22 Rework the text to numeric conversion routines so that they work with either
UTF8 or UTF16 and do not require a NULL terminator.  This allowed text to
numeric conversion without reallocating the string.

FossilOrigin-Name: 14eed3a0e0a45c6f2904a3a134aa27c159916f7b
2010-09-30 00:50:49 +00:00
drh ebc16717fa Continuing work toward detecting and fixing shallow-copy misuse.
FossilOrigin-Name: d0342f4bb9d25dd1dba3957778faa993fb9cc81c
2010-09-28 00:25:58 +00:00
drh 2b4ded993b Add assert() statements that fail when a shallow copy is accessed after the
original has been modified.  These assert() statements should detect the kinds
of subtle SCopy bugs such as caused the fault
in ticket [b351d95f9cd5ef17e9d9dbae18f].

FossilOrigin-Name: 8b8e1732e8410efd5f8e308c43abe521584e87a0
2010-09-27 21:09:31 +00:00
drh 38c67c3683 Improved documentation of SQLITE_THREADSAFE and sqlite3_column_text() and
evidence marks for each.

FossilOrigin-Name: 0d7a53894866e536616e78473d253a9e9c29b1bc
2010-09-08 02:30:27 +00:00
drh ee9ff672da Documentation enhancements for sqlite3_db_status(). Evidence marks on
the SQL function call intrface.

FossilOrigin-Name: f06c7b1973d64a6a1a1db2b44df2a4eb0ece0077
2010-09-03 18:50:48 +00:00
drh a3388cc5b0 Fix typos in comments. No code or logic changes.
FossilOrigin-Name: 15c294ca051ed8b5078e7ac9a969b0f9358d9184
2010-07-30 16:54:25 +00:00
drh 4a466d3ef3 Fix up a branch in sqlite3ValueFromExpr() so that we can achieve full
branch test coverage regardless of whether or not SQLITE_ENABLE_STAT2 is
used.

FossilOrigin-Name: af471ed79f539ff495f6d4cb3b69188c8af7ae3d
2010-06-25 14:17:58 +00:00
dan 5fea90762a Change a condition in sqlite3VdbeMemShallowCopy() to avoid accessing an unitialized variable (doing so was not dangerous, but caused a valgrind error).
FossilOrigin-Name: 4793c381c6ff4e4d25433298be30028721a9cb67
2010-03-05 18:46:12 +00:00
drh 4b5db5ac9c Redesign the string to numeric value caster so that it is more likely to
work on unusual floating point hardware.

FossilOrigin-Name: 8bb1104c6f02c88eb09ed345890be71dee099485
2010-01-21 01:53:07 +00:00
drh 52d14521fa Make the doubleToInt64() routine a pass-through when using OMIT_FLOATING_POINT.
FossilOrigin-Name: 417167182efaa1da74008952137de3e00c23494e
2010-01-13 15:15:40 +00:00
drh 7ec5ea942e Make the sqlite3_result_double() interface work the same as
sqlite3_result_int64() when SQLITE_OMIT_FLOATING_POINT is defined.

FossilOrigin-Name: 61df5986600b6c9e6d5c42efc0067a27fe54251f
2010-01-13 00:04:13 +00:00
drh 0abaefefd6 Remove an obsolete (and incorrect) comment from sqlite3MemCompare().
No changes to code.

FossilOrigin-Name: c15b70b3aefc399dae1df5bb721530f0e2b7887a
2009-11-11 23:48:22 +00:00
drh c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
drh 481aa74e21 Recover an ophaned branch that resulted from some ill-advised "shunning".
This check-in should be identical to [bd443f39a9] except that it should
be on the trunk.

FossilOrigin-Name: 38eaf1ab6e05161e6dc7cd69e942aeca16548c45
2009-11-05 18:46:02 +00:00