1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-11 01:42:22 +03:00
Commit Graph

734 Commits

Author SHA1 Message Date
drh
e55cbd7228 Avoid duplicate OP_Column opcodes by remembering prior results.
This is similar to CSE, but only applies to columns. (CVS 4943)

FossilOrigin-Name: c29ee0fed23dcdbd9dde6b1e42b603100ea2389c
2008-03-31 23:48:03 +00:00
danielk1977
cd3e8f7ce9 Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912)
FossilOrigin-Name: 047153648155654b0cd70b811935209d2e21776c
2008-03-25 09:47:35 +00:00
drh
f39d958829 Undefine the "isView" macro when compiling with SQLITE_OMIT_VIEW so that
the macro does not interfer with subsequent modules in the amalgamation. (CVS 4888)

FossilOrigin-Name: a42caa8f83ce19af1e569c4545ea8b2449152430
2008-03-19 20:42:13 +00:00
mlcreech
a9e852b667 Handle non-autoconf build correctly with new changes (CVS 4832)
FossilOrigin-Name: e2a9f5f1054f077e4773dd3d2c8f2ce5be118a01
2008-03-06 09:58:50 +00:00
mlcreech
12d4082f26 Use intptr_t definition to silence warnings about ptr-int casts (CVS 4824)
FossilOrigin-Name: 54839a84e6ce080ea8a0f6ce32acaa053d20f311
2008-03-06 07:35: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
ca4241140c Error messages says "no such view" instead of "no such table" when
trying to DROP a VIEW that does not exist. (CVS 4750)

FossilOrigin-Name: 50815a82e0ec9a5c1399f5fe6ef416434b55a821
2008-01-25 15:04:48 +00:00
drh
60a713c66b Miscellaneous test coverage improvements. (CVS 4734)
FossilOrigin-Name: 720bc20a11275ffe139df9203f23e0683b9b4db1
2008-01-21 16:22:45 +00:00
drh
a05a722f23 Cleanup and simplification of constraint processing. Simplifications
to the VM for better test coverage. (CVS 4729)

FossilOrigin-Name: d9ebe9d78c558af050c44ac4437ce0ef8193a4a8
2008-01-19 03:35:58 +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
1db639cef3 Registerification of the WHERE clause logic. (CVS 4716)
FossilOrigin-Name: b3a141b2b0c09bf3c7704deeade290d71b7c9b77
2008-01-17 02:36:28 +00:00
drh
b765411161 Continuing work toward converting the VM into a register machine. (CVS 4707)
FossilOrigin-Name: a6dddebcc5ccbbf3009c9d06163a8b59036331de
2008-01-12 12:48:07 +00:00
drh
2d401ab8f9 More work toward converting the VM into a register-based machine. (CVS 4704)
FossilOrigin-Name: 8cbd46517f407b3b1ce187b623db10f00aa415ea
2008-01-10 23:50:11 +00:00
drh
892d317990 Continuing work toward registerizing the code generator. (CVS 4703)
FossilOrigin-Name: 173698c963473ab1b9db88b23a2de82e4097b96d
2008-01-10 03:46:36 +00:00
drh
98757157ee 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)

FossilOrigin-Name: e3cf1c1c114bcda8fe577beb5ee55b4a651b96db
2008-01-09 23:04:12 +00:00
drh
3c84ddff3e Continued work toward converting to a register-based VM. (CVS 4698)
FossilOrigin-Name: 92deff07bba2089bbe011f44defb3a0ac1362d56
2008-01-09 02:15:38 +00:00
drh
3557335658 Registerify the comparison opcodes. (CVS 4697)
FossilOrigin-Name: 8862ce9ceefba4f5d1ffbd51d824c05f42a58c22
2008-01-08 23:54:25 +00:00
drh
04adf4161d Finish registerizing the core logic of INSERT and UPDATE. (CVS 4696)
FossilOrigin-Name: 5fd1036788dbbc48ff1c746d2e1ba12b04a7e58c
2008-01-08 18:57:50 +00:00
drh
aa9b8963b5 Progress toward registerification of the constraint checking logic for
INSERT and UPDATE. (CVS 4693)

FossilOrigin-Name: b9bf509e39f5ac38c2149d2a648f68e5df5ae9e3
2008-01-08 02:57:55 +00:00
drh
6a288a33f9 Registerify the AUTOINCREMENT processing and the OP_IsNull and OP_NotNull
operators. (CVS 4692)

FossilOrigin-Name: aa48867cfa04da265b906e5b583bc7ac6b6a1157
2008-01-07 19:20:24 +00:00
drh
1013c9320d Registerify the SRT_Subroutine destination for SELECT results. (CVS 4690)
FossilOrigin-Name: 8201f71729c3afbb41764cea3cda65b03150cb0c
2008-01-06 00:25:21 +00:00
drh
8558cde1ab Register-ify the OP_AddImm and all casting opcodes. Omit the
OP_MemIncr opcode. (CVS 4683)

FossilOrigin-Name: 3e8a07dd3cc9921ad39e379576abb0b485a42202
2008-01-05 05:20:10 +00:00
drh
b1fdb2adea 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)

FossilOrigin-Name: cc149eb9ca3c672cc6fea3528353234ac2ed5745
2008-01-05 04:06:03 +00:00
drh
4c583128bd Implement the out2-prerelease opcode design pattern. (CVS 4681)
FossilOrigin-Name: fe057a88d0038ac349ea41883b979ceba6ae410a
2008-01-04 22:01:03 +00:00
danielk1977
287fb61c6b Some modifications to insert.c to work without using the stack. (CVS 4678)
FossilOrigin-Name: d9ac6beef538376d0ea0a1daa95cf1dfe36143cf
2008-01-04 19:10:28 +00:00
danielk1977
96cb76fc7a Modify the code generated for a DELETE to use registers instead of the vdbe stack. (CVS 4675)
FossilOrigin-Name: 173f281334d340290e1978abea5d1ea804141910
2008-01-04 13:24:28 +00:00
drh
389a1adbd7 Change the sqlite3ExprCode() function so that callers can request that
the result of the expression be left on the stack or in a register. (CVS 4673)

FossilOrigin-Name: 61bfb77c4267b99ac8a8ef49355bcbc395a1a37b
2008-01-03 23:44:53 +00:00
drh
0a07c107a6 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)

FossilOrigin-Name: 0b849805c3a0f562d50623f406279b400d335639
2008-01-03 18:03:08 +00:00
danielk1977
2a339ff677 Modify OP_VUpdate to read arguments from a range of memory cells instead of from the stack. (CVS 4668)
FossilOrigin-Name: 955b15a020e9ea6401fe03a36f5139a03ea80b8a
2008-01-03 17:31:44 +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
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
danielk1977
6c8c8ce0e2 Combine the eDest and iParm arguments to sqlite3Select() into a single type - "SelectDest". (CVS 4657)
FossilOrigin-Name: 86dcdfe6d7d629618ccb3c3ff0ca09f2da2d06c7
2008-01-02 16:27:09 +00:00
danielk1977
e448dc4abf Take advantage of the fact that b-tree cursors need not be closed while other cursors modify their tables to simplify trigger program generation code. (CVS 4654)
FossilOrigin-Name: f1966a8a47fca85f7862c0797a527ab01ac8b0c1
2008-01-02 11:50:51 +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
8f2c54e6e2 Optimize trigger compilation to avoid populating the OLD.* and NEW.* pseudo-tables with data that will never be used. Some testing to come. (CVS 4651)
FossilOrigin-Name: e08a33ed7255c22ce2805363f44a1d7770acb2dd
2008-01-01 19:02:09 +00:00
drh
ef0bea9220 Fix a typo in the previous check-in. Also simplify a line in select.c. (CVS 4631)
FossilOrigin-Name: 86f45d7bb6f7d9e5c177be76d8a7ace754d52bcd
2007-12-14 16:11:09 +00:00
drh
49df6b749c Fix an out-of-memory NULL pointer defer in the code generator. Ticket #2843. (CVS 4630)
FossilOrigin-Name: b821b6ed176b4259e1d4b56c8eb548933b6f530a
2007-12-14 15:12:21 +00:00
danielk1977
997a904016 Try to find some more stack leaks by adding OP_StackDepth to loops in DML statements. None were found. (CVS 4617)
FossilOrigin-Name: 12c3029b1edcff4435177c709fb2584323f8c515
2007-12-12 17:42:53 +00:00
drh
543165ef97 Update the version number to 3.5.3. Fix some minor testing problems. (CVS 4563)
FossilOrigin-Name: f4c8f2d1918f24514f02cae9172c77f6957d32c1
2007-11-27 14:46:41 +00:00
drh
48d1178ad8 Make sure that INSERT INTO ... SELECT ... always uses an ephemeral
intermediate table if the SELECT clause refers to the destination table,
even if the SELECT clause is compound or uses the destination table
in a subquery.  This fixes a long-standing bug that can cause an
infinite loop for some SQL statements. (CVS 4552)

FossilOrigin-Name: 492b39b6a8bf4ad8792d7a7949f77827a5047fd8
2007-11-23 15:02:19 +00:00
danielk1977
5ce240a618 Remove an unreachable case from xferOptimization(). Also other minor test coverage improvements. (CVS 4383)
FossilOrigin-Name: 75af7189c0ed1b24a32cff6960af7f17326cbc17
2007-09-03 17:30:06 +00:00
drh
f53e9b5ad5 Be careful to verify the schema cookie when running the xfer optimization
on INSERT statements. (CVS 4322)

FossilOrigin-Name: d8ef7024172fffee049cfda6707220af2577e9a1
2007-08-29 13:45:58 +00:00
drh
abb6fcabcb Combine sqlite3DbOfVdbe() and sqlite3VdbeDb() into a single function. (CVS 4236)
FossilOrigin-Name: ba80ee59a72afe36817997de705ef81d876b6f35
2007-08-16 12:24:01 +00:00
drh
174357527a 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)

FossilOrigin-Name: deb7ecd65f7b83eaf0ba610eeef3b0ede61db1c3
2007-08-16 04:30:38 +00:00
drh
2e06c67c08 The REPLACE conflict resolution falls back to FAIL when on a
CHECK constraint violation.  Ticket #2525. (CVS 4178)

FossilOrigin-Name: b213614abff90c65cc7228c87f4973150e8a9679
2007-07-23 19:39:46 +00:00
danielk1977
034ca14f81 Allow virtual tables to mark columns as 'hidden'. Hidden columns do not show
up in "*" expansion, the implicit column list of an INSERT statement, or the results of a "PRAGMA table_info" statement. (CVS 4127)

FossilOrigin-Name: 7f887a6a00fdd6efc3740bd8a1731bb1abde087c
2007-06-26 10:38:54 +00:00
drh
5bb3eb9b9a Eliminate all uses of sprintf() and strcpy(). These were not being
misused.  But getting rid of them removes a library dependency.  And
it avoids warnings from the OpenBSD compiler.  Ticket #2336. (CVS 3916)

FossilOrigin-Name: ba4845b32bdf38e623c4f7246e6e327715bbba4b
2007-05-04 13:15:55 +00:00
danielk1977
0125683288 Minor changes (mainly to assert() macros) to handle malloc failure in vtab operations. (CVS 3851)
FossilOrigin-Name: 175156d1fcaadab3b955597abb27f6b9043bbb5b
2007-04-18 14:24:32 +00:00