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

536 Commits

Author SHA1 Message Date
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
5b6afba924 Registerify binary operators. Add register tracing to debugging output. (CVS 4686)
FossilOrigin-Name: 66396d2f0289e36b5fc0af5078c08d1b17f342ae
2008-01-05 16:29:28 +00:00
drh
9de221dff5 Expression code generator takes advantage of recent opcode changes. (CVS 4685)
FossilOrigin-Name: 6c78d2a49a3e6ee8bc31f16488a430cba9eda59d
2008-01-05 06:51:30 +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
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
2133d82287 Update OP_Rowid, OP_Column and related opcodes to use registers. (CVS 4671)
FossilOrigin-Name: 4f3967073d2df9eae5a61b9770d5de2e1af47b4c
2008-01-03 18:44:59 +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
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
drh
a2a49dc9df Add opcodes OP_ResultRow and OP_RegMakeRec which are register-based
equivalents to OP_Callback and OP_MakeRecord.  Use the new opcodes. (CVS 4656)

FossilOrigin-Name: 4c7f35da7751c61a9b61b1d95adddcc37fff3266
2008-01-02 14:28:13 +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
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
drh
85b623f2f9 Change all instances of "it's" in comments to either "its" or "it is",
as appropriate, in case the comments are ever again read by a pedantic
grammarian.  Ticket #2840. (CVS 4629)

FossilOrigin-Name: 4e91a267febda572e7239f0f1cc66b3102558c36
2007-12-13 21:54:09 +00:00
danielk1977
284f4aca32 Fix compilation/testing with OMIT_SUBQUERY defined. Ticket #2828. (CVS 4603)
FossilOrigin-Name: 0b34a18651764e650faba983be8593992ab2f4a9
2007-12-10 05:03:46 +00:00
danielk1977
9a96b66810 Optimisations for expressions of the form "<value> IN (SELECT <column> FROM <table>)". (CVS 4579)
FossilOrigin-Name: 56d0e32677744df8570b519fae1c04da4ea4984d
2007-11-29 17:05:18 +00:00
danielk1977
390025053e Allow collation sequence names to be quoted. Ticket #2744. (CVS 4537)
FossilOrigin-Name: 06749ac7afeea4adbdeb9315f3819d5224534c66
2007-11-12 09:50:26 +00:00
drh
0cf19ed817 Add comments, assertions, and test cases to demonstrate that the
problem described in ticket #2742 is not a real problem. (CVS 4510)

FossilOrigin-Name: c085d6dfc0f5849113986cb2a25e64d0c95b3dfb
2007-10-23 18:55: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
728b577934 Remove unneeded pSchema field from the Expr structure. (CVS 4434)
FossilOrigin-Name: b2d605a2714245febb316a24edc7a076e21a3849
2007-09-18 15:55:07 +00:00
danielk1977
880c15beb9 Fix a bug in jrnlTruncate(). And other coverage improvements. (CVS 4367)
FossilOrigin-Name: 02b751fb9dbc683b1b77a2ed3cdeb4190f7339e0
2007-09-01 18:24:55 +00:00
danielk1977
e6a58a4e2a Allow sqllimits1.test to be run from a regular build of testfixture. Add the 'amalgamation-testfixture' target to main.mk - to build testfixture via sqlite3.c. (CVS 4354)
FossilOrigin-Name: d119427314d27f291b605073d34826cdb89746c1
2007-08-31 17:42:48 +00:00
danielk1977
26783a58e2 Use the DbMalloc() and DbRealloc() functions more consistently. (CVS 4323)
FossilOrigin-Name: c790c234c369c6b7610e67dcaaa9eee347df729c
2007-08-29 14:06:22 +00:00
danielk1977
a1644fd863 Modifications to the malloc failure tests to test transient and persistent failures. (CVS 4321)
FossilOrigin-Name: e38ef81b85feb5bff2ad8448f3438ff0ab36571e
2007-08-29 12:31:25 +00:00
drh
f3a65f7e44 The malloc.test script now passes all tests with no errors. (CVS 4271)
FossilOrigin-Name: db818430e9ea4ef4a4af575784009d5acae785a3
2007-08-22 20:18:21 +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
danielk1977
31dad9da7e Fix some more small problems introduced by recent refactoring. (CVS 4235)
FossilOrigin-Name: 5e2795d0eb8ea2a076b3014cfa9096aa7e8f69d7
2007-08-16 11:36:15 +00:00
danielk1977
1e5369531e More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233)
FossilOrigin-Name: 77b1671351fe94b0ebc126a63140643deae2aa64
2007-08-16 10:09: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
fd131daecd Remove all tabs from source code files. Ticket #2556. (CVS 4198)
FossilOrigin-Name: 7550dd1d5980a399fbb06b4ed69216700f879a0b
2007-08-07 17:13:03 +00:00
drh
0a0e131c7e Revise the amalgamation so that all symbols have file scope except those
that begin with "sqlite3_".  Ticket #2554. (CVS 4197)

FossilOrigin-Name: 73db545289a1a99bd48b22895d2a3ee86540f107
2007-08-07 17:04:59 +00:00
drh
36379e973b Detect nested aggregate functions even if the inner aggregate function is
aliased using an AS clause.  Ticket #2526. (CVS 4179)

FossilOrigin-Name: de000280c6d0b13440d2450eb6ba42073ad46c56
2007-07-23 22:51:15 +00:00
danielk1977
c9cf6e3d31 Fix for #2445. A bug in the lookupName() logic that could cause a crash when a WHERE clause used an alias to refer to an expression in the result-set of the SELECT, and that expression was itself a reference to a table column. (CVS 4122)
FossilOrigin-Name: 044ca1c72a8f4632dc2e6a94690d164d3560ee38
2007-06-25 16:29:33 +00:00
drh
7e09fe0b81 A column name preceded by a unary "+" operator is considered to be
a column name when computing the collating sequence to be used by
a comparison operator or ORDER BY clause. (CVS 4104)

FossilOrigin-Name: 99a20f6a427b5e0e0a793f59ebca9d17bc633437
2007-06-20 16:13:23 +00:00
danielk1977
edaaec223c Fix an obscure memory leak in the SQL compiler.. (CVS 4070)
FossilOrigin-Name: d4ab94288b1e3d3d069ccc75d0fc2fbe6c1383c5
2007-06-15 16:37:29 +00:00
drh
0a168377ad Fix the query optimizer so that it correctly handles constant expressions
in the ON clause of a LEFT JOIN.  Ticket #2403. (CVS 4049)

FossilOrigin-Name: 46fdd195483787eef209a9b8ad108eba147be6fa
2007-06-08 00:20:47 +00:00
danielk1977
c9cf901d8c Add some extra tests for malloc failure during expression parsing and execution using fuzzily generated SQL. (CVS 4043)
FossilOrigin-Name: 7522d2fb3204d107b8b4816d7f39c88741f20230
2007-05-30 10:36:47 +00:00
danielk1977
bcbb04e501 Consider explicit collate clauses when matching WHERE constraints to indices. Fix for #2391. (CVS 4040)
FossilOrigin-Name: f9a95e92dfaaa61ec0a44b9b7017b07929c94d26
2007-05-29 12:11:29 +00:00
danielk1977
15d7982ad8 A fix for queries that used correlated, compound sub-queries in the HAVING clause. Also update fuzz.test some more. (CVS 4001)
FossilOrigin-Name: da0c1ab4deedd2b952a43b3af6962a9403f8c9ee
2007-05-15 07:00:34 +00:00
drh
4f07e5fbdf Remove terms with operator TK_AS from the expression tree. Ticket #2356. (CVS 3991)
FossilOrigin-Name: 5627ff74be9242418434a06fe5c104d1f9128cab
2007-05-14 11:34:46 +00:00
danielk1977
cdbd8eff21 Bugfixes for assert() failures found by fuzz.test. (CVS 3986)
FossilOrigin-Name: 2e80736d57fde55b112864d8b198a9a2fe0eaa38
2007-05-12 06:11:12 +00:00
drh
4e05c83bc3 Additional parsing bugs fixed. (CVS 3981)
FossilOrigin-Name: d12a8924c6083cdff14990b4fd036ca386c2e34a
2007-05-11 01:44:50 +00:00
drh
db83f8231f Make sure that the REGISTER token generates a valid Expr. REGISTER will
cause the tokenizer to abort, but the parser might do several reduce
actions prior to that abort and those reduce actions sometimes need a
valid Expr. (CVS 3980)

FossilOrigin-Name: d146f01a02579339c5dc86bbe59f246bd6c05c63
2007-05-11 00:20:08 +00:00
danielk1977
fc9760654a Add code to enforce the MAX_EXPR_DEPTH limit. (CVS 3968)
FossilOrigin-Name: 2c9c94a24d52a1c9f5d1b32cbdff794a2dd74126
2007-05-10 10:46:56 +00:00
danielk1977
832b2664e6 Add further test cases for compile time limits. (CVS 3963)
FossilOrigin-Name: 9bf2c594a48a4661700f0833562ee2b3ff7b761c
2007-05-09 11:37:22 +00:00
danielk1977
b4fc679463 Fix a null-pointer dereference that follows a malloc() failure introduced in (3954). (CVS 3956)
FossilOrigin-Name: 251ba1981e32fb80818965ffe1ef455069e88abd
2007-05-08 18:04:46 +00:00