1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

302 Commits

Author SHA1 Message Date
drh
a6c2ed91ca Optimizations to the main loop inside sqlite3VdbeExec() to help VDBE byte code
run a few percent faster.

FossilOrigin-Name: d622ac6ac7a297754494d3a33dbaeea02836272e
2009-11-14 23:22:23 +00:00
drh
8cff69df11 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.

FossilOrigin-Name: b9eab885cd2ca1a1633329e7036c125e8dba62c5
2009-11-12 19:59:44 +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
40f75cf389 Remove some obsolete code within #if 0 that was causing developer concern.
FossilOrigin-Name: 1d64e9453fb59d2bb1b5cb0cbacaf135b8f928c3
2009-10-26 22:08:21 +00:00
dan
1d2ce4f804 Remove the sqlite3_reoptimize() API. The same functionality is now provided automatically to queries prepared using prepare_v2().
FossilOrigin-Name: 2c50b3d5aab7cd8cc841d61f8c3b2b34d2f0b54b
2009-10-19 18:11:09 +00:00
dan
937d0dea4f Add the experimental sqlite3_reoptimize() API.
FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
2009-10-15 18:35:38 +00:00
dan
f3677212e3 Fix a problem with the sqlite3VdbeMayAbort() assert failing following an OOM.
FossilOrigin-Name: b3027863505fa8edf355f3f5eea4502ef365175e
2009-09-10 16:14:50 +00:00
dan
144926d8b6 Add a complicated assert() to check that statement transactions are opened when required.
FossilOrigin-Name: 28aa1f4ea8dad56ffedb31d6c2bc27c1d6be2407
2009-09-09 11:37:20 +00:00
dan
e0af83aca6 Combine the OP_Statement and OP_Transaction opcodes.
FossilOrigin-Name: aec9dbd8d21c55c3945287a3dfa55d3ed168f977
2009-09-08 19:15:01 +00:00
dan
165921a742 Changes to support recursive triggers.
FossilOrigin-Name: 9b9c19211593d5ff7b39254a29c284560a8bcedb
2009-08-28 18:53:45 +00:00
danielk1977
595a523a10 Allow virtual tables to be used in shared-cache mode. (CVS 6928)
FossilOrigin-Name: 5d9e767a05e381235e064061043e30cc03a11a07
2009-07-24 17:58:53 +00:00
drh
8c5d152b53 Force 8-byte alignment of sqlite3_value objects in the
sqlite3VdbeUnpackRecord() primitive.  Ticket #3777. (CVS 6479)

FossilOrigin-Name: 2cc68272b1f70701268075cfa82fa64bb2a8179d
2009-04-10 00:56:28 +00:00
danielk1977
6ab3a2ec8a 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)
FossilOrigin-Name: d9f6ffbc5ea090ba0daac571fc9a6c68b9c864e4
2009-02-19 14:39:25 +00:00
danielk1977
10fb749b37 Change the way sqlite3VdbeSetColName() is called so as to remove a few lines of code. This also fixes #3470. (CVS 5853)
FossilOrigin-Name: bfce91429b1dad6e0ca36929e41a7adfb30f8522
2008-10-31 10:53:22 +00:00
drh
23f79d061f Modify the sqlite3VdbeUnpackRecord() interface to force the temporary
space to be 8-byte aligned.  This might be important for Sparc.
Ticket #3318. (CVS 5573)

FossilOrigin-Name: 00b177985ee08f13a7781d095936da3beaf0408c
2008-08-20 22:06:47 +00:00
drh
e63d999189 Additional changes toward fixing ticket #3292. (CVS 5562)
FossilOrigin-Name: 0b92cbf5255020d4fde382f81590ff0488936667
2008-08-13 19:11:48 +00:00
drh
ec1fc80ca3 A partial fix for ticket #3292. This fixes the original problem but there
are other similar problems lurking in the code still. (CVS 5561)

FossilOrigin-Name: 055f173ab1b6fb657bf817faa3a37335d8fa60d5
2008-08-13 14:07:40 +00:00
drh
c890fec362 Bring test coverage up to 99%. (CVS 5522)
FossilOrigin-Name: 2cd6bae80984126023bcf479e5f3db5eaa5c4134
2008-08-01 20:10:08 +00:00
drh
0acb7e4849 The compound-select merge optimization passes quick.test with no errors. (CVS 5299)
FossilOrigin-Name: 8bbfa97837a74ef0514e0c92ea2a6576f02cc361
2008-06-25 00:12:41 +00:00
drh
16ee60fff9 Add new Compare and Jump codes to the virtual machine. Use them in the
implementation of aggregate queries. (CVS 5257)

FossilOrigin-Name: 083113652ff8f69b18cf1611710fdbbe5fbd9fef
2008-06-20 18:13:25 +00:00
shane
9bcbdad298 Consolidated inline assembly versions of "hwtime()" into hwtime.h. Provided MSVC version. Modified code for consistent use of hwtime(). Changed implementation to use sqlite_uint64 and sqlite_int64 instead of unsigned long long int and long long int for MSVC compiler support. (CVS 5178)
FossilOrigin-Name: 9883b406ce24eae93942ee5e6aab33fb6b05329f
2008-05-29 20:22:37 +00:00
drh
e265b08458 Fix harmless compiler warnings. (CVS 5073)
FossilOrigin-Name: 227a6f67c21c87a7cf98f84b9d57a6dc9da93ebb
2008-05-01 17:03:49 +00:00
drh
26c9b5eaba Speed improvements by removing unnecessary memset() operations.
Also: do not resize the opcode array of a virtual machine to its
minimum size after code generation completes.  The extra resize
merely uses time. (CVS 4987)

FossilOrigin-Name: 2589955507fc1717891c4e07d1d658eb41660b87
2008-04-11 14:56:53 +00:00
danielk1977
dfb316d432 Changes to delay freeing buffers associated with vdbe memory cells until either sqlite3_finalize() or sqlite3_release_memory() is called. (CVS 4922)
FossilOrigin-Name: 8c2f69521f13bc24cf005520efbe0589eeadd763
2008-03-26 18:34:43 +00:00
drh
e14006d0de 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)

FossilOrigin-Name: ee381b43563e1b0637ee74389d076dff77deddf9
2008-03-25 17:23:32 +00:00
drh
1e968a0cbf 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)

FossilOrigin-Name: 0e1d84f2f456e7680bb667266745b629ddf3605f
2008-03-25 00:22:21 +00:00
drh
3f913576e5 Add the SQLITE_OMIT_DECLTYPE compile-time option. Remove more code when
SQLITE_ENABLE_COLUMN_METADATA is not defined. (CVS 4906)

FossilOrigin-Name: 8ef26646cff9be75c584a9abfcfffcfdb49b3969
2008-03-22 01:07:17 +00:00
drh
127b0a6105 Remove unused p4 element from the {quote: VdbeOpList} object. (CVS 4720)
FossilOrigin-Name: 1c37d7b69b672987a6974f4193f933666f4f0c3a
2008-01-17 17:27:30 +00:00
drh
c920628f26 Fix the build for AIX and other systems where "char" is unsigned by default. (CVS 4699)
FossilOrigin-Name: 47672af0c658573c6b305d224c6901058b8c0e00
2008-01-09 18:31:45 +00:00
drh
3557335658 Registerify the comparison opcodes. (CVS 4697)
FossilOrigin-Name: 8862ce9ceefba4f5d1ffbd51d824c05f42a58c22
2008-01-08 23:54:25 +00:00
danielk1977
2dca4ac1d3 Change the VdbeOp.p4 union to include specific pointer types for the various values of VdbeOp.p4type. (CVS 4667)
FossilOrigin-Name: 7e8330c8044dc7718e720dbd33f6e2fe970ead77
2008-01-03 11:50:29 +00:00
danielk1977
1f4aa337cd Change the OP_Insert opcode to read the key and data to insert from memory cells, not the stack. (CVS 4666)
FossilOrigin-Name: 46501f490a5f5577ea31c758df749e02c7c65f39
2008-01-03 09:51:55 +00:00
danielk1977
207872a488 Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663)
FossilOrigin-Name: 35da261daf602b1e938f05bbad1ff99213d9f4b9
2008-01-03 07:54:23 +00:00
drh
2400345a32 Revamp sqlite3VdbeAddOpList() so that the structure holds integer values
for P1, P2, and P3. (CVS 4661)

FossilOrigin-Name: 4dc507d87b242619fe32606452227900e16a6de7
2008-01-03 01:28:59 +00:00
drh
66a5167b47 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)

FossilOrigin-Name: 027875e4d4c4bd7686dc880c6917a968049b2fec
2008-01-03 00:01:23 +00:00
drh
119a531de4 Add operands p4 and p5 to the VdbeOp structure. (CVS 4659)
FossilOrigin-Name: ad528735e41ce2ec2e680b12e562d4ddb6650985
2008-01-02 17:25:54 +00:00
drh
d4e70ebd6f 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)

FossilOrigin-Name: 051ec01f2799e095516015f2ef0180e50fac387c
2008-01-02 00:34:36 +00:00
danielk1977
d0e2a85436 Add an experimental API for retrieving the SQL source from a compiled statement: sqlite3_sql(). Ticket #2769. (CVS 4543)
FossilOrigin-Name: d31f1e0d74a871d66cf7d3ef35faae5171d5cbc3
2007-11-14 06:48:48 +00:00
drh
598f134020 Floating point and 64-bit integer constants store in the virtual
machine opcodes in binary, not as text.  Performance improvement.
Ticket #2733. (CVS 4507)

FossilOrigin-Name: 7e30fd6a09899842c922b044714dc66796e545d4
2007-10-23 15:39:45 +00:00
drh
fb98264aab Fix for the sqlite3AbortOtherActiveVdbes() problem. (CVS 4328)
FossilOrigin-Name: e40d40a5d41c491bef852a92e5846b273b206909
2007-08-30 01:19:59 +00:00
drh
d0679edc7a Clean up the locking in the btree logic. (CVS 4316)
FossilOrigin-Name: 967ab229af462a8ae663090ea36b4cc10e351653
2007-08-28 22:24:34 +00:00
drh
900b31ef49 Work toward correct btree locking in a multithreaded environment. (CVS 4307)
FossilOrigin-Name: b8cc493b47e618648f645ab73eb0253739e03fcd
2007-08-28 02:27:51 +00:00
drh
87cc3b3180 Remove compiler warnings in the amalgamation. (CVS 3960)
FossilOrigin-Name: c5754530c6b1a8151c558f33d27fed70c95a988b
2007-05-08 21:45:27 +00:00
drh
ee85813c94 Fix the amalgamation generator so that all non-API functions have file scope. (CVS 3958)
FossilOrigin-Name: e9f56ead0514f3eac75807ea710c1f035b8add4f
2007-05-08 20:37:38 +00:00
drh
3c23a88562 When an automatic re-prepare occurs, take care not to reset the internal
schema symbol table.  Ticket #2156.  This change also includes some debugging
enhancements. (CVS 3578)

FossilOrigin-Name: 43fe7fc1c38f8d9b3c1346cb1d890c2e25cefe15
2007-01-09 14:01:13 +00:00
drh
c515525765 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)

FossilOrigin-Name: 3401388dba6c150f788397a4dfbcdb01313247e2
2007-01-08 21:07:17 +00:00
drh
b900aaf34a 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)

FossilOrigin-Name: f1efae9224170c9155afcf17ab3ee769a557b874
2006-11-09 00:24:53 +00:00
drh
4be8b51ee1 The echo module test is now running. Added the tclvar module test but have
not yet done anything with it. (CVS 3234)

FossilOrigin-Name: 29199eeea4c46168ccaa7535d4941bd740479dee
2006-06-13 23:51:34 +00:00
drh
a967e88645 Progress toward getting the virtual-table code generator to work. (CVS 3220)
FossilOrigin-Name: 3532f1340f939b0231c1d82a7b2d186cb096fb29
2006-06-13 01:04:52 +00:00
drh
b9bb7c187e Progress toward CREATE VIRTUAL TABLE. Still not even close to working... (CVS 3211)
FossilOrigin-Name: 898ec36b4102aaa03979f8f5c510936e57e2ae48
2006-06-11 23:41:55 +00:00