Commit Graph

181 Commits

Author SHA1 Message Date
dan 8a2fff7a78 Fix a problem with FK constraints that implicitly map to a composite primary key.
FossilOrigin-Name: e0a48d53110130de75602603f524539e421a9dba
2009-09-23 18:07:22 +00:00
dan 32b09f29c9 Do not check immediate foreign key constraints until the end of the statement. This matches the postgres behaviour.
FossilOrigin-Name: 1a32149cc3c722058f4ed4c81edadeb6ce5bc9e4
2009-09-23 17:29:59 +00:00
dan 1da40a381f Check in implementation of foreign key constraints.
FossilOrigin-Name: d5d399811876391642937edeb9e8434dd9e356f5
2009-09-19 17:00:31 +00:00
drh 3e9ca09453 Code simplifications, especially to the pseudo-table logic, and comment
improvements.

FossilOrigin-Name: 52449a9569b7142095cc88ee208b31cc59a3cab4
2009-09-08 01:14:48 +00:00
dan 65a7cd1631 More fixes and comment updates.
FossilOrigin-Name: 38a9327bad1a01e3d7a47fad44ece2f6c7e88643
2009-09-01 12:16:01 +00:00
dan 76d462ee78 Fixes for new triggers scheme.
FossilOrigin-Name: 9eb91efda5241609ff18ff15ef5eaa0e86788eab
2009-08-30 11:42:51 +00:00
dan 165921a742 Changes to support recursive triggers.
FossilOrigin-Name: 9b9c19211593d5ff7b39254a29c284560a8bcedb
2009-08-28 18:53:45 +00:00
drh 35f6b936ce Simplifications to vdbe.c to promote better test coverage. (CVS 6802)
FossilOrigin-Name: 3ffc93d762b64fd84f47c4b6d68ab56b69ea98a9
2009-06-23 14:15:04 +00:00
drh aa73609f92 Simplifications to vdbe.c in support of coverage testing. (CVS 6794)
FossilOrigin-Name: 16680f05bd169dfb1b4bf0eb082e69701f9b07ab
2009-06-22 00:55:30 +00:00
drh 8bfdf72136 Reorganize and cleanup the prepared statement object. Remove code that has
been commented out for ages and is no longer relevant to anything. (CVS 6786)

FossilOrigin-Name: 37ae5f5e8feb34a8e6e8b34aa18df1e9a1ce55cb
2009-06-19 14:06:03 +00:00
drh 35cd643cc7 Take care that a corrupt variable-length integer does not cause 32-bit
integer overflow when parsing a record format, nor cause excessively large
memory allocations. (CVS 6719)

FossilOrigin-Name: 38b20327a80996c7044b88be32161ac4ac0ec3a9
2009-06-05 14:17:21 +00:00
danielk1977 de630353d8 Speed up INSERT operations that add data to UNIQUE or PRIMARY KEY indexes by rationalizing duplicate seek operations. (CVS 6599)
FossilOrigin-Name: cac4f3d812f0a02ca5c1fa78d366f694403929a8
2009-05-04 11:42:29 +00:00
drh 1b26c7ccfa Remove the rowhash object from the code. Rowset now fills its role. (CVS 6535)
FossilOrigin-Name: e963bed0fe3ce5fa32f04b930e5ed0956dc2aa47
2009-04-22 02:15:47 +00:00
danielk1977 1d46146b58 Attempt to optimize virtual table queries with 'OR' expressions in the WHERE clause. (CVS 6527)
FossilOrigin-Name: f61e4cd93682fd98bea2a71d346f9eaa68454390
2009-04-21 09:02:45 +00:00
danielk1977 f7590db099 Changes to ensure that when running in shared-cache mode with a non-threadsafe build, the correct busy-handler callback is always invoked. (CVS 6481)
FossilOrigin-Name: 683e4bd74783e6e3f6cf75f9582008c7b7e02a01
2009-04-10 12:55:16 +00:00
danielk1977 bd43455c38 Fix some cases where executing SQL from within a user-function callback could cause problems related to statement-transactions. (CVS 6355)
FossilOrigin-Name: a60f4191791dd7bb49d5c95b350a9924845b59a8
2009-03-18 10:33:00 +00:00
drh 7f75122149 Move the rowid cache out of VdbeCursor and into BtCursor. When multiple
BtCursors are open on the same table, set their rowid cache all at the
same time.  Ticket #3731. (CVS 6354)

FossilOrigin-Name: 189785832a7dc9f4a0a2113d850b92b987e0f9bf
2009-03-17 22:33:00 +00:00
drh b2771ce24c Reuse space left-over opcode space at the end of the VDBE opcode array to
store memory cells, VDBE cursors, and other content needed by the VDBE.
This reduces the memory required by a prepared statement. (CVS 6307)

FossilOrigin-Name: 58a1809257ccfb7d9112a35f79ca2f82b3daa878
2009-02-20 01:28:59 +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
drh 4b9421af6f Remove the text of the sqlite3VdbeMemSanity() routine, which was already
commented out. (CVS 6238)

FossilOrigin-Name: a3c260772bda68007b73feee6612495a704c84f5
2009-02-03 15:39:01 +00:00
drh 68ac65ecdc Make sure the MEM_Zero flags is cleared whenever removing MEM_Blob. (CVS 6111)
FossilOrigin-Name: b2131e868a3a948ba81f7458270493085da1ae60
2009-01-05 18:02:27 +00:00
drh 8df32841de Suppress more silly compiler warnings. (CVS 5995)
FossilOrigin-Name: 1522c2c6677b97edfa09dd64b4f9ed139aeb5bec
2008-12-09 02:51:23 +00:00
drh 3d4501e573 Replace the VDBE Fifo object with the new RowSet object. (CVS 5977)
FossilOrigin-Name: 39a0750b49cf55e9c0927169ca47db909f5c16ea
2008-12-04 20:40:10 +00:00
danielk1977 64202cfec6 Modifications to avoid signed/unsigned warnings in vdbe.c. (CVS 5912)
FossilOrigin-Name: 9939dd839ac13708f9b5b877c48729b1781eedf3
2008-11-17 15:31:47 +00:00
drh ad4a4b8047 The COMMIT command now works even if there are pending queries, as long
as the pending queries are reading and not writing the database. (CVS 5864)

FossilOrigin-Name: 51f04aaff2803487933b9dfcf39f27a249f18a98
2008-11-05 16:37:34 +00:00
drh dfe88ece74 Change the name of the Cursor object to VdbeCursor. (CVS 5857)
FossilOrigin-Name: fdb98fd8c1706085ebeef8e48ac6737839bed5e5
2008-11-03 20:55:06 +00:00
drh d1d384888b Add the experimental sqlite3_stmt_status() interface. (CVS 5781)
FossilOrigin-Name: de473efb35ffdf9a8222a70a84dfd7d3198c87c1
2008-10-07 23:46:38 +00:00
drh e63d999189 Additional changes toward fixing ticket #3292. (CVS 5562)
FossilOrigin-Name: 0b92cbf5255020d4fde382f81590ff0488936667
2008-08-13 19:11:48 +00:00
drh 701bb3b4f0 Additional coverage testing. Fix a segfault following OOM in
sqltie3_load_extension(). (CVS 5523)

FossilOrigin-Name: f1e44eb323f05495cbae25113aebcc50d16b40df
2008-08-02 03:50:39 +00:00
drh dab898f8e4 Remove unused sqlite3VdbeMemDynamicify() function from the VDBE. (CVS 5500)
FossilOrigin-Name: aee63308312bcebb79e15cfdf942ee23694444b0
2008-07-30 13:14:55 +00:00
drh 633e6d57d9 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)

FossilOrigin-Name: e48f9697e9fea339e150ddc32940760027dd07d9
2008-07-28 19:34:53 +00:00
danielk1977 161546c7e5 Fix a case where database corruption was causing an invalid reference. (CVS 5484)
FossilOrigin-Name: 7aecabacf924ad8c1f9f4e707d0c56e433e3a434
2008-07-26 18:26:10 +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
drh 2eb95377ef Remove the subroutine return stack from the VDBE. Return addresses
for subroutines are now stored in registers. (CVS 5191)

FossilOrigin-Name: ef1956eebcaf5aca51af8c3b406b1fd4b1f391a7
2008-06-06 15:04:36 +00:00
danielk1977 822a51628f Add more version tags to files that lack them. Ticket #3120. (CVS 5137)
FossilOrigin-Name: 81a8c70ed7a86abf286706fdbc251f31c9c53382
2008-05-16 04:51:54 +00:00
drh e265b08458 Fix harmless compiler warnings. (CVS 5073)
FossilOrigin-Name: 227a6f67c21c87a7cf98f84b9d57a6dc9da93ebb
2008-05-01 17:03:49 +00:00
danielk1977 751de567c1 Allow OP_MoveGt and similar to use an array of registers instead of a serialized record. Modify one type of index range scan to use this. (CVS 5028)
FossilOrigin-Name: c448f15aa5ed3dec511426775e893efea324faa1
2008-04-18 09:01:15 +00:00
danielk1977 5f09613545 Changes to the Mem structure to reduce the frequency of freeing and reallocating the dynamic buffer. (CVS 4928)
FossilOrigin-Name: d0bf73d81453da1d8e602e0445064d9f5e348063
2008-03-28 15:44:09 +00:00
danielk1977 9882d99993 Allow creation of ephemeral pseudo-tables - pseudo-tables that copy a pointer to a row when inserted instead of copying the row data. (CVS 4924)
FossilOrigin-Name: 1a58a87023f7780aee813ac64dda1a80021002a7
2008-03-27 17:59:01 +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
danielk1977 a7a8e14bf2 Where possible, avoid freeing buffers allocated for vdbe memory cells in case they can be reused. (CVS 4783)
FossilOrigin-Name: 990237e27e417aff3dbf05784b716c21f3761a3a
2008-02-13 18:25:27 +00:00
drh 69544ec9cb Add the sqlite3_result_error_code() application interface. Use it in the
ATTACH function so that a failed attach returns a proper error code.
Ticket #2914. (CVS 4775)

FossilOrigin-Name: c24616204307936d03d39d2ef0fe6856113f6977
2008-02-06 14:11:34 +00:00
drh 9d36b4da99 Fix an incorrect comment on the Mem object in vdbeInt.h. (CVS 4752)
FossilOrigin-Name: 50c9cf9bbbe858d53697b4d3a0c1ec2d63ff5b18
2008-01-28 15:19:26 +00:00
drh 643167ff21 Add the fault injector module in fault.c. Use it as a basis for memory
allocation failure testing. (CVS 4742)

FossilOrigin-Name: 1a335e180183b414fcc3510ce28b98b21cd134a6
2008-01-22 21:30:53 +00:00
drh 9cbf3425fb Registerification of the VDBE is complete. The operand stack has been
removed from the code.  All instructions operate out of registers only. (CVS 4718)

FossilOrigin-Name: 706b41b70bd1e2030e6fa44358c38a26c5cf0985
2008-01-17 16:22:13 +00:00
drh 3a40f696d4 Replace the NOPUSH_MASKs with a bit-vector mechanism that can contain
several different properties about each opcode. (CVS 4677)

FossilOrigin-Name: 042dcb9621934d0318a7c6e9cd08b20a569db367
2008-01-04 16:50:09 +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