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

2168 Commits

Author SHA1 Message Date
drh
d4d595f94c Make sure the min() and max() optimizations work on empty indexed tables.
Ticket #296. (CVS 914)

FossilOrigin-Name: 98ef6110068e5ed3cd77a14b004f890b79b731f7
2003-04-17 12:44:23 +00:00
drh
95b5084409 Rollback if a commit hook fails. (CVS 912)
FossilOrigin-Name: 5cea7554ae9d36434cd7261b5b40f3d467b836f1
2003-04-16 21:03:13 +00:00
drh
bb07e9a34f Simplify the number processing code. Fix for ticket #281. (CVS 910)
FossilOrigin-Name: 4326b52a39cad4632dc2db37aa53a285a31af138
2003-04-16 02:17:35 +00:00
drh
70ce3f0c58 Get triggers working on tables with INTEGER PRIMARY KEYs. Ticket #291.
This may also fix #159.  Still need to add tests so both bugs remain open
for the time being. (CVS 908)

FossilOrigin-Name: 0b996959b8d8bc2c82eab9cccc190befd0056505
2003-04-15 19:22:22 +00:00
drh
49449834fc Do not record the inserted rowid on when doing an INSERT within a trigger.
Ticket #290. (CVS 906)

FossilOrigin-Name: 96a717661a3b7108fe0cacb588d81fd8e91eb640
2003-04-15 14:01:43 +00:00
drh
13bff81537 Change some variable names and comments in the new in-memory database file
implementation.  Partial (non-working) implementation of the VACUUM command. (CVS 904)

FossilOrigin-Name: e76787f877c456abdc8bc88bfefc50eaeed68744
2003-04-15 01:19:47 +00:00
paul
b0208ccaa3 Support in-memory databases for temp tables (CVS 903)
FossilOrigin-Name: 96336bffde6c441af197a521ee9e56fdfd7efff8
2003-04-13 18:26:49 +00:00
drh
0d1a643aea Added experimental APIs: sqlite_begin_hook() and sqlite_commit_hook(). (CVS 896)
FossilOrigin-Name: 5efbf62313519d0a6e8b8f5dbb29d3ef428d73e8
2003-04-03 15:46:04 +00:00
drh
048c530c01 Use a intermediate table when inserting a TEMP table from a SELECT that
reads from that same TEMP table.  Ticket #275. (CVS 895)

FossilOrigin-Name: 087d1e83af12b3a9aedd4945f02774a1043b1eb4
2003-04-03 01:50:44 +00:00
drh
113088ec68 Record the database name in addition to the table name for DELETE, INSERT,
and UPDATE statements. (CVS 879)

FossilOrigin-Name: a5d8fc95ee58dc3205a0bbbcadaa3b9c902a941b
2003-03-20 01:16:58 +00:00
drh
001bbcbb8f Modifications to the VDBE to support more than one database file. (CVS 878)
FossilOrigin-Name: 875da9eed981bfa27b98e95025f9fdbed74b4098
2003-03-19 03:14:00 +00:00
drh
9468c7f489 Do not allow an empty string to be inserted into an INTEGER PRIMARY KEY. (CVS 877)
FossilOrigin-Name: 2aba40bea5fc1c4aef8cfd4c790d40808821ca14
2003-03-07 19:50:07 +00:00
drh
dde85d9e00 Get the non-callback API working with the EXPLAIN keyword and for PRAGMAs.
Tickets #258 and #257.  Update the API documentation on the sqlite_changes()
routine to explain how it works with the non-callback API.  Ticket #250. (CVS 875)

FossilOrigin-Name: 620e1065e978545dd7bf6fa6fad1e6b93918dbf8
2003-03-01 19:45:34 +00:00
drh
50cceb36b6 When the right table in a LEFT OUTER JOIN contains an INTEGER PRIMARY KEY
make sure that key is NULL if there is no row in the right table that
matches the current row in the left table.  Tickets #246 and #247. (CVS 873)

FossilOrigin-Name: 6a45fe3bd7e19cf9c20fc6cb65b0269cdd704490
2003-02-20 01:48:12 +00:00
drh
94e9203247 Added test code to check for file descriptor leaks. All regression tests pass
now on both win2k and linux. (CVS 868)

FossilOrigin-Name: 75ba78280f7ab6b6acce5878859312f3223ee898
2003-02-16 22:21:32 +00:00
drh
3a84069da3 Additional testing and bug fixing with the non-callback API. Updated the
C/C++ interface document to describe the non-callback API. (CVS 855)

FossilOrigin-Name: af1e9299468aa70d7d91e7a5445ba391ccc8ff8b
2003-01-29 22:58:26 +00:00
drh
483750ba8a Better error messages on constraint violations. Additional tests and bug fixes
for the callback-free API. (CVS 854)

FossilOrigin-Name: ccc82f1ab4539a60ee5cc2625743c5389f9ccd8e
2003-01-29 18:46:51 +00:00
drh
326dce7451 The callback-free API is now working, though much more testing is need. (CVS 853)
FossilOrigin-Name: 162b259188e6967fe9c3722da26b81aab5655d83
2003-01-29 14:06:07 +00:00
drh
b86ccfb26e 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)

FossilOrigin-Name: 065fa818ffc8d7562889172acea16e4e44e773ef
2003-01-28 23:13:10 +00:00
drh
e78e8284ad Update comments. No changes to code. (CVS 841)
FossilOrigin-Name: f6a8706872c43cee3003b48bb427c7b74b1f89e7
2003-01-19 03:59:45 +00:00
drh
db48ee02c4 Improvements to the pager to help large updates against a large database run
faster.  Also improved the testing of the pager rollback algorithms. (CVS 835)

FossilOrigin-Name: 717523d3750dce784fa767ed9a8267d1246798ef
2003-01-16 13:42:43 +00:00
drh
49f0936ec7 Remove an unused variable from the VDBE. Ticket #223. (CVS 826)
FossilOrigin-Name: 0deaf563fd9784bf0795107cd10e6b3269dfecea
2003-01-12 17:35:00 +00:00
drh
f27134cdc4 Change the PopStack() routine so that it doesn't confuse bounds checkers.
Ticket #222. (CVS 825)

FossilOrigin-Name: fc11fa50b8f39f5e0b3674d7df832ffbca0d948f
2003-01-12 17:28:19 +00:00
drh
836faa4843 Remove the ColumnCount opcode, which had become a no-op. (CVS 821)
FossilOrigin-Name: 86deb12d68026913d181f9498144fa56445899f2
2003-01-11 13:30:57 +00:00
drh
2b8ef743af In the VDBE, allocate space to hold column names when the VDBE first starts.
The ColumnCount opcode now just writes the null terminator into this space. (CVS 818)

FossilOrigin-Name: 46d8f5e377bf790c18a7acdd1f3bc20b538d69eb
2003-01-07 13:55:22 +00:00
drh
371ac44d1c When constructing records and index keys, use static string space rather than
mallocing (when possible) for a small speed improvement. (CVS 817)

FossilOrigin-Name: 657c9fb5133aef93e4edd433912e6942ad9674ec
2003-01-07 13:43:45 +00:00
drh
caec2f12a9 More optimizations. (CVS 816)
FossilOrigin-Name: a362981b20fd33254ad498619eedf75b576682e3
2003-01-07 02:47:47 +00:00
drh
3e87c7abeb Remove unnecessary code from the VDBE. (CVS 814)
FossilOrigin-Name: b96ec281ff29aad8af340b30c6ff4e129ffeeefb
2003-01-06 23:54:05 +00:00
drh
8178a75a11 More optimizations. (CVS 813)
FossilOrigin-Name: 5809132f5bf40bae2331f887e87fe5baecc15c46
2003-01-05 21:41:40 +00:00
drh
8c1238aebd Code optimizations to help the library run faster. (CVS 808)
FossilOrigin-Name: db745e87dc26cf1a35cdcec18f4b659742e14120
2003-01-02 14:43:55 +00:00
drh
7b39686749 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)

FossilOrigin-Name: a1c071ea18766932c90275c704e078134c67be68
2003-01-01 23:06:20 +00:00
drh
1a844c380b Fix a bug in the reverse scan logic that comes up when the table being
scanned is empty.  Add additional tests for the reverse scan. (CVS 797)

FossilOrigin-Name: 0051c87d5e8d07fae09da2eb7b0d8cbd1bbd3c8e
2002-12-04 22:29:28 +00:00
drh
c045ec51be Scan the table backwards if there is an ORDER BY ... DESC clause that can
be satisfied by an index. (CVS 795)

FossilOrigin-Name: c7a3487981de0ed5b43ea3ff4d46ab4437068dca
2002-12-04 20:01:06 +00:00
drh
da47d7748f Change to the pager to avoid opening journal files unnecessarily. This can
sometimes results in a significant speed improvement. (CVS 791)

FossilOrigin-Name: fa5c042585c601449ede7319d0c5993cd8ba75a4
2002-12-02 04:25:19 +00:00
drh
32c05e993f Replace the atoi() library routine with a faster home-grown version in the
VDBE.  This gives a dramatic speed improvement for some kinds of queries. (CVS 784)

FossilOrigin-Name: 263a8ca40f7ff66fbdcb43bf9032391d5b1e68bd
2002-11-11 00:05:42 +00:00
drh
7bc09d3111 Improvements in threadtest.c (for Unix) and some minor bug fixes that result
from the better testing. (CVS 776)

FossilOrigin-Name: 326e0983c34b584a3c4a2300399bff0a8281b9f8
2002-11-01 01:55:36 +00:00
drh
38dd0b4ff0 In the VDBE, check to make sure a set has been initialized before using it.
Ticket #185. (CVS 772)

FossilOrigin-Name: 8c4cbdd05517e91879a0f2c4559d0f0518d2385b
2002-10-30 22:42:58 +00:00
drh
e958bb4aef Take care to track ephemeral strings in the VDBE and make copies of ephemeral
strings that need to be preserved.  Ticket #177. (CVS 769)

FossilOrigin-Name: 562da534bbb605a8ce15824135b012ef2d86bbeb
2002-10-22 15:04:34 +00:00
drh
32fbe342db Speed improvement by avoiding a call to sqliteBtreeLast() when inserting a
new row into a table. (CVS 763)

FossilOrigin-Name: d0af59fe6b9d5d026786e7cce1c49c208a0335cc
2002-10-19 20:16:37 +00:00
drh
3e56c04c4e Fix a bug in the OP_MemStore operator of the VDBE. A realloc() might
occur but pointer to the old buffer were not being moved over to
the new buffer. (CVS 752)

FossilOrigin-Name: 29145746f34438bd830c763872c5e82572150357
2002-09-17 03:20:46 +00:00
drh
cabb081971 Do not put a write lock on the main database file when writing to a temporary
table. (CVS 750)

FossilOrigin-Name: 3f253afe15d4f7392555f340a41d780d1248087f
2002-09-14 13:47:32 +00:00
drh
ac82fcf5f0 Fix for ticket #147: Honor the ORDER BY and LIMIT clauses in a SELECT even
if the destination of that SELECT is a subroutine call. (CVS 747)

FossilOrigin-Name: 23fe36c7e88282f6d1b7547ab892ea88f0e65262
2002-09-08 17:23:41 +00:00
drh
8f619ccd3c 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)

FossilOrigin-Name: eb54d455b0325d3be96daf6c220c4ee3e0da1a85
2002-09-08 00:04:50 +00:00
drh
b798fa6481 Always fill in the 5th parameter to sqlite_exec if there is an error. (CVS 742)
FossilOrigin-Name: 7f8fd5c75d614f81ef87f0fc952c341cbc5076d0
2002-09-03 19:43:23 +00:00
drh
f74b8d9b89 Relax the locking requirements on BTree cursors. Any number of read and
write cursors can be open at the same time now, but a write cannot occur
as long as one or more read cursors are open.

Before this change, one or more read cursors could be open on a table,
or a single write cursor, but not both.  Both policies have the same
desirable effect: they prevent writes to a table while a sequential scan
of that table is underway.  But the new policy is a little less restrictive.
Both policies prevent an UPDATE from occurring inside a SELECT (which is
what we want) but the new policy allows a SELECT to occur inside an
UPDATE. (CVS 739)

FossilOrigin-Name: 8c2a0836980341faa479cfe6c716409e6057367d
2002-09-01 23:20:45 +00:00
drh
142e30df99 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)

FossilOrigin-Name: 723362e74f79c784314d042e3a8c8a9bf07cbd5e
2002-08-28 03:00:58 +00:00
drh
da30d3696b Fix for ticket #142: Make sure we get the correct sort order even when the
columns being sorted contain NULLs. (CVS 730)

FossilOrigin-Name: 45847390d007718a4b7a4e9fa445136d013113f8
2002-08-26 19:55:07 +00:00
drh
8c74a8ca5b 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)

FossilOrigin-Name: c602603e7cd8dc5c8bb9db2748eacab650de5bf0
2002-08-25 19:20:40 +00:00
drh
d94a669894 Fix the memory leak introduced by check-in (725). (CVS 726)
FossilOrigin-Name: b957dafc26383af514795df18bc7b8f367c9bd21
2002-08-25 18:29:11 +00:00
drh
3d037a91a5 Fixes and test improvements resulting from code coverage testing. (CVS 716)
FossilOrigin-Name: 66a0f6a8e25e3eeed78eba4b63b097f921c79d99
2002-08-15 01:26:09 +00:00