/ File History
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of src/analyze.c

2019-10-19
13:29
Refactor names of column index transformation functions, for clarity. Get generated columns working with ALTER TABLE RENAME COLUMN. file: [fd70b9c7] check-in: [27ab41c9] user: drh branch: generated-columns, size: 64846
2019-10-09
17:06
An alternative, experimental lookaside memory allocator that uses two different slot sizes. file: [777b2290] check-in: [5ba8cee8] user: sperry branch: 2-size-lookaside, size: 64946
2019-10-05
14:39
Performance optimization to the lookaside-memory disabling mechanism. file: [481d9cf3] check-in: [17ce1c49] user: drh branch: trunk, size: 64841
2019-09-16
12:35
Merge all recent trunk enhancements into the reuse-schema branch. file: [050e013f] check-in: [27eb2236] user: drh branch: reuse-schema, size: 64902
2019-08-15
14:35
Ensure that the optional "sz=N" parameter that can be manually added to the end of an sqlite_stat1 entry does not have an N value that is too small. Ticket [e4598ecbdd18bd82] file: [a3f4ea45] check-in: [98357d8c] user: drh branch: trunk, size: 64858
2019-08-13
15:22
Merge latest trunk changes with this branch. file: [01ee7d24] check-in: [5b4689d8] user: dan branch: reuse-schema, size: 64854
2019-08-08
16:23
More legacy STAT3 code removed. file: [0278dbf6] check-in: [845d2f17] user: drh branch: omit-stat3, size: 64810
15:24
Remove support for STAT3. The sqlite_stat3 tables are ignored, if they exist. STAT4 continues to work as it always has, and as it is a superset of STAT3 is the recommended replacement. file: [eed90d1d] check-in: [1e17ea2f] user: drh branch: omit-stat3, size: 64938
2019-02-18
18:16
Ensure that creating temp schema items does not cause an OPEN_SHARABLE_SCHEMA connection to load all schemas into memory. file: [9ffcf938] check-in: [88cbf54e] user: dan branch: reuse-schema, size: 67387
2019-02-08
19:30
Add test cases and fix problems on this branch. file: [e75c3c1d] check-in: [2b2e9f81] user: dan branch: reuse-schema, size: 67369
2019-02-05
19:51
Merge latest trunk into this branch. file: [1f1af7b0] check-in: [c089cc4f] user: dan branch: reuse-schema, size: 67363
2018-12-29
02:26
A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. file: [58db6634] check-in: [4a0929ac] user: drh branch: trunk, size: 67325
2018-11-16
17:04
Fix further REUSE_SCHEMA issues. file: [09c96842] check-in: [9780829a] user: dan branch: reuse-schema1, size: 67223
2018-10-08
18:58
Merge latest trunk changes into this branch. file: [44f9189f] check-in: [2ac72114] user: dan branch: reuse-schema, size: 67358
2018-07-20
19:24
Change the SQLITE_Stat34 bit of the optimization test-control so that it prevents STAT4 data from being used but allows it to be loaded into the Index objects. This permits STAT4 to be turned on and off on a per-statement basis. file: [3dc6b98c] check-in: [489f3caf] user: drh branch: trunk, size: 67320
18:01
Experimental change to ANALYZE so that when computing values for sqlite_stat1, it uses the maximum number for the number of rows having equivalent values, rather than the average. file: [3c64f4f1] check-in: [085f17e1] user: drh branch: stat1-max, size: 67896
2018-07-10
17:10
Further improvements to bytecode branch testing. Fix cases where the macros said a branch could not be taken when in fact it could be. Alter some window function branch coverage macros to indicate that comparison operands cannot be NULL. file: [91b5e7c0] check-in: [76e42b70] user: drh branch: trunk, size: 67362
2018-06-10
07:42
Update Makefile.msc to include window.c in the build. file: [41f0b8d6] check-in: [16db7384] user: dan branch: exp-window-functions, size: 67542
2018-05-16
20:58
Start of experimental implementation of SQL window functions. Does not yet work. file: [1250e69b] check-in: [3781e520] user: dan branch: exp-window-functions, size: 67440
2018-03-23
12:59
Fix the ANALYZE command so that it will process tables whose names begin with "sqlite" as long as they do not being with "sqlite_". file: [71fbbeb7] check-in: [0249d9ae] user: drh branch: trunk, size: 67416
2018-01-17
20:57
Fix a problem in the sessions module with logging sqlite_stat1 rows for which (idx IS NULL) is true. file: [6b42e36a] check-in: [25bf734b] user: dan branch: sessions-stat1, size: 67411
2018-01-12
16:44
Experimental change to include changes made to the sqlite_stat1 table in changesets generated by the sessions module. sqlite_stat1 entries in such changesets are ignored by legacy clients. file: [f9bfffd0] check-in: [bd46c442] user: dan branch: sessions-stat1, size: 67311
2017-08-09
20:35
Add experimental sqlite3_open_v2() flag SQLITE_OPEN_REUSE_SCHEMA. For sharing identical in-memory schema objects between connections. file: [a40d5a30] check-in: [a6256980] user: dan branch: reuse-schema, size: 66634
2017-06-07
10:55
Cause the ANALYZE command to build sqlite_stat1 table entries for empty tables with the assumption that such tables really contain 10 elements. This gives better query plans for tables that are truely empty, but is likely to cause problems in legacy systems, so the change is kept off trunk. Some TCL tests fail on this check-in due to the new stat1 entries. file: [62a35801] check-in: [c81f260c] user: drh branch: analyze-empty-tables, size: 66619
2017-03-21
18:56
Fix an incorrect assert in the ANALYZE logic for STAT4 on WITHOUT ROWID tables. file: [0d0ccf75] check-in: [ad741976] user: drh branch: trunk, size: 66596
2017-02-23
00:58
Do a single OP_Expire at the very end of "PRAGMA optimize", and omit the OP_Expire on ANALYZE commands invoked by the pragma. file: [6d823491] check-in: [188300a3] user: drh branch: auto-analyze, size: 66593
2017-02-22
19:49
Merge integrity_check and other improvements from trunk. file: [b4857ec5] check-in: [fe073905] user: drh branch: auto-analyze, size: 66904
19:41
Move a branch condition in analyze.c inside an #ifdef SQLITE_ENABLE_STAT4 block. file: [8a2af8a1] check-in: [d6afd98d] user: dan branch: trunk, size: 66648
19:27
Improve the performance of ANALYZE when SQLITE_ENABLE_STAT4 is defined. file: [844359e7] check-in: [737a8244] user: dan branch: trunk, size: 66648
2017-02-18
02:42
Fix errors in the table resize detection. file: [e01e5362] check-in: [4229caec] user: drh branch: auto-analyze, size: 69062
02:19
In the analyze_as_needed pragma, avoid running unnecessary OP_LoadAnalysis and OP_Expire opcodes. Make the analyze_as_needed pragma responsive to the schema name. file: [eb50045b] check-in: [882599a4] user: drh branch: auto-analyze, size: 69032
2017-02-17
19:24
The analyze_as_needed pragma now responds to table size growth and will automatically rerun the analysis after each 10x size increase. file: [acef9c48] check-in: [bfbdd074] user: drh branch: auto-analyze, size: 68696
16:26
Add the "PRAGMA analyze_as_needed" command. file: [39206f31] check-in: [e93db237] user: drh branch: auto-analyze, size: 67589
13:38
Enhance the Index and Table objects so that they remember if their stats come from the sqlite_stat1 table. Make the "PRAGMA stats" an SQLITE_DEBUG only pragma. Add the flags column to "PRAGMA stats". These are all preliminary steps toward a "PRAGMA analyze_ifneeded;" feature. file: [1b7197d6] check-in: [85026c8e] user: drh branch: auto-analyze, size: 66187
2017-02-01
01:34
Improved comments on the statGet() implementation in ANALYZE. No changes to code. file: [ac7a5d7e] check-in: [9663eea2] user: drh branch: trunk, size: 65931
2017-01-11
14:21
In the STAT4 computations, ensure that the aAvgEq values do not go negative. file: [92d7ab85] check-in: [4f83f680] user: drh branch: branch-3.8.9, size: 65554
14:15
In the STAT4 computations, ensure that the aAvgEq values do not go negative. file: [317dbaf3] check-in: [f58f75b5] user: drh branch: trunk, size: 65644
2016-12-30
14:15
Avoid passing NULL pointers to memcmp() or memcpy(), even when the "number-of-bytes" argument is passed 0. file: [3c4a63ff] check-in: [56ff72ab] user: dan branch: trunk, size: 65630
2016-08-18
14:33
Rename the Db.zName field to Db.zDbSName to make it more descriptive and to distinguish it from all of the other "zName" variables scattered throughout the code. file: [8b62b2cf] check-in: [92a22f01] user: drh branch: zDbSName, size: 65600
2016-04-04
12:38
Fix harmless compiler warnings. file: [37fedc80] check-in: [0213d6af] user: drh branch: trunk, size: 65582
2016-04-01
12:35
When reading an sqlite_stat1 table with missing entries for some indexes, set the default for the missing indexes after all other indexes are set so that the default values are more in line with indexes that are actually in the stat1 table. file: [39b21e4d] check-in: [a62340dc] user: drh branch: trunk, size: 65570
2016-03-04
19:55
Simplify the computation of Index.aAvgEq. file: [a89554ee] check-in: [c4488730] user: drh branch: analyze-worst-case, size: 67334
2016-03-01
14:31
Change the estimated row counts in stat1 to be one-third worst-case and two-threads average case. file: [dac2f49d] check-in: [21bfd47c] user: drh branch: analyze-worst-case, size: 67376
2016-02-29
23:02
Improvements to the logic for adding the "noskipscan" flag to stat1 entries. file: [997b0ce0] check-in: [421b5b54] user: drh branch: analyze-worst-case, size: 66150
21:27
The ANALYZE command automatically appends "noskipscan" to sqlite_stat1 entries that have large worst-case repeat estimates but small average repeat estimates. file: [95b2e37e] check-in: [6326ba58] user: drh branch: analyze-worst-case, size: 66147
18:30
Modify the ANALYZE command to store worst-case statistics in sqlite_stat1, rather thn average case. file: [37343619] check-in: [5a0143c9] user: drh branch: analyze-worst-case, size: 65484
2016-02-15
18:15
Add the SQLITE_NOMEM_BKPT macro to enhance the ability to debug OOM errors. Only effective with compiling with SQLITE_DEBUG. file: [ab57b676] check-in: [9b345476] user: drh branch: trunk, size: 65330
00:34
Improvements to the application-defined function mechanism so that it is more compact and runs faster, especially when the application defines thousands of new SQL functions. file: [b148441c] check-in: [3201fbcc] user: drh branch: many-app-functions, size: 65305
2016-02-13
23:43
Enhance ability to debug out-of-memory errors. file: [8f89d016] check-in: [6a9c4a3e] user: mistachkin branch: noMemBkpt, size: 65516
2016-02-05
13:38
Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. file: [fbf0e80d] check-in: [0a802e96] user: drh branch: oom-handling, size: 65491
01:55
Improvements to the way that OOM errors are processed. file: [5338dbbc] check-in: [c3ef0347] user: drh branch: oom-handling, size: 65487
2016-02-04
02:34
Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. file: [e98b1f4c] check-in: [1c8d3001] user: drh branch: zero-register, size: 65556
2016-01-26
15:23
Change the automatic index mechanism so that it avoids creating transient indexes on columns that are known to have low cardinality. file: [dfc20750] check-in: [12ef3a8f] user: drh branch: autoindex-planning, size: 65981
2016-01-16
15:12
Use sqlite3VdbeAddOp4() rather than a separate sqlite3VdbeChangeP4() call, for a slightly smaller and faster binary. file: [0043d3e5] check-in: [a4258cd4] user: drh branch: trunk, size: 65565
2016-01-14
22:19
Combine the xFunc and xStep pointers of the FuncDef object into a single pointer xSFunc. file: [905d387f] check-in: [0d1b3d7d] user: drh branch: trunk, size: 65597
2015-11-24
21:23
Add the sqlite3_strlike() interface, which might be useful for implementing LIKE operators on virtual tables. file: [977bd50c] check-in: [e70ec71d] user: drh branch: vtab-like-operator, size: 65687
2015-09-03
14:18
Merge enhancements from trunk. file: [4c308880] check-in: [1ab10cbf] user: drh branch: index-expr, size: 65687
13:46
Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). file: [e4ad1495] check-in: [847387ec] user: drh branch: trunk, size: 65735
2015-09-02
18:19
Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). file: [eb4683b5] check-in: [be78f413] user: drh branch: trunk, size: 65772
2015-08-25
16:57
Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. file: [3ec61c51] check-in: [efaabdb7] user: drh branch: index-expr, size: 65735
2015-06-26
18:16
Cache the sqlite3_context structure in the P4 operand of VDBE programs for faster SQL function dispatch. file: [f89727c3] check-in: [2abc44eb] user: drh branch: trunk, size: 65783
2015-04-20
15:13
Fix a memory leak caused by duplicate entries in the sqlite_stat1 table. file: [d2379078] check-in: [2f58c8c9] user: dan branch: trunk, size: 65780
2015-01-01
23:02
Add logic to releasetest.tcl that detects -fsanitize=undefined errors. Fix a few false-positivies that come up when running the sanitize=undefined test. file: [91540f83] check-in: [2835e79a] user: drh branch: trunk, size: 65540
2014-12-05
21:04
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. file: [7a2986e6] check-in: [c1ae1268] user: dan branch: trunk, size: 65530
20:43
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. file: [614428e1] check-in: [194c90db] user: dan branch: branch-3.8.7, size: 65284
2014-11-22
21:37
Always reinitialized the Index.bUnordered and Index.noSkipscan flags before rereading the sqlite_stat1 table, even if SQLITE_ENABLE_STAT4 is defined. file: [f7d77435] check-in: [1e1221fc] user: drh branch: trunk, size: 65509
2014-11-19
14:05
Add an ALWAYS on an always-true branch in wal.c. Fix the ANALYZE command so that it resets the "unordered" and "noskipscan" flags on indices when reloading the sqlite_stat1 table. file: [c59f238a] check-in: [9ed97a85] user: drh branch: trunk, size: 65470
2014-11-15
19:08
Adding the "noskipscan" token to an sqlite_stat1.stat field prevents an index for being used with the skip-scan algorithm. file: [951fd859] check-in: [00fe0950] user: drh branch: noskipscan-token, size: 65418
2014-10-22
19:57
Change the 0x800 bit of SQLITE_TESTCTRL_OPTIMIZATIONS so that it disables the loading of STAT3 and STAT4 content, not just the using of that content. Change the internal name of that bit to SQLITE_Stat34. file: [afbcca66] check-in: [ca3b00c4] user: drh branch: trunk, size: 65334
15:27
Take steps to avoid misestimating range query costs based on STAT4 data due to the roundoff error of converting from integers to LogEst and back to integers. file: [567c94b7] check-in: [3c933bf9] user: drh branch: trunk, size: 65292
2014-10-06
18:33
Remove unreachable branches in decodeIntArray() when compiling without STAT3 or STAT4. file: [8c322e1e] check-in: [80e1baa5] user: drh branch: trunk, size: 65263
2014-10-04
00:07
Avoid leaking Index.aiRowEst memory if an OOM causes a rollback which deletes the index before the aiRowEst deletion code in sqlite3AnalysisLoad() routine has a chance to run. Since the aiRowEst now might be deleted from freeIndex() which does not always have a db pointer, make sure the aiRowEst memory is not held in lookaside. file: [ee85c504] check-in: [efd87ba1] user: drh branch: stat4-avgeq, size: 65244
2014-10-03
19:29
Fix a division-by-zero error that might occur if the sqlite_stat1 table is corrupt. file: [8d5a1389] check-in: [f9c053b2] user: dan branch: stat4-avgeq, size: 65211
19:16
Improve the accuracy of the estimates used when searching an index for values not present in any stat4 samples under some circumstances. file: [418c2fc2] check-in: [e6f7f97d] user: dan branch: stat4-avgeq, size: 65182
2014-09-19
20:13
Fix the affinity on inserts into the ANALYZE tables. Change the affinity characters to be upper case, to make the P5 parameter of comparison operators easier to read. file: [6290a109] check-in: [3f3ca76a] user: drh branch: trunk, size: 64323
2014-09-06
16:39
Fix typos in comments. No code changes. file: [79383a54] check-in: [e62aab5e] user: peter.d.reid branch: trunk, size: 64241
2014-09-01
23:06
Update comments in the ANALYZE command that describe how the Stat4Accum objecct is passed around within the VDBE. No changes to functional code. file: [f00f06e6] check-in: [9779c7a9] user: drh branch: trunk, size: 64243
22:34
Avoid a confusing (though correct) argument to the sqlite3_result_blob() function in the implementation of ANALYZE. file: [75345fa5] check-in: [4cae93f8] user: drh branch: trunk, size: 64036
2014-08-04
15:12
Changed my mind: This opcode name changes mere creates unnecessary diff marks between older and newer versions without significantly improving readability. Was: Rename the IsNull opcode to IfNull and rename the NotNull opcode to IfNotNull. file: [095daf23] check-in: [2f724cba] user: drh branch: deadend, size: 64037
2014-07-31
22:59
Refactoring: Change "pIndex->onError!=OE_None" to use a macro: "IsUniqueIndex(pIndex)". Easier to understand that way. file: [f98a3519] check-in: [e75b26ee] user: drh branch: trunk, size: 64035
2014-07-24
23:23
Improve the performance of the ANALYZE command by taking advantage of UNIQUE constraints on indices. file: [de34a73b] check-in: [114dcf33] user: drh branch: trunk, size: 64038
20:25
Avoid trying to allocation zero bytes when analyzing a unique non-null index. file: [9799a65d] check-in: [85e2bade] user: drh branch: faster-analyze, size: 63847
19:54
Avoid change tests when analyzing single-column unique indexes after getting past the initial NULL entries. file: [45216a14] check-in: [4690e99c] user: drh branch: faster-analyze, size: 63838
2014-07-23
23:57
Add experimental "costmult" logic. Only enabled when compiled with -DSQLITE_ENABLE_COSTMULT. file: [1c983101] check-in: [729ece40] user: drh branch: trunk, size: 62486
19:37
Ugh. Consecutive UNIQUE index entries are only distinct if the index is on NOT NULL columns. So the previous version was not quite right. This check-in fixes the problem. file: [7f893416] check-in: [30033f96] user: drh branch: faster-analyze, size: 63422
18:36
Improve the performance of the ANALYZE command by taking advantage of the fact that every row of a UNIQUE index is distinct. file: [c72bb669] check-in: [3e1e79e1] user: drh branch: faster-analyze, size: 63427
2014-07-22
22:46
When running ANALYZE, it is not necessary to check the right-most key column for changes since that column will always change if none of the previous columns have. file: [ab1e4415] check-in: [48f40861] user: drh branch: trunk, size: 62295
14:58
Enhance the sqlite_stat1.stat parsing to allow additional text parameters at the end. Unrecognized parameters are silently ignored. file: [56799121] check-in: [ca2a5a2c] user: drh branch: trunk, size: 62289
14:42
Expire prepared statements after running ANALYZE. file: [9f4e473c] check-in: [b083a961] user: drh branch: trunk, size: 62171
2014-07-01
11:54
Ensure that all fields are loaded from the stat4 table for records that correspond to indexes on WITHOUT ROWID tables with composite primary keys. file: [61bc3467] check-in: [21981e35] user: dan branch: trunk, size: 62087
2014-06-30
17:07
Fix the STAT4 information for WITHOUT ROWID tables. file: [ec6e0691] check-in: [5d8628fd] user: drh branch: stat4-without-rowid, size: 61694
13:56
Omit non-primary-key columns from the STAT4 samples for WITHOUT ROWID tables. Indexes, both rowid and without-rowid, still hold an exact copy of the index entry. file: [0f9ee2f8] check-in: [de826c31] user: drh branch: stat4-without-rowid, size: 61289
13:32
Generate complete samples for sqlite_stat4 on WITHOUT ROWID tables. Ticket [b2fa5424e6fcb15b5] file: [b53dddb5] check-in: [8cb43edd] user: drh branch: stat4-without-rowid, size: 61160
2014-05-27
18:18
Change the name of the Index.autoIndex field to Index.idxType and provide symbolic names for the various values of that field rather than using magic numbers. file: [e8c8a9d2] check-in: [d16e575d] user: drh branch: trunk, size: 61096
2014-05-19
15:16
Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. file: [0cca10e0] check-in: [17349a49] user: drh branch: safer-malloc, size: 61157
2014-05-01
20:24
Add #ifdefs for test coverage. Add a testcase(). file: [3596f863] check-in: [be2702ce] user: drh branch: trunk, size: 61091
2014-04-25
15:01
Store values loaded from the stat1 table as logarithmic values in memory. file: [92f14953] check-in: [1bd74c49] user: dan branch: experimental-costs, size: 60986
2014-03-06
13:38
Improved EXPLAIN indentation of a loop in the ANALYZE logic for STAT4. Mark the not-found jump of a seek operation in that loop as never taken. file: [663e0b29] check-in: [0a4200f9] user: drh branch: trunk, size: 60849
2014-02-17
22:40
Add logic to do test coverage measurements on the VDBE code. file: [69761e16] check-in: [ce184c7b] user: drh branch: insert-optimization, size: 60641
14:59
Avoid unnecessary calls to applyAffinity() during INSERT and UPDATE operations, especially for table that have indices and tables for which all columns have affinity "NONE". file: [3ec44440] check-in: [35b4d6e9] user: drh branch: insert-optimization, size: 60517
2013-11-13
15:32
Add test cases for skip-scan. Enhance "do_test" so that if the expected result is of the form "/*..*/" or "~/*..*/" it treats the expected result as a glob pattern rather than as a regular expression. Fix a bug in ANALYZE result loading associated with WITHOUT ROWID tables. file: [581d5c18] check-in: [d3e6e9b2] user: drh branch: skip-scan, size: 60530
2013-11-06
19:59
Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo for each index in the Index object, and reuse that one copy as much as possible. file: [27f0c132] check-in: [defd5205] user: drh branch: omit-rowid, size: 60431
2013-11-04
22:04
Add the index7.test script for testing partial indices with WITHOUT ROWID tables. Fix bugs in ANALYZE located by that script. file: [f8092cb6] check-in: [79befe3a] user: drh branch: omit-rowid, size: 60567
21:44
Bug fixes in the INSERT constraint checker. Refactor the Rowid handling logic for ANALYZE with STAT3/4. file: [0727d846] check-in: [1ea43c0f] user: drh branch: omit-rowid, size: 60538
2013-11-02
19:34
Change the "idx" name of the primary key index for WITHOUT ROWID tables in sqlite_statN statistics tables to be the name of the table rather than the fabricated index name (ex: sqlite_autoindex_xyz_1). This makes it consistent with sqlite_master table. file: [b583d62c] check-in: [4ee4d310] user: drh branch: omit-rowid, size: 60015
18:46
Update the ANALYZE logic so that it works with WITHOUT ROWID tables. file: [86f6a6cc] check-in: [9075770e] user: drh branch: omit-rowid, size: 59374
2013-10-25
14:46
Basic DELETE operations now working on WITHOUT ROWID tables. file: [b6b115d6] check-in: [9eafafa3] user: drh branch: omit-rowid, size: 56991
2013-10-22
18:01
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. file: [ee880a4c] check-in: [a106ce86] user: drh branch: omit-rowid, size: 57038
2013-10-14
14:21
Corrects to comments on the STAT4 implementation. file: [f1c5ed1f] check-in: [e06f74d3] user: drh branch: trunk, size: 57038
13:21
Make subroutines sampleCopy() and valueFromExpr() have file scope. file: [c6259f93] check-in: [1660efbe] user: drh branch: trunk, size: 57072
2013-10-11
15:05
Fix various harmless compiler warnings. Change the "warnings.sh" script to work with STAT4 instead of STAT3. file: [f9e4eec9] check-in: [7df06684] user: drh branch: trunk, size: 57065
2013-10-09
19:07
Make sure the correct printf format is used for type tRowcnt regardless of whether 32-bit or 64-bit row counts are specified at compile-time. file: [4383cd3c] check-in: [e97d7d30] user: drh branch: row-size-est, size: 56802
2013-10-08
23:16
Move a conditional inside of an #ifdef in order to make all branches reachable regardless of compile-time options used. file: [bc391d7c] check-in: [f7cc30d4] user: drh branch: row-size-est, size: 56792
2013-10-07
16:53
Try to remember statistics from ANALYZE using LogEst instead of u64. file: [3994309c] check-in: [8e78557a] user: drh branch: log-stats, size: 56805
2013-10-06
22:12
Accept the sz=N parameter on table-only lines of sqlite_stat1. file: [c27da557] check-in: [e9e932aa] user: drh branch: row-size-est, size: 56716
2013-10-05
19:18
Completely remove the iScanRatio field. The PRAGMA index_list(TABLE) command shows the estimated row size in the forth column. It also generates a row for the table with an index name of NULL. The query planner still does not take row size estimates into account - that is the next step. file: [9f71f387] check-in: [8b4aa0c7] user: drh branch: row-size-est, size: 56608
2013-10-04
18:29
Further refinements of the index scanning speed logic. file: [c692855a] check-in: [e5d9371d] user: drh branch: index-scan-rate, size: 56732
02:36
Progress toward using the iScanRatio information on indices. Many tests are still failing. file: [6aa46f04] check-in: [6c352edb] user: drh branch: index-scan-rate, size: 56872
2013-10-03
19:21
Experimental branch allowing different postulated scan rates for each index. file: [41caf5d0] check-in: [d59d97b0] user: drh branch: index-scan-rate, size: 56787
2013-09-10
01:41
Deterministically initialize the PRNG used as a tie-breaker in the ANALYZE command, so that the analysis is always the same given the same database. This simplifies testing. file: [d322972a] check-in: [48ed8b56] user: drh branch: trunk, size: 56369
2013-09-06
13:10
Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a single new FuncDef.funcFlags field. file: [7da9d6a0] check-in: [97b10e66] user: drh branch: trunk, size: 56349
2013-09-04
04:04
Fix out-of-order variable declaration. Fix harmless compiler warning. file: [3f1c87b0] check-in: [8df95bb0] user: mistachkin branch: trunk, size: 56439
02:07
Conditionally exclude code from analyze.c that is not used by STAT3. file: [a4924848] check-in: [a48948a1] user: drh branch: trunk, size: 56405
2013-09-03
14:43
Fix another problem in stat4 sample selection. file: [51e6e5d5] check-in: [d59f5809] user: dan branch: trunk, size: 56371
2013-09-02
18:58
Further stat4 related tests. file: [66903e3e] check-in: [0a702c4b] user: dan branch: trunk, size: 55487
2013-08-30
20:19
Fix compiler warnings in analyze.c. file: [128f85d9] check-in: [5bbd2ccb] user: dan branch: trunk, size: 55279
19:59
Fix comment typo in analyze.c. No changes to code. file: [be10d326] check-in: [dbc31750] user: mistachkin branch: trunk, size: 55268
2013-08-28
11:43
Label a certain branch as NEVER() only for non-STAT3/4 builds. file: [7f869a25] check-in: [b5ccf6e9] user: drh branch: trunk, size: 55265
2013-08-27
23:15
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. file: [fa1a9eee] check-in: [67a9a392] user: drh branch: trunk, size: 55195
20:16
Reduce the amount of code run and memory used for ANALYZE in the common case where neither STAT3 and STAT4 are enabled. file: [f1dbc79c] check-in: [9d1424c9] user: drh branch: trunk, size: 55121
14:14
In the ANALYZE command implementation make statInit() a 2-value function since the 3rd parameter was always the same constant. file: [ce2a3385] check-in: [959bb5ac] user: drh branch: trunk, size: 54145
2013-08-17
18:57
Adjustments to #ifdefs in analyze.c to all a clean compile with no extra code with both ENABLE_STAT3 and ENABLE_STAT4 and with neither. file: [10a4f1cd] check-in: [f86b75b6] user: drh branch: sqlite_stat4, size: 54268
2013-08-16
14:09
Avoid buffer overreads and false OOM error reports that could be caused by corrupted sample records in the sqlite_stat4 table. file: [30dd8962] check-in: [9f85b6a5] user: dan branch: sqlite_stat4, size: 53812
13:34
Fix a potential segfault following an OOM while running ANALYZE. file: [0427f9ea] check-in: [01187978] user: drh branch: sqlite_stat4, size: 53389
2013-08-15
19:56
Fix a crash that can occur if the sqlite_stat3 or sqlite_stat4 table is corrupt. file: [9533c7e9] check-in: [d51df8a8] user: dan branch: sqlite_stat4, size: 53358
16:15
Make sure the ANALYZE command allocates enough VDBE registers. file: [e60d6329] check-in: [46fec9b1] user: drh branch: sqlite_stat4, size: 53376
14:39
Add tests for sqlite_stat4 sample selection. And a fix for the same. file: [f7494349] check-in: [1fb4d9d6] user: dan branch: sqlite_stat4, size: 53379
2013-08-14
19:54
Change the way ANALYZE works to use a single cursor when scanning indices. file: [37b78257] check-in: [bdce612b] user: dan branch: sqlite_stat4, size: 53161
2013-08-12
20:14
If ENABLE_STAT3 is defined but ENABLE_STAT4 is not, have ANALYZE create and populate the sqlite_stat3 table instead of sqlite_stat4. file: [cbd13a1b] check-in: [cca8bf43] user: dan branch: sqlite_stat4, size: 54815
17:31
If there is data in both the sqlite_stat4 and sqlite_stat3 tables for a single index, ignore the sqlite_stat3 records. file: [c020f2ff] check-in: [2a417367] user: dan branch: sqlite_stat4, size: 54949
17:00
Handle a NULL input to decodeIntArray() that can result from a prior OOM. file: [cfbf5b63] check-in: [fa1588ad] user: drh branch: sqlite_stat4, size: 54570
16:34
Re-enable reading from the sqlite_stat3 table (as well as sqlite_stat4). file: [e5ce42f0] check-in: [6d45078e] user: dan branch: sqlite_stat4, size: 54547
11:21
Fix a bug in calculating the average number of entries for keys not present in the sqlite_stat4 table. file: [fd1bcb9b] check-in: [ec3ffb17] user: dan branch: sqlite_stat4, size: 51095
09:29
Fix minor problems caused by adding the rowid to the records in stat4. file: [49729c11] check-in: [088d1ff9] user: dan branch: sqlite_stat4, size: 50520
2013-08-10
19:08
Add the rowid field to the end of sample records stored in the sqlite_stat4 table. file: [178c33a7] check-in: [3a5e8ab7] user: dan branch: sqlite_stat4, size: 50509
2013-08-09
19:04
Fix a couple of typos in a comment in analyze.c. No code changes. file: [aba0749f] check-in: [5bcccb93] user: dan branch: sqlite_stat4, size: 49040
14:07
Update the header comment on analyze.c to describe the sqlite_stat4 table format. file: [9fced5c1] check-in: [4d97809d] user: drh branch: sqlite_stat4, size: 49036
2013-08-07
19:46
Replace variable Index.avgEq (average number of rows in keys for which there is no sample in sqlite_stat4) with vector Index.aAvgEq. file: [0f54320f] check-in: [7b70b419] user: dan branch: sqlite_stat4, size: 47808
16:38
Fix typos in a comment in analyze.c. No code changes. file: [fcc42c3a] check-in: [812ed0c5] user: dan branch: sqlite_stat4, size: 47621
16:15
Change the way samples for the sqlite_stat4 table are collected. file: [8dfc6a70] check-in: [13ed5ac1] user: dan branch: sqlite_stat4, size: 47487
2013-08-06
20:15
Fixes for builds without SQLITE_ENABLE_STAT4. file: [b8b0d153] check-in: [84999e27] user: dan branch: sqlite_stat4, size: 47137
2013-08-05
19:04
Modify the vdbe code generated by ANALYZE to use fewer memory cells and cursor slots. file: [726a63b1] check-in: [4a51cf28] user: dan branch: sqlite_stat4, size: 47103
18:00
Use N separate cursors when scanning an index with N columns to collect sqlite_stat4 data. This fixes a problem with collecting incorrect nEq values from multi-column indexes. file: [a0979f7f] check-in: [3a71afe6] user: dan branch: sqlite_stat4, size: 48002
05:34
Fix a couple of problems in code related to sqlite_stat4. file: [b9fb000c] check-in: [badd24d9] user: dan branch: sqlite_stat4, size: 47206
2013-08-03
20:24
Begin adding experimental sqlite_stat4 table. This commit is buggy. file: [7c272ae2] check-in: [2beea303] user: dan branch: sqlite_stat4, size: 46994
2013-08-01
04:39
Fix the ANALYZE command to work with partial indices. file: [a33fcb0b] check-in: [60353124] user: drh branch: partial-indices, size: 40034
2013-05-28
12:11
Many small harmless comment changes. Removal of obsolete comments and fixing misspelled words. No changes to code. file: [27e541b9] check-in: [a0d5cc93] user: drh branch: trunk, size: 39849
2013-03-01
01:07
Always use strncmp() rather than memcmp() when comparing strings where one or other string might be less than the length parameter, since optimized versions of memcmp() might read past the first difference and in so doing generate an access violation. file: [d5f89581] check-in: [d7343558] user: drh branch: trunk, size: 39849
2012-08-06
18:50
When reusing pages as part of creating a new index, allocate the leaves from each free-list trunk page in ascending order, instead of trying to maximize localization for each individual allocation. This increases the chance that pages will be written to disk in ascending order by a large CREATE INDEX statement, improving overall performance. file: [7553068d] check-in: [d045f8b2] user: dan branch: sorter-coalesce-writes, size: 39843
2012-07-30
14:53
Replace a few sqlite3_malloc()+memset() sequences with calls to sqlite3MallocZero(). file: [a4790912] check-in: [305b6667] user: dan branch: trunk, size: 39830
2012-07-18
16:07
Remove another branch from the DbMalloc() paths. file: [1f05d25f] check-in: [defd828e] user: dan branch: calloc, size: 39812
2012-03-19
10:21
Ensure that compatible malloc and free functions are used with stat3 data if SQLITE_ENABLE_STAT3 is defined. file: [70c46504] check-in: [32bb1ece] user: dan branch: trunk, size: 39846
2011-12-11
02:30
Fix STAT3 so that it works with the new uninitialized register logic of the VDBE. Ticket [7bbfb7d4422ff] file: [f32ff304] check-in: [d11a5798] user: drh branch: trunk, size: 39664
2011-10-21
19:06
Purge lingering references to SQLITE_STAT2 from the code and test scripts. file: [5a1db16a] check-in: [aed2bf7a] user: drh branch: trunk, size: 39605
2011-10-07
23:52
Change the ANALYZE command so that it no longer tried to delete unused sqlite_stat2 and sqlite_stat3 tables. Change the DROP TABLE command so that it is able to drop those tables. file: [682fd999] check-in: [589f3f56] user: drh branch: trunk, size: 39605
2011-09-23
13:25
Fix typos in the format description comment of analyze.c. file: [775421ce] check-in: [74e27fad] user: drh branch: stat3-trunk, size: 40008
2011-09-22
20:52
Remove the restriction on the number of entries per index in sqlite_stat3. file: [f2b6e33f] check-in: [374343c8] user: drh branch: stat3-trunk, size: 40004
18:46
Fix an issue in ANALYZE when STAT3 is disabled but both sqlite_stat2 and sqlite_stat3 tables exist. Also add testability tweaks to the STAT3 code. file: [12c096a7] check-in: [3ca7e449] user: drh branch: stat3-trunk, size: 40070
00:28
Fix an uninitialized variable and a misuse of memcpy(). file: [78a513d6] check-in: [ee110d5a] user: drh branch: stat3-trunk, size: 40043
2011-09-21
00:09
Pull in the latest changes from trunk. Update the STAT3 documentation. file: [002e0854] check-in: [63fc3e4b] user: drh branch: stat3-trunk, size: 40040
2011-08-26
15:51
Get stat3 working after import from trunk-based the stat3-enhancement branch. There is still a problem in the wal2 test. file: [46536438] check-in: [01cc4ff6] user: drh branch: stat3-3.7.2, size: 39124
13:52
Merge branches branch-3.7.2 and stat3-enhancement into a new branch for testing purposes. file: [107333cc] check-in: [0df04f92] user: drh branch: stat3-3.7.2, size: 38596
2011-08-18
13:45
Fix the stat3 analysis loader to be compatible with sqlite3_db_status(). Also fix some OOM issues with the stat3 analysis loader. file: [3fbffcfb] check-in: [eaf447ea] user: drh branch: stat3-enhancement, size: 39268
01:10
Fix an error with OOM processing in the ANALYZE logic. file: [6beb1c0a] check-in: [b26ec79c] user: drh branch: stat3-enhancement, size: 39204
2011-08-16
17:06
Fix a few harmless compiler warnings. Add SQLITE_ENABLE_STAT3 to the standard compiler warning script. file: [f436b0f5] check-in: [3d68f9af] user: drh branch: stat3-enhancement, size: 39213
2011-08-15
12:02
Fix a couple of typos in comments in analyze.c. file: [8a41063d] check-in: [ae31dc67] user: dan branch: stat3-enhancement, size: 39108
2011-08-13
19:35
Further testing and bug fixing for sqlite_stat3. Added the Index.avgEq field to index statistics. Fixed several problems in the query planner associated with stat3. file: [c04d95f4] check-in: [89b2f708] user: drh branch: stat3-enhancement, size: 39108
15:25
Add the sqlite_stat3.nDLT field. Use an linear congruence PRNG to choose which samples to select from among those with the same nEq field. file: [6901cc6e] check-in: [1dcd2428] user: drh branch: stat3-enhancement, size: 38667
00:58
The ANALYZE command picks for 15 samples for sqlite_stat3 with the largest nEq fields, plus 5 other evenly spaced samples. file: [31a1ea5a] check-in: [8225924e] user: drh branch: stat3-enhancement, size: 37874
2011-08-12
01:51
Begin a branch that experimentally replaces sqlite_stat2 with a new table called sqlite_stat3 that will hopefully facilitate better query planning decisions. file: [da6661db] check-in: [52e1d7e8] user: drh branch: stat3-enhancement, size: 32030
2011-08-08
17:18
Add code to actually use the sqlite_stat2.cnt field in the query planner. This changes some plans resulting in a few failures in analyze5.test. file: [dcdbff4a] check-in: [d1248165] user: drh branch: query-planner-tweaks, size: 32186
2011-08-07
00:21
The ANALYZE command adds the sqlite_stat2.cnt column if it does not already exist. file: [ab43a0de] check-in: [794fde6f] user: drh branch: query-planner-tweaks, size: 32111
2011-08-06
19:48
The sqlite_stat2.cnt field is parsed if it is present. But it is not yet used. A large comment added to analyze.c to explain the format of the ANALYZE system tables. file: [8a5343a2] check-in: [6d1e2372] user: drh branch: query-planner-tweaks, size: 31792
02:03
Merge together the fork in the query-planner-tweaks branch. file: [19894783] check-in: [2daab6bd] user: drh branch: query-planner-tweaks, size: 26169
01:22
Fix a compiler warning when STAT2 is off. More test cases. Fix legacy tests to deal with the new STAT2 logic. file: [b1df43e5] check-in: [7e914aa9] user: drh branch: query-planner-tweaks, size: 26302
2011-08-05
22:31
Bug fixes to the sample-count logic for STAT2. A few test cases added. file: [533077e1] check-in: [e93c248c] user: drh branch: query-planner-tweaks, size: 26302
21:13
Add a column to the sqlite_stat2 table that contains the number of entries with exactly the same key as the sample. We do not yet do anything with this extra value. Some tests in analyze2.test are failing. file: [dcac3850] check-in: [eb434228] user: drh branch: query-planner-tweaks, size: 26292
01:09
Allow the sqlite_stat2 table to contain a number of samples other than the default of 10. file: [ddc492c1] check-in: [b9d41c34] user: drh branch: query-planner-tweaks, size: 25132
2011-04-09
03:20
If the keyword "unordered" appears at the end of the SQLITE_STAT1.STAT column for an index, then use that index for equality lookups only, never for range queries or sorting. This feature is currently undocumented and my change or be removed in a future release. file: [a425d62e] check-in: [8a42e236] user: drh branch: trunk, size: 25265
2011-04-04
18:22
Add a description of access rules for the Schema object and lots of asserts to verify that the access rules are followed. file: [a1ad9f4d] check-in: [ae8374af] user: drh branch: schema-parse-refactor, size: 25175
2011-04-01
14:26
Merge the ANALYZE-index enhancement into trunk. file: [d0a673d3] check-in: [7e237aea] user: drh branch: trunk, size: 25085
02:26
Fix two compiler errors associated with non-standard compile-time options. file: [6b536214] check-in: [e3bf2d5c] user: drh branch: trunk, size: 24435
01:38
Fix a compiler warning and an unreachable branch. Restore 100% branch test coverage. file: [b3a3d2e6] check-in: [4dc148bb] user: drh branch: trunk, size: 24378
2011-03-31
02:03
Change the ANALYZE command so that it will accept an index name as its argument and only reanalyze that one index. A quick smoke-test works. Need to study the implications to the query planner and test corner cases. file: [ecc36fc1] check-in: [c8f9edd9] user: drh branch: analyze-idx, size: 25095
2011-03-30
14:54
Do not generate sqlite_stat1 entries for empty tables when running ANALYZE. Ticket [83ea97620bd31016451] file: [cafa5a22] check-in: [3a27af5b] user: drh branch: trunk, size: 24445
2011-03-29
15:00
If the keyword "unordered" appears at the end of the SQLITE_STAT1.STAT column for an index, then use that index for equality lookups only, never for range queries or sorting. file: [0a58e3d8] check-in: [3b964155] user: drh branch: unordered-index-hack, size: 24517
2011-01-24
19:14
Fix a harmless compiler warning (a shadowed local variable) in analyze.c. file: [a0381623] check-in: [a1ad7fb3] user: drh branch: trunk, size: 24427
2011-01-04
20:06
Fix a null-pointer dereference that can occur on an OOM error while running ANALYZE with SQLITE_ENABLE_STAT2. file: [3af3fdb5] check-in: [73128d4e] user: drh branch: trunk, size: 24424
19:01
Fix the ANALYZE command so that it takes collating sequences into account when gathering index statistics. file: [a2257126] check-in: [a5867cfc] user: drh branch: trunk, size: 24324
17:57
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. file: [62ccd3a4] check-in: [824c8dd3] user: drh branch: trunk, size: 24172
2010-09-28
17:34
Get ANALYZE working again with -DSQLITE_ENABLE_STAT2 and virtual tables. file: [1ea594a9] check-in: [b7a26427] user: drh branch: trunk, size: 23913
14:26
Fix several harmless compiler warnings. file: [041ebe72] check-in: [7be03ecc] user: drh branch: trunk, size: 23895
2010-09-25
22:32
Enhance the ANALYZE command so that it gathers statistics in the sqlite_stat1 table even for tables that are empty or have no indices. file: [df69779a] check-in: [a7645d29] user: drh branch: trunk, size: 23895
2010-08-17
19:40
Suppress harmless compiler warning. file: [da65ce99] check-in: [3f8c068a] user: drh branch: trunk, size: 22489
2010-07-26
11:07
Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). file: [3642ebcd] check-in: [629e38a8] user: drh branch: experimental, size: 22465
2010-07-25
02:12
Further examples of using automatic deallocation to replace "delete" methods. file: [c949a108] check-in: [da2f62c5] user: drh branch: malloc-enhancement, size: 22157
2010-07-24
16:34
Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). file: [c1bcd04b] check-in: [ac1f37a6] user: drh branch: malloc-enhancement, size: 22503
11:28
Experimental code to measure memory consumed by database schemas and prepared statements. file: [6c2bdb1d] check-in: [9aa30342] user: dan branch: experimental, size: 22518
2010-07-23
15:41
Remove the Table.dbMem variable, as it is no longer being used for its original purpose. file: [4ffed15a] check-in: [6eddc6e6] user: dan branch: trunk, size: 22495
2010-06-02
05:53
Add some 'const' markers to static data that is really constant. file: [3457a2af] check-in: [e7073e23] user: dan branch: trunk, size: 22642
2010-03-26
01:54
Fix OOM error on ANALYZE with STAT2 enabled with zero-length data. Ticket [cbd054fa6b]. file: [8dfd781a] check-in: [c33b38b5] user: shaneh branch: trunk, size: 22636
2010-02-23
17:36
Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging output for CORRUPT, and CANTOPEN errors. file: [92a65a5a] check-in: [7c4cca6d] user: drh branch: trunk, size: 22517
2009-11-10
01:30
Remove the obsolete "$Id:$" RCS identifier strings from the source code. file: [55155f05] check-in: [f6c045f6] user: drh branch: trunk, size: 22714
2009-09-07
04:38
Warning cleanup from the MSVC compile. file: [5a8b8aa3] check-in: [26cd015c] user: shane branch: trunk, size: 22777
2009-08-20
23:05
Remove a redundant OOM test from the sqlite_stat2 analysis loader. file: [4584556d] check-in: [d30ceeb8] user: drh branch: trunk, size: 22738
16:11
Change the code that collects samples for sqlite_stat2 so that the first sample taken is the (nRow/(2*SQLITE_INDEX_SAMPLES))th entry in the index, where nRow is the total number of index entries. file: [e3ad83c1] check-in: [cbfe6e9d] user: dan branch: trunk, size: 22720
2009-08-19
16:34
Fix an assert() failure that may follow an OOM error. file: [b62fc66f] check-in: [14a715c5] user: dan branch: trunk, size: 22442
14:34
Clean up sqlite_stat2 related code. Add test cases. file: [98594913] check-in: [aa728e06] user: dan branch: trunk, size: 22080
09:09
Fix a problem where a buffer allocated from a lookaside pool was being released using the system free(). file: [3213d61e] check-in: [67207a15] user: dan branch: trunk, size: 21028
08:18
Add the SQLITE_ENABLE_STAT2 macro. If this is not defined at build-time, the stat2 table is not created, populated, or used. file: [1a5bf2ad] check-in: [362665e8] user: dan branch: trunk, size: 20891
2009-08-18
16:24
Change the sqlite_stat2 schema to be more flexible. file: [7f086e4d] check-in: [ded9dec6] user: dan branch: trunk, size: 19842
2009-08-17
17:06
First version of sqlite_stat2 (schema forces exactly 10 samples). file: [c3f1ea34] check-in: [dd96bda2] user: dan branch: trunk, size: 17942
2009-04-16
17:45
Add NEVER and ALWAYS tags to conditionals in analyze.c that always false or true. (CVS 6515) file: [e239496c] check-in: [fbbc80ea] user: drh branch: trunk, size: 14290
2009-02-28
10:47
Instead of linking temporary triggers on non-temporary tables into the Table.pTrigger list, search the temp schema for them on demand. Fix for #3688. (CVS 6329) file: [3585d1a4] check-in: [3befe1ef] user: danielk1977 branch: trunk, size: 14268
2009-02-20
10:58
Instead of using SetNumColumns, specify the number of columns in a table or index using the P4 argument. (CVS 6310) file: [9fc52fed] check-in: [e43ed649] user: danielk1977 branch: trunk, size: 14268
2009-02-19
14:39
Changes to reduce the heap space consumed by triggers, views and tables in the in-memory representation of the schema. Also to reduce the space used by prepared statements slightly. (CVS 6305) file: [2ca143d8] check-in: [d9f6ffbc] user: danielk1977 branch: trunk, size: 14320
2009-02-13
16:59
Make sure OOM errors in the ANALYSIS loader get reported back out to high-level layers. Strange behavior can result otherwise. (CVS 6292) file: [fc605682] check-in: [88a6355c] user: drh branch: trunk, size: 14310
2008-12-10
16:45
Add explicit casts to silence nuisance warnings from VC++. (CVS 6004) file: [c86fd6a1] check-in: [da1cbfa7] user: drh branch: trunk, size: 14200
2008-11-19
16:52
Fix some compiler warnings that show up when building the amalgamation only. (CVS 5927) file: [301a1358] check-in: [d1abe8a1] user: danielk1977 branch: trunk, size: 14209
09:05
Changes to avoid "unused parameter" compiler warnings. (CVS 5921) file: [0c69f21c] check-in: [88134322] user: danielk1977 branch: trunk, size: 14202
2008-11-03
20:55
Change the name of the Cursor object to VdbeCursor. (CVS 5857) file: [91b95843] check-in: [fdb98fd8] user: drh branch: trunk, size: 14166
2008-07-28
19:34
Implement the "lookaside" memory allocation cache. Use of this cache makes the speed1.test script run about 15% faster. Added new interfaces to control the cache. (CVS 5488) file: [747ce8cb] check-in: [e48f9697] user: drh branch: trunk, size: 14150
2008-03-25
09:47
Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912) file: [9ee63497] check-in: [04715364] user: danielk1977 branch: trunk, size: 14143
2008-01-25
15:04
Error messages says "no such view" instead of "no such table" when trying to DROP a VIEW that does not exist. (CVS 4750) file: [a78ac494] check-in: [50815a82] user: drh branch: trunk, size: 14148
2008-01-23
03:03
Make sqlite3SafetyOn() and sqlite3SafetyOff() macros which disappear when compiling without -DSQLITE_DEBUG=1. (CVS 4744) file: [13d64eeb] check-in: [5375ad6b] user: drh branch: trunk, size: 14142
2008-01-17
02:36
Registerification of the WHERE clause logic. (CVS 4716) file: [ac17da1f] check-in: [b3a141b2] user: drh branch: trunk, size: 14130
2008-01-12
12:48
Continuing work toward converting the VM into a register machine. (CVS 4707) file: [5aa93f19] check-in: [a6dddebc] user: drh branch: trunk, size: 14130
2008-01-10
23:50
More work toward converting the VM into a register-based machine. (CVS 4704) file: [52cbc357] check-in: [8cbd4651] user: drh branch: trunk, size: 14085
2008-01-09
23:04
All essential opcodes can now operate out of registers and completely avoid the stack. Many still optionally use the stack to support legacy code generation, but the stack is not required. The next step is to update all code generation to avoid using the stack. (CVS 4700) file: [6cd38a98] check-in: [e3cf1c1c] user: drh branch: trunk, size: 13503
2008-01-08
23:54
Registerify the comparison opcodes. (CVS 4697) file: [6327934f] check-in: [8862ce9c] user: drh branch: trunk, size: 13446
2008-01-05
16:29
Registerify binary operators. Add register tracing to debugging output. (CVS 4686) file: [96e12e03] check-in: [66396d2f] user: drh branch: trunk, size: 13411
05:20
Register-ify the OP_AddImm and all casting opcodes. Omit the OP_MemIncr opcode. (CVS 4683) file: [d80f65d2] check-in: [3e8a07dd] user: drh branch: trunk, size: 13542
04:06
Get rid of OP_Dup, OP_MemStore, OP_MemLoad, and OP_MemMove. Replace with OP_Copy, OP_SCopy, and OP_Move. Add the infrastructure for operation properties in1, in2, in3, out2, and out3 but do not yet use any of these. (CVS 4682) file: [4e24deee] check-in: [cc149eb9] user: drh branch: trunk, size: 13541
2008-01-04
22:01
Implement the out2-prerelease opcode design pattern. (CVS 4681) file: [117e6009] check-in: [fe057a88] user: drh branch: trunk, size: 13595
2008-01-03
18:03
Registers (aka memory cells) in the VM are now numbered starting with 1 instead of 0. A register number of 0 means "no such register". (CVS 4669) file: [addc8e75] check-in: [0b849805] user: drh branch: trunk, size: 13597
09:51
Change the OP_Insert opcode to read the key and data to insert from memory cells, not the stack. (CVS 4666) file: [d7b4dace] check-in: [46501f49] user: danielk1977 branch: trunk, size: 13601
07:54
Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663) file: [1fb7ada6] check-in: [35da261d] user: danielk1977 branch: trunk, size: 13607
00:01
Refactoring the VM. The P3 parameter is changed to P4. A P5 parameter is added (though not currently used.) Add routines sqlite3VdbeAddOpX() where X is one of 0, 1, 2, 3, or 4. (CVS 4660) file: [09e55b6b] check-in: [027875e4] user: drh branch: trunk, size: 13676
2008-01-02
14:28
Add opcodes OP_ResultRow and OP_RegMakeRec which are register-based equivalents to OP_Callback and OP_MakeRecord. Use the new opcodes. (CVS 4656) file: [40806c79] check-in: [4c7f35da] user: drh branch: trunk, size: 13681
00:34
Begin setting a foundation on which to convert the VM from a stack-based to a register-based machine. Everything is still mostly stack based with this check-in. This change merely begins adding infrastructure to support a register-based architecture. (CVS 4652) file: [cb25936f] check-in: [051ec01f] user: drh branch: trunk, size: 13681
2007-11-15
13:10
Fix a segfault that can occur after a malloc failure in an ANALYZE statement. Ticket #2772. (CVS 4544) file: [fd1a3d75] check-in: [d05eb67d] user: danielk1977 branch: trunk, size: 13691
2007-08-29
17:43
Improvements to mutex asserts. The quick test runs to completion without assertion faults. (CVS 4324) file: [49b4bd45] check-in: [2732af0e] user: drh branch: trunk, size: 13650
04:00
Better asserts(). But now some of the tests are busted again. (CVS 4320) file: [a28b43a5] check-in: [e8060f85] user: drh branch: trunk, size: 13573
2007-08-16
10:09
More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233) file: [a14237d8] check-in: [77b16713] user: danielk1977 branch: trunk, size: 13298
04:30
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) file: [e2bbd251] check-in: [deb7ecd6] user: drh branch: trunk, size: 13286
2007-06-20
13:37
Fix comment typo in analyze.c. Ticket #2434. (CVS 4101) file: [8d345472] check-in: [df9957b9] user: drh branch: trunk, size: 13272
2007-05-12
12:08
Make the ANALYZE command robust in the face of malloc() failures. (CVS 3989) file: [e8fcb1c3] check-in: [c08658e1] user: drh branch: trunk, size: 13272
2007-03-29
05:51
Change BtreeMoveto so that it can be biased to the right or to the center. Use a right bias when appending and a center bias when searching. This gives about a 15% reduction in calls to sqlite3VdbeRecordCompare. (CVS 3741) file: [4bbf5ddf] check-in: [ad4a6b1a] user: drh branch: trunk, size: 13153
2006-01-10
17:58
Store collation sequence names instead of pointers in sharable schema data structures. (CVS 2904) file: [7d2b7ab9] check-in: [0f0213be] user: danielk1977 branch: trunk, size: 13149
2006-01-09
06:29
Rename DbSchema to "Schema" and SqliteTsd to "ThreadData". (CVS 2893) file: [ed87abad] check-in: [82b81f69] user: danielk1977 branch: trunk, size: 13107
2006-01-08
18:10
Get LIMIT and OFFSET working again for negative limits and offsets. Ticket #1586. (CVS 2889) file: [fd2fe03b] check-in: [b2ac0be0] user: drh branch: trunk, size: 13101
2006-01-07
13:21
In shared-cache mode, lock all required tables before beginning to execute the body of the statement program. (CVS 2881) file: [82e334a1] check-in: [23b587b0] user: danielk1977 branch: trunk, size: 13109
2006-01-05
11:34
Add the shared schema/pager modifications. Very few tests so far. (CVS 2859) file: [d821684c] check-in: [deeda0dc] user: danielk1977 branch: trunk, size: 12648
2005-11-14
22:29
Create separate affinities for INTEGER and REAL. (CVS 2766) file: [ea42005e] check-in: [ce06c123] user: drh branch: trunk, size: 12332
2005-11-01
15:48
Omit the SQLITE_AFF_INTEGER type affinity. All numeric values are now of type real, though an integer representation is still sometimes used internally for efficiency. (CVS 2753) file: [2afd437e] check-in: [e0d6f61c] user: drh branch: trunk, size: 12332
2005-09-20
17:42
Code cleanup and simplification. Three new Mem opcodes added. The sqlite3VdbeJumpHere function added. (CVS 2730) file: [21a4cd12] check-in: [2471957f] user: drh branch: trunk, size: 12288
2005-09-10
22:40
The shell does not output the sqlite_stat1 table on .dump or .schema. The ANALYZE command now gathers statistics on tables that have only a single index because this sometimes helps when reordering tables in a join. (CVS 2686) file: [43a2d912] check-in: [26565b89] user: drh branch: trunk, size: 12415
2005-09-06
10:26
Fix ANALYZE so that it works even if the empty_result_callbacks pragma is enabled. Ticket #1409. (CVS 2659) file: [29c13440] check-in: [bfdaef12] user: drh branch: trunk, size: 12446
2005-07-23
22:59
A new optimizer that breaks a lot of tests. But none of them critically, I think. Nevertheless, there is a lot of work ahead to stabilize the code. (CVS 2564) file: [3ab32927] check-in: [86ce56cc] user: drh branch: trunk, size: 12435
14:52
Store the total number of rows as part of the ANALYZE statistics. (CVS 2563) file: [a0d88c22] check-in: [868279c7] user: drh branch: trunk, size: 12511
03:18
The results of ANALYZE are now loaded into internal data structures where they can be used. But they are not actually used yet. (CVS 2562) file: [443c3449] check-in: [1996bacf] user: drh branch: trunk, size: 12414
02:17
Full-coverage testing and documentation for the ANALYZE command. The results of analysis are still not loaded or used, however. (CVS 2561) file: [b849c238] check-in: [bd7583a5] user: drh branch: trunk, size: 10189
00:41
First code for the ANALYZE command. Mostly untested. The analysis is not loaded into the symbol tables and is not used by the optimizer. (CVS 2560) file: [0eb48929] check-in: [a4886b11] user: drh branch: trunk, size: 9994
2005-07-08
12:13
Add infrastructure for the ANALYZE command. Does not yet actually do anything. (CVS 2537) file: [2f770b39] check-in: [05b6ac9a] user: drh branch: trunk, size: 1049 Added