[3f068f00]
part of check-in [36fdeb4f]
Enhance the sqlite3VdbeMemAboutToChange() shallow-copy validation mechanism
by adding the new OP_ReleaseReg opcode to tell MemAboutToChange() that a
range of registers is no longer needed so that the source register can be
freely changed. This is a change to debugging and test builds only and
does not impact release builds. Fix for ticket
[c62c5e58524b204d] and [5ad2aa6921faa1ee]. The previous fix to ticket
[5ad2aa6921faa1ee] is backed out by this change since this change is a better
fix.
(check-in: [36fdeb4f]
user: drh
branch: trunk,
size: 15616)

[fdbc0a11]
part of check-in [84e02d77]
Simplify the bytecode generation for SQL function calls such that the
OP_Function or OP_PureFunc opcodes are coded directly, rather than using
the intermediate OP_Function0 or OP_PureFunc0 - opcodes that are now removed.
(check-in: [84e02d77]
user: drh
branch: trunk,
size: 15467)

[69a9f51e]
part of check-in [5dbb0734]
Have ALTER TABLE detect and error out for the case where renaming a column changes a the interpretation of a double-quoted identifier in the database schema from an SQL literal to a column reference.
(check-in: [5dbb0734]
user: dan
branch: tkt9b78184b-alt,
size: 15410)

[f99dbc42]
part of check-in [1b25fa10]
An experimental interface for retrieving the estimated cost and estimated
number of output rows for a query.
(check-in: [1b25fa10]
user: drh
branch: cost-est,
size: 15418)

[21725193]
part of check-in [4a0929ac]
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*.
(check-in: [4a0929ac]
user: drh
branch: trunk,
size: 15192)

[55f9ef5d]
part of check-in [7153552b]
Improvements to EXPLAIN QUERY PLAN formatting. The MULTI-INDEX OR now shows
a separate "INDEX" subtree for each index. SCALAR SUBQUERY entries provide
a subquery number that is related back to the .selecttrace output.
(check-in: [7153552b]
user: drh
branch: reuse-subqueries,
size: 15477)

[87fd8b2c]
part of check-in [b29e02f8]
Add the OP_ColumnsUsed opcode (when compiled with
SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which
columns of a btree cursor will be used.
(Backport from 3.8.11)
(check-in: [b29e02f8]
user: drh
branch: branch-3.8.9,
size: 11421)

[8990d668]
part of check-in [a4c890b0]
Refactor the sqlite3_normalized_sql() implementation. This is a
work-in-progress. There are still issues.
(check-in: [a4c890b0]
user: drh
branch: normalize-refactor,
size: 15191)

[5081dcc4]
part of check-in [529fb55e]
Fix UPSERT so that it checks the target-constraint first and fires the
DO UPDATE if that constraint is violated regardless of whether or not
other constraints are in violation. This aligns SQLite behavior with
what PostgreSQL does. Fix for ticket [908f001483982c43cdb476dfb590a1a].
(check-in: [529fb55e]
user: drh
branch: trunk,
size: 15035)

[d93abdc8]
part of check-in [76e42b70]
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.
(check-in: [76e42b70]
user: drh
branch: trunk,
size: 15120)

[5ec6ab3e]
part of check-in [cd2da7e1]
Enhancements and improved documentation to the byte-code branch coverage
testing logic. Provide new macros that allow the code to specify that
some branch instructions can never take the NULL path and that the OP_Jump
opcode is only interested in equal/not-equal. The
SQLITE_TESTCTRL_VDBE_COVERAGE file control callback now works slightly
differently (it provides the callback with a bitmask of the branch action,
rather than an integer).
(check-in: [cd2da7e1]
user: drh
branch: trunk,
size: 14980)

[9c8c245f]
part of check-in [b37614a3]
Add the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with
SQLITE_DEBUG, to do run-time verification of the column cache.
(check-in: [b37614a3]
user: drh
branch: trunk,
size: 13644)

[3dc7fd31]
part of check-in [5a4542db]
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no
statement aborts unless either there have been no writes or else there is
a statement journal.
(check-in: [5a4542db]
user: drh
branch: stmt-journal-testing,
size: 13452)

[fff31fb6]
part of check-in [0a514e62]
Ensure that new.* values of an UPDATE do not get clobbered after the
BEFORE triggers run when unmodified columns of the row being updated are
reloaded. Fix for ticket [d85fffd6ffe856092ed8da](check-in: [0a514e62]
user: drh
branch: trunk,
size: 12963)

[574ce9a0]
part of check-in [266a99f7]
Add new testcase() macros and fix a bug that was revealed when trying to
cover all the new test cases.
(check-in: [266a99f7]
user: drh
branch: upsert,
size: 12910)

[134beb7a]
part of check-in [bd46c442]
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.
(check-in: [bd46c442]
user: dan
branch: sessions-stat1,
size: 12825)

[c1fc5b3d]
part of check-in [0a5e1c04]
Allow indexes to be created on date/time functions as long as the 'now'
date and the 'localtime' and 'utc' modifiers are not used.
(check-in: [0a5e1c04]
user: drh
branch: index-on-date-func,
size: 12759)

[70a409d1]
part of check-in [e972a386]
Change sqlite3BtreeNext() and sqlite3BtreePrevious() so that they return
SQLITE_DONE if they have already reached the end (or beginning) of the table.
This gives a performance increase and size reduction.
(check-in: [e972a386]
user: drh
branch: trunk,
size: 12382)

[0a52f346]
part of check-in [c1adf959]
Add an optimization to OP_Column to speed up sequential OP_Column
instructions that read earlier fields from the same cursor. Attempt to reorder
OP_Column opcodes so as to take advantage of this.
(check-in: [c1adf959]
user: dan
branch: sort-column-opcodes,
size: 12348)

[59998ffd]
part of check-in [118ded40]
Experimental enhancement to automatically trim NULL values from the end of
records, for a reduced disk footprint. This change also involves increasing
the P5 operand from 8 to 16 bits.
(check-in: [118ded40]
user: drh
branch: trim-nulls,
size: 12313)

[c044be70]
part of check-in [6bf5ba10]
Revise the implementation of OP_Once so that it is smaller, faster, and uses
less memory. This also fixes an obscure bug introduced 3 days ago by check-in
[5990a1bdb4a073].
(check-in: [6bf5ba10]
user: drh
branch: trunk,
size: 12283)

[c743791f]
part of check-in [ca72be86]
Make sure every co-routines has its own set of temporary registers and does
not share temporaries, since a co-routine might expect the content of a
temporary register to be preserved across an OP_Yield.
Proposed fix for ticket [d06a25c84454a].
(check-in: [ca72be86]
user: drh
branch: trunk,
size: 12224)

[89da2c03]
part of check-in [1c8d3001]
Add and use the sqlite3VdbeZeroRegister() interface for coding the common
operation of writing zero into a register.
(check-in: [1c8d3001]
user: drh
branch: zero-register,
size: 12223)

[4297a88c]
part of check-in [0a5b00e4]
Add and use the sqlite3VdbeChangeOpcode() routine. Simplify the implementation
of the other sqlite3VdbeChange*() routines.
(check-in: [0a5b00e4]
user: drh
branch: trunk,
size: 11728)

[529bb4a7]
part of check-in [82a7a61b]
Merge in all the trunk changes from the previous year. This breaks the
cursor-hint mechanism, but provides a baseline for trouble-shooting.
(check-in: [82a7a61b]
user: drh
branch: cursor-hints,
size: 11808)

[d0f8ab91]
part of check-in [39936b33]
Merge all the latest enhancements from trunk. This merge include FTS5
and a number of notable performance enhancements.
(check-in: [39936b33]
user: drh
branch: sessions,
size: 11773)

[90048aea]
part of check-in [f167bba4]
Add a new opcode to the VDBE that gives the b-tree a hint about the set
of columns in a table or index that are actually used by the query.
(check-in: [f167bba4]
user: drh
branch: column-usage-hint,
size: 11501)

[b434bb75]
part of check-in [f09055f3]
Merge recent trunk enhancements, including the read-after-ROLLBACK change
and the addition of sqlite3_stmt_scanstatus() support, as well as various
minor bug fixes.
(check-in: [f09055f3]
user: drh
branch: sessions,
size: 11488)

[6fc69d9c]
part of check-in [f9684000]
Change the SQLITE_SCANSTAT_EST parameter so that it returns a double for
the estimated number of output rows per loop, rather than a 64-bit integer.
Revise the output format for the ".scanstats on" in the shell to make use
of this new capability.
(check-in: [f9684000]
user: drh
branch: scanstatus,
size: 11357)

[7d603b93]
part of check-in [9ea37422]
If SQLITE_ENABLE_STMT_SCANSTATUS is defined, record the number of times each VDBE opcode is executed. Derive the values returned by sqlite3_stmt_scanstatus() from these records on demand.
(check-in: [9ea37422]
user: dan
branch: scanstatus,
size: 11356)

[6bf91795]
part of check-in [c6a5b67a]
Add debugging code to count the number of iterations of each loop made as part of statement execution.
(check-in: [c6a5b67a]
user: dan
branch: debug-loopcounters,
size: 11394)

[d5825ae5]
part of check-in [5e5d6e86]
Add the OPFLAG_MULTICOLUMN flag to the OP_Column opcode. Rearrange OP_Column
instructions to take advantage of the new flag for a small performance
increase
(check-in: [5e5d6e86]
user: drh
branch: faster-OP_Column,
size: 11239)

[09f5b4e3]
part of check-in [8239c35a]
Reduce the number of arguments to RecordCompare functions from 4 to 3,
resulting in a small performance increase.
(check-in: [8239c35a]
user: drh
branch: micro-optimizations,
size: 11193)

[39446490]
part of check-in [7fa85eaa]
Enhance the sqlite3VdbeRecordCompare() routines so that if they encounter
database corruption, they will set the UnpackedRecord.isCorrupt field and
return 0. The sqlite3BtreeMovetoUnpacked() routine detects this and returns
SQLITE_CORRUPT, causing the corruption to be reported back to the top-level.
(check-in: [7fa85eaa]
user: drh
branch: trunk,
size: 11138)

[fb2c48c1]
part of check-in [0a5318bc]
Attempt to work around MSVC's treatment of __LINE__ as a non-constant value
in "Edit and Continue" mode by avoiding the use of __LINE__ when
SQLITE_VDBE_COVERAGE is not defined.
(check-in: [0a5318bc]
user: drh
branch: trunk,
size: 11150)

[0758eff7]
part of check-in [85206e0b]
Attempt to speed up sqlite3VdbeRecordCompare() by various means. This code is in an interim state.
(check-in: [85206e0b]
user: dan
branch: experimental,
size: 11055)

[57b87844]
part of check-in [3a9bec52]
If the SQLITE_ENABLE_CURSOR_HINTS macro is defined, then invoke the
sqlite3BtreeCursorHint() interface to provide hints to the storage engine
about rows that need not be returned. Hints can be disabled using
SQLITE_TESTCTRL_OPTIMIZATIONS with SQLITE_CursorHints (0x2000). Cursor
hints are not used by the built-in storage engine of SQLite but might
be useful to applications that provide their own storage engine. The
current code is work-in-progrss and contains bugs.
(check-in: [3a9bec52]
user: drh
branch: cursor-hints,
size: 9367)

[c06f0813]
part of check-in [8ce33f4c]
Add the "PRAGMA vdbe_eqp" command, only available with SQLITE_DEBUG. Simplify
some of the other debugging logic.
(check-in: [8ce33f4c]
user: drh
branch: trunk,
size: 9201)

[c7aa561d]
part of check-in [5addd123]
Merge in the WITHOUT ROWID changes. A few tests are failing now. They will
be fixed in a follow-on check-in.
(check-in: [5addd123]
user: drh
branch: sessions,
size: 9370)

[8d5a7351]
part of check-in [defd5205]
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.
(check-in: [defd5205]
user: drh
branch: omit-rowid,
size: 9239)

[c18a2dd9]
part of check-in [6d9af606]
Make sure KeyInfo objects on multi-column indices of WITHOUT ROWID tables
have the correct nField and nXField values. Also, add the
SQLITE_ENABLE_MODULE_COMMENT compile-time option and the VdbeModuleComment()
macro and use it to label entry and exit points of some key routines.
(check-in: [6d9af606]
user: drh
branch: omit-rowid,
size: 9519)

[6bdee35c]
part of check-in [e1a89b56]
Add the SQLITE_ENABLE_EXPLAIN_COMMENTS compile-time option to enable extra
commentary in the EXPLAIN output. Formerly, this was only available with
SQLITE_DEBUG.
(check-in: [e1a89b56]
user: drh
branch: trunk,
size: 9092)

[f380af2a]
part of check-in [71effa59]
Ensure that all auxiliary data registered by calls to sqlite3_set_auxdata() is destroyed when the VM is halted. Partial fix for [406d3b2ef9].
DRH adds: Stray text accidentally inserted into vdbe.c just prior to
the commit breaks the build.
(check-in: [71effa59]
user: dan
branch: typo,
size: 9046)

[b5288727]
part of check-in [f7c5abe8]
Make sure all virtual table cursors have been closed on a prepared statement
prior to unlinking the perpared statement from its database connection.
(check-in: [f7c5abe8]
user: drh
branch: deferred-close-order,
size: 9217)

[18f581ca]
part of check-in [557c6905]
Modify the OP_Once opcode so that it works correctly in trigger sub-programs. This is a candidate fix for [7bbfb7d442].
(check-in: [557c6905]
user: dan
branch: trunk,
size: 9218)

[f0725ee9]
part of check-in [7f00552b]
Add the new OP_Once opcode. Use it to clean up and simplify various
one-time initialization sections in the code, including the fix for
ticket [002caede898ae].
(check-in: [7f00552b]
user: drh
branch: tkt-002caede898,
size: 9149)

[5cf09e7e]
part of check-in [957b2ab6]
Create and use a function especially for adding the ParseSchema opcode.
This gives a small reduction in code and a small performance increase.
(check-in: [957b2ab6]
user: drh
branch: trunk,
size: 9017)

[d9c61233]
part of check-in [b3aaf715]
Refactor the SQL parameter processing so that parameter names for values
that are optimized out of the prepare statement are not forgotten.
(check-in: [b3aaf715]
user: drh
branch: trunk,
size: 8966)

[8a675fef]
part of check-in [bf664b20]
Fix the P4_TRANSIENT constant so that it works correct - so that it really
makes a copy of the string for the P4 argument. Use P4_TRANSIENT wherever
appropriate. Change P4_STATICs of schema names to P4_TRANSIENT.
(check-in: [bf664b20]
user: drh
branch: trunk,
size: 8952)

[e1b91019]
part of check-in [00e55102]
Change the way SubProgram objects are deleted so that the code is the same for deletion and measurement.
(check-in: [00e55102]
user: dan
branch: experimental,
size: 9013)

[bea1f0cd]
part of check-in [545cfb3b]
Initial check-in of code that inserts tokenizations of the values
for bound parameters into the output of sqlite3_trace().
(check-in: [545cfb3b]
user: drh
branch: trunk,
size: 8845)

[5f357506]
part of check-in [d622ac6a]
Optimizations to the main loop inside sqlite3VdbeExec() to help VDBE byte code
run a few percent faster.
(check-in: [d622ac6a]
user: drh
branch: trunk,
size: 8762)

[65cd747e]
part of check-in [b9eab885]
Enhance the OP_Found and OP_NotFound opcodes so that they can accept an
array of registers as an unpacked record in addition to a record built
using OP_MakeRecord. Use this to avoid OP_MakeRecord calls during IN
expression processing.
(check-in: [b9eab885]
user: drh
branch: trunk,
size: 8742)

[d70a68be]
part of check-in [d9f6ffbc]
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)
(check-in: [d9f6ffbc]
user: danielk1977
branch: trunk,
size: 7942)

[03516f28]
part of check-in [bfce9142]
Change the way sqlite3VdbeSetColName() is called so as to remove a few lines of code. This also fixes #3470. (CVS 5853)
(check-in: [bfce9142]
user: danielk1977
branch: trunk,
size: 7937)

[ccca49ce]
part of check-in [055f173a]
A partial fix for ticket #3292. This fixes the original problem but there
are other similar problems lurking in the code still. (CVS 5561)
(check-in: [055f173a]
user: drh
branch: trunk,
size: 7917)

[1246ace5]
part of check-in [08311365]
Add new Compare and Jump codes to the virtual machine. Use them in the
implementation of aggregate queries. (CVS 5257)
(check-in: [08311365]
user: drh
branch: trunk,
size: 7787)

[ecca2e1c]
part of check-in [ee381b43]
Modify the {quote: IdxDelete} opcode so that it takes an array of registers rather
than a record formed using {quote: MakeRecord.} This avoids a needless packing
and unpacking of the record to be deleted. (CVS 4916)
(check-in: [ee381b43]
user: drh
branch: trunk,
size: 7518)

[0fef6798]
part of check-in [0e1d84f2]
Removed the direct btree tests - part of the ongoing effort to test by
calling only public interfaces. Modify the sqlite3VdbeRecordCompare
interface to used a pre-parsed second key - resulting in a 13%
performance improvement on speed1p.test. (CVS 4911)
(check-in: [0e1d84f2]
user: drh
branch: trunk,
size: 7526)

[ad5fd7aa]
part of check-in [35da261d]
Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663)
(check-in: [35da261d]
user: danielk1977
branch: trunk,
size: 6340)

[a042e6d3]
part of check-in [051ec01f]
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)
(check-in: [051ec01f]
user: drh
branch: trunk,
size: 5995)

[f20886fb]
part of check-in [3401388d]
Fix a critical bug in sqlite3_prepare_v2 that can lead to segfaults when
the schema changes and the statement is recompiled automatically.
Ticket #2154. (CVS 3576)
(check-in: [3401388d]
user: drh
branch: trunk,
size: 5555)

[9720cae6]
part of check-in [f1efae92]
First cut at adding the sqlite3_prepare_v2() API. Test cases added, but
more testing would be useful. Still need to update the documentation. (CVS 3506)
(check-in: [f1efae92]
user: drh
branch: trunk,
size: 5558)

[80ba1c39]
part of check-in [6ebb8f9b]
Add a symbol P3_TRANSIENT to pass to VdbeSetColName() to make it copy the string parameter up to the first 0 byte. (CVS 3070)
(check-in: [6ebb8f9b]
user: danielk1977
branch: trunk,
size: 5228)

[c8e10597]
part of check-in [17039ec3]
Rewrite the aggregate handling logic so that it runs in O(1) space.
This is the first cut at the code. Many regression tests fail. (CVS 2662)
(check-in: [17039ec3]
user: drh
branch: trunk,
size: 4763)

[7f586cb6]
part of check-in [f0d64dc8]
Fix a typo in vdbeInt.h. This was potentially a serious mistake, but we got
lucky and it is benign. (CVS 2418)
(check-in: [f0d64dc8]
user: drh
branch: trunk,
size: 4926)

[94457ca7]
part of check-in [9f2b6d9d]
Manifest types in indices. At the moment indices use manifest typing, but
some other parts of the SQL engine do not, which can lead to some strange
results. (CVS 1368)
(check-in: [9f2b6d9d]
user: danielk1977
branch: trunk,
size: 4001)

[2dc4d116]
part of check-in [2bca9224]
Get the code back to the point where it will compile the btree.c tests.
Move the default key comparison routine from btree.c into vdbeaux.c.
Commented out code in vdbe.c that will need to be fixed. (CVS 1326)
(check-in: [2bca9224]
user: drh
branch: trunk,
size: 3989)

[3cf970b0]
part of check-in [8af6474c]
Change lots of internal symbols from sqliteXXX to sqlite3XXX so that the
library links again. It doesn't work yet, due to changes in the btree layer
calling convention. (CVS 1324)
(check-in: [8af6474c]
user: danielk1977
branch: trunk,
size: 3937)

[3957844e]
part of check-in [990bb118]
Update Makefile.in for the new vdbeaux.c file. Remove the experimental
"sqlite_instantiate()" routine and replace it with "sqlite_bind()" which
is more like ODBC and JDBC. (CVS 1095)
(check-in: [990bb118]
user: drh
branch: trunk,
size: 3445)

[985c24f3]
part of check-in [087d1e83]
Use a intermediate table when inserting a TEMP table from a SELECT that
reads from that same TEMP table. Ticket #275. (CVS 895)
(check-in: [087d1e83]
user: drh
branch: trunk,
size: 3353)

[30b808a3]
part of check-in [065fa818]
First code for the new callback-free API. All regression tests pass but the
new API is mostly untested and is unlikely to work. (CVS 852)
(check-in: [065fa818]
user: drh
branch: trunk,
size: 3564)

[754eba49]
part of check-in [a1c071ea]
If compiled with the -DVDBE_PROFILE=1 option, special code is inserted that
uses the pentium RDTSC instruction to compute very precise runtimes on all
VDBE opcodes. (This only works on i586 processors, of course.) The results
are written into the vdbe_profile.out file for analysis. Hopefully, this
new feature will reveal hot spots that can be optimized to make the VDBE run
faster. (CVS 807)
(check-in: [a1c071ea]
user: drh
branch: trunk,
size: 3333)

[b7584044]
part of check-in [eb54d455]
Modify the build process so that the VDBE opcode numbers and the table
that contains the opcode names are both automatically generated. This makes
it much easier to create new VDBE opcodes. (CVS 746)
(check-in: [eb54d455]
user: drh
branch: trunk,
size: 3160)

[7cfeb3aa]
part of check-in [723362e7]
Slightly faster INSERTs from a SELECT by avoiding an intermediate table.
But it didn't make nearly as much difference as I had hoped. (CVS 732)
(check-in: [723362e7]
user: drh
branch: trunk,
size: 7842)

[52ec880c]
part of check-in [c602603e]
Fix for ticket #136: Added the OP_RenameCursor VDBE instruction and used it
to make cursor numbers right on nested subqueries. Also added OP_Gosub and
OP_Return but have not actually used them for anything yet. (CVS 727)
(check-in: [c602603e]
user: drh
branch: trunk,
size: 7803)

[fba15f32]
part of check-in [699cf362]
Make the LIMIT clause work even if the destination of the SELECT is
something other than a callback. (Ticket #66) (CVS 619)
(check-in: [699cf362]
user: drh
branch: trunk,
size: 7379)

[1742d6f8]
part of check-in [8481e841]
Add optimizations for the IN operator in WHERE clauses. This is a partial
implementation of enhancement #63. Still need to add test cases. (CVS 610)
(check-in: [8481e841]
user: drh
branch: trunk,
size: 7346)

[b8706429]
part of check-in [90511737]
NULL values are distinct. A comparison involving a NULL is always false.
Operations on a NULL value yield a NULL result. This change makes SQLite
operate more like the SQL spec, but it may break existing applications that
assumed the old behavior. All the old tests pass but we still need to add
new tests to better verify the new behavior. Fix for ticket #44. (CVS 589)
(check-in: [90511737]
user: drh
branch: trunk,
size: 7280)

[def669b9]
part of check-in [c53b0b92]
Change the names of the PushList and PopList opcodes to ListPush and ListPop
so that they will appear together with the other List opcodes in the
documentation. (CVS 583)
(check-in: [c53b0b92]
user: drh
branch: trunk,
size: 7247)

[67840a46]
part of check-in [51572bf7]
Fix for ticket #1: Implement the GLOB and LIKE operators as functions that
can be overridden. This way, a developer can change the LIKE operator to
be case sensitive, for example. (CVS 537)
(check-in: [51572bf7]
user: drh
branch: trunk,
size: 7114)

[8ab845e6]
part of check-in [50797fee]
Completely remove the old SQL function system and replace it with the
new user functions. The code currently compiles but it coredumps on the
test suite. Do not use in its present state. (CVS 400)
(check-in: [50797fee]
user: drh
branch: trunk,
size: 7378)

[98e445d6]
part of check-in [1e037eb3]
Code for user-defined aggregates added. Legacy tests all pass but there
has been no testing of the new user-defined aggregate code. (CVS 392)
(check-in: [1e037eb3]
user: drh
branch: trunk,
size: 7378)

[20a66257]
part of check-in [c6e9048e]
Change the name of the sanity_check PRAGMA to "integrity_check" and make
it available on all compiles. (CVS 381)
(check-in: [c6e9048e]
user: drh
branch: trunk,
size: 7214)

[cd4c8647]
part of check-in [262bcd17]
The new code for taking advantage of inequalities in WHERE clauses
is in place. It appears to work. (CVS 305)
(check-in: [262bcd17]
user: drh
branch: trunk,
size: 6966)

[a1170446]
part of check-in [e6ca23fa]
Incremental update. We are in the middle of modifying the index system
to support range queries without doing a complete table scan. (CVS 303)
(check-in: [e6ca23fa]
user: drh
branch: trunk,
size: 7098)

[4a587ec5]
part of check-in [e1370276]
Remove cruft: restrict the number of sorters and lists in the VDBE to one
since no more than one was ever used anyway. This eliminates several
op-codes and simplifies the implementation of several others. (CVS 297)
(check-in: [e1370276]
user: drh
branch: trunk,
size: 6992)

[6ee941ec]
part of check-in [a0a1e701]
The BTree changes are now integrated and the whole thing compiles and
links. I have not yet tried to run it, though. (CVS 239)
(check-in: [a0a1e701]
user: drh
branch: trunk,
size: 6842)

[533068ed]
part of check-in [6ecc8b20]
The code is in place to replace GDBM with BTree. But I have not yet
attempted to compile it. I am sure the code contains bugs. (CVS 238)
(check-in: [6ecc8b20]
user: drh
branch: trunk,
size: 6842)