1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-16 23:02:26 +03:00
Commit Graph

442 Commits

Author SHA1 Message Date
drh
3368a24e62 Fix an OOM problem in where.c. (CVS 6060)
FossilOrigin-Name: d2105f617eeb04c8177546c45bf6c63e72757f91
2008-12-23 16:23:04 +00:00
drh
dd5f5a6231 Multi-index OR-clause optimization now works for simple tests. There are
no test scripts for it yet, though.  And it is disabled by default, pending
further testing and optimization.  We need a lot of both. (CVS 6058)

FossilOrigin-Name: d77a702358deddfa9987147999d06a235e730fa9
2008-12-23 13:35:23 +00:00
drh
111a6a7d47 Continue refactoring where.c in preparation for installing OR-clause
optimizations. (CVS 6050)

FossilOrigin-Name: 778e91ddb834f6084ecdf3909692b54bb7da8f6d
2008-12-21 03:51:16 +00:00
drh
1a58fe0290 Enhanced analysis of OR terms in a WHERE clause. Another step toward being
able to use indices with OR-connected WHERE clause terms. (CVS 6045)

FossilOrigin-Name: c3f7aa019c613e18457f090685725dd8a6a336b9
2008-12-20 02:06:13 +00:00
drh
700a22612b Update the WHERE clause processing infrastructure in preparation for adding
multi-index OR evaluation. (CVS 6037)

FossilOrigin-Name: 78401b33febf678cfeec2a35514eb4172de420ab
2008-12-17 19:22:15 +00:00
drh
959403f894 Rework the rowid lookup logic in the query optimizer to fix various
boundary value problems.  Ticket #3536.  Renamed the OP_MoveXX opcodes
to OP_SeekXX. (CVS 6024)

FossilOrigin-Name: e545490a2828f7f703172dda6d2b9f3342dc134a
2008-12-12 17:56:16 +00:00
drh
ea6788322e Never use strlen(). Use our own internal sqlite3Strlen30() which is
guaranteed to never overflow an integer.  Additional explicit casts to
avoid nuisance warning messages. (CVS 6007)

FossilOrigin-Name: c872d554930ecf221ac2be5f886d5d67bb35288c
2008-12-10 19:26:22 +00:00
drh
ec1724e888 Fix compiler warnings in where.c and in the TCL test harness. (CVS 5994)
FossilOrigin-Name: 680755dbf01e20569b87068b1515b144903c566e
2008-12-09 01:32:03 +00:00
drh
b3190c1501 Some minor name refactoring in where.c. Avoid declaring variables before
initializing them in the amalgamation because VC++ doesn't like that. (CVS 5993)

FossilOrigin-Name: 6ed696e7c03351514278338fa986539cf0fac178
2008-12-08 21:37:14 +00:00
drh
902b9ee436 Fix harmless compiler warnings. Improved comments in the query optimizer. (CVS 5982)
FossilOrigin-Name: adedd697b475dadaa2eeae0d0413603195c955cf
2008-12-05 17:17:07 +00:00
drh
6a1e071f3d Make use of sqlite3DbMallocSize to maximize the size of growable buffers
after each reallocation.  Added new comments and testcase() macros to
where.c. (CVS 5981)

FossilOrigin-Name: 46f2d08959423e130a5b346138311649d92f0fde
2008-12-05 15:24:15 +00:00
drh
165be38b82 Variable name changes in the query optimizer for disambiguation and
clarification.  Clear space in boolean vectors for new bit values to
encode new query plan templates. (CVS 5980)

FossilOrigin-Name: 81bd0b5ce8a1cf057064c44e9b5371502cb8c58c
2008-12-05 02:36:33 +00:00
danielk1977
00e136135e Modifications to avoid unsigned/signed comparisons in various files. (CVS 5914)
FossilOrigin-Name: 8009220c36635dd9b6efea7dc13281ca9625c40a
2008-11-17 19:18:54 +00:00
danielk1977
234329761a Modifications to avoid unsigned/signed comparisons in where.c. (CVS 5913)
FossilOrigin-Name: f35606d1d8cd6dba541a79dcb1307698b8831854
2008-11-17 16:42:00 +00:00
danielk1977
3072c5ea11 Fix a bug reported on the mailing list triggered by the pattern "SELECT <col>, (SELECT ... FROM tbl WHERE rowid > <col>) FROM ...". (CVS 5855)
FossilOrigin-Name: 6c918c4eb9362ebfdbe0486515679102b2862970
2008-11-03 09:06:05 +00:00
drh
31daa63f3e Disable the result-set alias cache when on conditional code branches.
Ticket #3461.  The column cache and result set alias cache mechanisms are
prone to this kind of error and need to be refactored.  This check-in should
be considered a temporary fix in advance of a more general redesign of the
whole mechanism. (CVS 5841)

FossilOrigin-Name: 1fa3bbd8220ce073e91935ea362b6f5d5d6d2859
2008-10-25 15:03:20 +00:00
drh
10fe840e4d Fix a memory leak on ORDER BY of a compound select caused by the resolver
on a flattened query.  Also fix a OOM segfault in WHERE clause processing. (CVS 5801)

FossilOrigin-Name: d2c252d6bbde4ae14da6c9e6c2683d763d11c59f
2008-10-11 16:47:35 +00:00
drh
d1d384888b Add the experimental sqlite3_stmt_status() interface. (CVS 5781)
FossilOrigin-Name: de473efb35ffdf9a8222a70a84dfd7d3198c87c1
2008-10-07 23:46:38 +00:00
danielk1977
85574e31cb Allow INDEXED BY and NOT INDEXED clauses in SELECT statements. (CVS 5766)
FossilOrigin-Name: 98ca5580f5acd2e7b3ce512520ec0527f221505e
2008-10-06 05:32:18 +00:00
danielk1977
2d60549926 Fix a bug in where.c where a non-temp register was being incorrectly deallocated. Ticket #3408. (CVS 5758)
FossilOrigin-Name: 59d2e89e2181c26b18eac68ccc80ea3018f70a5e
2008-10-01 08:43:03 +00:00
danielk1977
fdd8e5bab8 Deallocate a temp register allocated by codeEqualityTerm() in where.c. If it is not deallocated, its value may be reused by the column-cache mechanism. However, by the time it is used, the value may have been clobbered by a sub-routine that also uses the same temp register. Fix for #3357. (CVS 5679)
FossilOrigin-Name: 7c0f638ef3d7ff9156f07d6fb01448453ffcf5ac
2008-09-06 14:19:11 +00:00
drh
4d9f9e64c9 Two if statements should be asserts. GCC was silently ignoring them,
hence the problem did not show up in coverage testing.
Ticket #3333. (CVS 5607)

FossilOrigin-Name: 635933b1cae6c43656260555089952e2925c3292
2008-08-25 12:08:22 +00:00
drh
7d10d5a6e1 Refactor the name resolution procedures in the code generator. (CVS 5569)
FossilOrigin-Name: daf730d1defa78fb8b80a78f9108ac35a13e09f6
2008-08-20 16:35:10 +00:00
danielk1977
3e3a84d32a Test that virtual table methods xBestIndex, xOpen, xFilter, xNext, xColumn, xRowid, xUpdate, xSync and xBegin can all return error messages using the sqlite3_vtab.zErrMsg variable. (CVS 5519)
FossilOrigin-Name: 007359b770f225877880b11f4c5d97bb548e38ca
2008-08-01 17:37:40 +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
drh
e8f52c5089 Remove leftover debugging commands (breakpoint and btree_breakpoint) from
test scripts. (CVS 5400)

FossilOrigin-Name: dcb160249fa2d592ad09b8b0052102dc44a93511
2008-07-12 14:52:20 +00:00
drh
34004cebb6 Additional test coverage for the btree module. Remove the failsafe() macro
and replace it with ALWAYS() and NEVER(). (CVS 5395)

FossilOrigin-Name: d7e2f0d2d45574d6191c1b191c0daf5260696f27
2008-07-11 16:15:17 +00:00
drh
22c2403a1c Begin adding the failsafe() macro. (CVS 5383)
FossilOrigin-Name: 8aae4fe7e702b7636fba1fd609a0ca22fdcc3371
2008-07-09 13:28:53 +00:00
shane
1fc4129df7 Added macros to convert between 32-bit ints and 64-bit ptrs to avoid compiler warnings. (CVS 5378)
FossilOrigin-Name: 6cdb6841ff4683e424ef394733da9c24f5602570
2008-07-08 22:28:48 +00:00
drh
c8c0f8fc85 Fix a bug in where.c introduced by check-in (5373). (CVS 5375)
FossilOrigin-Name: 1ed98f9e617fb422efc37c4a3a5c5f0702467868
2008-07-08 19:45:02 +00:00
drh
0880a74633 Improved testing of the min/max optimization. (CVS 5373)
FossilOrigin-Name: fa07c360b708324c47c8e9931f1e2b1b24e4faf8
2008-07-08 18:05:26 +00:00
danielk1977
0cdc022e88 Fix handling of "x IN (...)" and "x NOT IN (...)" expressions when the set contains an SQL NULL value. (CVS 5314)
FossilOrigin-Name: d45a97be71fa61ab4a692bd807ab762130f7f5b9
2008-06-26 18:04:03 +00:00
drh
ff354e91ba If a unique index covers any prefix of the ORDER BY clause then let it
satisfy the ORDER BY clause. (CVS 5301)

FossilOrigin-Name: e53403b6d742be83c5b130ed6cef4035d081d613
2008-06-25 02:47:57 +00:00
drh
e5ae5735c0 Continuing work on the new memory allocation subsystem.
Added routines for temporary memory allocation.  Right the btree
balance mechanism to only do one temporary allocation at a time. (CVS 5220)

FossilOrigin-Name: 65fe7b62cfe7d11cd667681a64c96fe7b2fe5685
2008-06-15 02:51:47 +00:00
drh
cb0413407c Additional refinements to the new sqlite3_initialize() interface design. (CVS 5206)
FossilOrigin-Name: 14a9b9453bc1c85785fcc44617af80912f5118c8
2008-06-12 00:07:29 +00:00
drh
909626d479 Fix typos in comments in where.c. (CVS 5180)
FossilOrigin-Name: 7cadb223cb79387a7def7762dc9e42028d14baf3
2008-05-30 14:58:37 +00:00
drh
174edc6477 Fix cosmetic issues spotted while working on ticket #3146 (CVS 5177)
FossilOrigin-Name: 5f6eab65dba421a736659a6673a51a0e487d68ac
2008-05-29 05:23:41 +00:00
shane
7bc71e5e82 Use %llx instead of %x for 64 bit values (this only affects a debugging statement). (CVS 5170)
FossilOrigin-Name: c81efc97bca58ebbd9500f990f7e45d133e1bd0b
2008-05-28 18:01:44 +00:00
drh
02a50b709c Fix the LIKE query optimizer so that it works with LIKE patterns
ending in '@%' on NOCASE columns.  Ticket #3139. (CVS 5158)

FossilOrigin-Name: 33548744369643cc8843b74ad1fc1b7d5988d7a4
2008-05-26 18:33:40 +00:00
danielk1977
2d1a8d2fe6 Disable the column cache when coding values that will be passed to the xFilter() method of a virtual table, in case the xFilter() implementation modifies the type or encoding of the value. Ticket #3121. (CVS 5139)
FossilOrigin-Name: ecbc0d5deddc0ca0d1d2649e0134ee392266027e
2008-05-16 15:40:40 +00:00
drh
981642f389 Comment and variable-name cleanup in where.c. Add testcase() macros to
insure adequate test coverage of table-driven logic. (CVS 5032)

FossilOrigin-Name: adcef73b3925266a14a552cd9b06c14f22aaefc8
2008-04-19 14:40:43 +00:00
danielk1977
b790c6c596 Combine cases 3 and 4 in where.c, since case 4 is now a special case of case 3. (CVS 5029)
FossilOrigin-Name: 9a976819246eb558ba43429f8889972c4a4bce9d
2008-04-18 10:25:24 +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
drh
dafc0ce818 Additional work on ticket #3015. The previous fix (check-in (4919)) did
not appear to work in all cases and it disabled indexing in some places
where it should not have.  New test cases added to help insure that the
current fix is better. (CVS 5026)

FossilOrigin-Name: 0d2e258e1a3276e55903ba2ded987f8d8a18cacd
2008-04-17 19:14:02 +00:00
drh
08c88eb0d3 First cut at optimizing single-row updates to use a one-pass algorithm. (CVS 4973)
FossilOrigin-Name: fba97f7874d723111e873d1470fc1a95e64f922d
2008-04-10 13:33:18 +00:00
drh
da250ea599 Fix the CSE mechanism so that it takes into account column affinity
changes that might be imposed by comparison operators. (CVS 4949)

FossilOrigin-Name: 91cc646e2b0c1d62a1989405cc9384a2c22d98d0
2008-04-01 05:07:14 +00:00
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
drh
678ccce8b3 Factor constant subexpressions out of loops. (CVS 4942)
FossilOrigin-Name: 2126db39854c751aea6c95c67894ed9b9dfc0763
2008-03-31 18:19:54 +00:00
danielk1977
473c35223e Fix a problem with min() and descending indexes. (CVS 4933)
FossilOrigin-Name: 39705b617a775d4299e98ac88fab4525a64d8b78
2008-03-28 19:16:56 +00:00
danielk1977
e5f5b8f1f0 Fix for #3022. Handle queries like "SELECT min(b) FROM T WHERE a = X AND b > X" when there is an index on (a,b). (CVS 4930)
FossilOrigin-Name: bce289753538ab504e55c4215d6cd4f5df137d9e
2008-03-28 18:11:16 +00:00