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
72e8fa42f9 Correctly handle NULLs in IN operators. Ticket #2273.
The changes in where.c and in the WhereLevel.aInLoop structure are
not strictly necessary to fix this problem - they just make the code
easier to read.  Only the change in OP_Next/OP_Prev operator of vdbe.c
is required. (CVS 3735)

FossilOrigin-Name: 26348556d824c032851e409ac510cddb55c200bf
2007-03-28 14:30:06 +00:00
drh
cf64372910 More strict aliasing fixes. The single source file library now runs
successfully with -fstrict-alias. (CVS 3725)

FossilOrigin-Name: c8a8a189a82500aab501e9949f5b197c0b80b3a9
2007-03-27 13:36:37 +00:00
drh
4f0c587819 Modify sources to that they can be combined into a single sqlite3.c source
file.  Eliminate all type-pruned pointer warnings. (CVS 3722)

FossilOrigin-Name: 0b832e218ec12b0eb559e407d80aba6709e2ea85
2007-03-26 22:05:01 +00:00
danielk1977
8efe541f24 Handle the case where the estimated cost of a virtual table scan is larger than SQLITE_BIG_DBL. Ticket #2253. (CVS 3670)
FossilOrigin-Name: 52885ed8b76a06588acf202a38b4feabfca1cfd1
2007-03-02 08:12:22 +00:00
drh
3e35580779 Disable the OR optimization if it would conflict with column
affinity coercions.  Ticket #2249.  Additional cleanup and testing
of the OR optimization. (CVS 3658)

FossilOrigin-Name: 908daaa9ab86e0bd1da6d0807d6aaba240c3cee0
2007-02-23 23:13:33 +00:00
drh
7b4fc6a8cb When optimizing out an ORDER BY clause due to uniqueness constraints, make
sure unused terms to the right in the ORDER BY clause to not reference other
tables in a join.  Ticket #2211.  Additional test cases needed before
closing this ticket. (CVS 3629)

FossilOrigin-Name: 912faf18d86416b1a36660851f8a4554e6746875
2007-02-06 13:26:32 +00:00
drh
f2d315d0c2 Fix an additional problem with the IS NULL optimization on LEFT JOINs.
Ticket #2189.  See also ticket #2177. (CVS 3602)

FossilOrigin-Name: 358dd82d3a921228155e2cf9e22aedd2b651ca9c
2007-01-25 16:56:06 +00:00
drh
c49de5d98c Make sure the IS NULL optimization introduced by check-in (3494) correctly
handles a LEFT JOIN where the a term from the right table of the join uses
an IS NULL constraint.  Ticket #2177.  This check-in also adds the new test
cases that were suppose to have been added with (3494) but which were
mistakenly omitted. (CVS 3595)

FossilOrigin-Name: 335863e4d16113fb9ecebce35d2db043771d98b1
2007-01-19 01:06:01 +00:00
drh
cc19254de9 The query optimizer does a better job of optimizing out ORDER BY clauses
that contain the rowid or which use indices that contain the rowid.
Ticket #2116. (CVS 3536)

FossilOrigin-Name: f245f5c2c2d337fe6458824beb7f9e721837765f
2006-12-20 03:24:19 +00:00
drh
61dfc31d80 Query optimizer enhancement: In "FROM a,b,c left join d" allow the C table
to be reordered with A and B.  This used to be the case but the capability
was removed by (3203) and (3052) in response to ticket #1652.  This change
restores the capability. (CVS 3529)

FossilOrigin-Name: 7393c81b8cb9d4344ae744de9eabcb3af64f1db8
2006-12-16 16:25:15 +00:00
drh
382765866b Fix a bug in the optimizer that was causing it to miss an OR optimization
opportunity. (CVS 3502)

FossilOrigin-Name: 9bf153b54c6e9ba16914dedd9e2949f32d7550ea
2006-11-06 15:10:05 +00:00
drh
50b3996899 Enhance the optimizer so that IS NULL can use an available index. (CVS 3494)
FossilOrigin-Name: 64762a9d582e4655d6bc5989d8e0ad773d659a7d
2006-10-28 00:28:09 +00:00
drh
0660e26efe Changes directed toward optimizing IS NULL terms in WHERE clauses. (CVS 3492)
FossilOrigin-Name: 4d336e9ef5f65b95959e7d01cd0357d46e9b1fa5
2006-10-27 14:06:57 +00:00
drh
28f4591466 Fix a problems that arise if malloc() fails while compiling SELECT
statements within a TRIGGER. (CVS 3478)

FossilOrigin-Name: ee4894b49995e4904db1991281563cfbb7b1c16d
2006-10-18 23:26:38 +00:00
drh
edb193b766 Changes so that it will build with SQLITE_OMIT_VIRTUALTABLE=1. (CVS 3309)
FossilOrigin-Name: 5612b287059c75488f995625d447c4e9521d1637
2006-06-27 13:20:21 +00:00
danielk1977
3851a65e3a Fix bug in transfer of arguments from WHERE clause to virtual table xFilter() methods. (CVS 3305)
FossilOrigin-Name: cf41f2a33f94c6c94fb39ae6ffcd58bbf9ea88c8
2006-06-27 12:16:56 +00:00
drh
d2ca60d776 Make sure that MATCH terms that a virtual table says should be omitted
really are omitted. (CVS 3302)

FossilOrigin-Name: 3e1f5567dfd306bdb97275a32afd02ea693eaf58
2006-06-27 02:36:58 +00:00
drh
9861a9f065 Cleanup and refactor parts of the optimizer. (CVS 3301)
FossilOrigin-Name: 6609c25fbfa5ad7f55c356936abb1721686c47ca
2006-06-27 02:33:40 +00:00
drh
6d209d8b0d Cache and reuse virtual table index information in the optimizer.
Improved diagnostics for virtual table index selection. (CVS 3300)

FossilOrigin-Name: 28413cf2b3f0e6f294e1f3c59fcce135b65c294f
2006-06-27 01:54:26 +00:00
danielk1977
65fd59f731 A few more test cases to improve coverage of virtual table module related code. (CVS 3292)
FossilOrigin-Name: 255aa9121a2ef4fec7fa5523e52969acc96f4b40
2006-06-24 11:51:33 +00:00
danielk1977
be71889703 Add tests and fixes for handling malloc() failures related to the virtual table feature. (CVS 3285)
FossilOrigin-Name: 5d1d907189ff3ca7afada83033280cf258984ac0
2006-06-23 08:05:19 +00:00
danielk1977
93626f4869 Fix some problems with virtual tables and joins in where.c. (CVS 3277)
FossilOrigin-Name: 3e19a7d8eabcd2fa71ced3f76c5f9bc1f3900b81
2006-06-20 13:07:27 +00:00
danielk1977
74cdba4fa8 Avoid returning MISUSE when sqlite is called recursively by an xBestIndex callback. (CVS 3274)
FossilOrigin-Name: 4339e1bf664c4287aabe0993a9c5a2b783019cb3
2006-06-19 12:02:58 +00:00
danielk1977
70b6d57373 Fix memory leak in where.c. (CVS 3271)
FossilOrigin-Name: 3d10e8f36113a189aa19ecd99007cd0a926b2f8a
2006-06-19 04:49:34 +00:00
drh
1a90e099f4 Bug fixes in the MATCH and ORDER BY processing of virtual tables. (CVS 3249)
FossilOrigin-Name: c996185a9e0671e46bed06e5803b1ca3b42d61e2
2006-06-14 22:07:10 +00:00
drh
4cbdda9e27 Added code to INSERT, DELETE and UPDATE virtual tables. The new code is
mostly untested. (CVS 3248)

FossilOrigin-Name: 32c97b884b104d120db3c0a87f5eab28f36851f8
2006-06-14 19:00:20 +00:00
drh
4be8b51ee1 The echo module test is now running. Added the tclvar module test but have
not yet done anything with it. (CVS 3234)

FossilOrigin-Name: 29199eeea4c46168ccaa7535d4941bd740479dee
2006-06-13 23:51:34 +00:00
drh
7f3759015a The optimizer recognizes MATCH operators and allows virtual-tables to make
use of them. (CVS 3232)

FossilOrigin-Name: 136bed496b89943522310ec511199b78198d0844
2006-06-13 17:38:59 +00:00
danielk1977
be8a7835ea Add the tentative sqlite3_allocate_queryplan() API. (CVS 3228)
FossilOrigin-Name: 7a3e97f76b1f4f97a04f7c5a9daa400402b2ff25
2006-06-13 15:00:54 +00:00
danielk1977
5fac9f86eb Add simple tests for the xFilter and xBestIndex methods. (CVS 3227)
FossilOrigin-Name: 0f4657ea69314e49bc7c9faf9a653ef072f5082d
2006-06-13 14:16:58 +00:00
drh
a967e88645 Progress toward getting the virtual-table code generator to work. (CVS 3220)
FossilOrigin-Name: 3532f1340f939b0231c1d82a7b2d186cb096fb29
2006-06-13 01:04:52 +00:00
drh
9eff616750 Added code to iterate through virtual tables. All regression tests pass
but the new code is completely untested. (CVS 3219)

FossilOrigin-Name: 010965433140fbe508a907d861dbad79343bf7c2
2006-06-12 21:59:13 +00:00
drh
b9bb7c187e Progress toward CREATE VIRTUAL TABLE. Still not even close to working... (CVS 3211)
FossilOrigin-Name: 898ec36b4102aaa03979f8f5c510936e57e2ae48
2006-06-11 23:41:55 +00:00
drh
df26fd5edd In joins of the form "A left B, C" make sure they are not transformed into
"A left C, B".  Ticket #1830.  See also #1652. (CVS 3203)

FossilOrigin-Name: 2baa983653796e16d36739e37b0be1672bf59a92
2006-06-06 11:45:54 +00:00
drh
ffe0f8901e Correctly handle multi-column indices where multiple columns are constrained
by IN operators with subqueries on the right-hand side.  Ticket #1807. (CVS 3184)

FossilOrigin-Name: b16541ba5e6a9514f9f317888117c68b6818f9cb
2006-05-11 13:26:25 +00:00
drh
e2b3909d63 Additional information about index sorting in EXPLAIN QUERY PLAN. (CVS 3176)
FossilOrigin-Name: 39dd969527a107b2a6bb94dfc35d93850917faa8
2006-04-21 09:38:36 +00:00
drh
4dd238a51d Join optimizer enhancements. (CVS 3156)
FossilOrigin-Name: 0039888f9132dc7461af4ae448292a0ce9adf804
2006-03-28 23:55:57 +00:00
drh
74161705f1 Remove unused parameters on internal APIs. Suppress warnings from
CodeWarrior. (CVS 3110)

FossilOrigin-Name: 4b22e4b847f8d5c29830baea541194ef3a0c4811
2006-02-24 02:53:49 +00:00
drh
570b935c2a In joins of the form: "A, B left C" make sure that the reordering optimization
does not put table A after table C.  Ticket #1652. (CVS 3052)

FossilOrigin-Name: 248b9be93d9532e31c640432b75c3310e180acb3
2006-02-01 02:45:02 +00:00
danielk1977
f011300000 Rename some variables to avoid hiding others. Also add "static" to two function signatures that were missing it. (CVS 3024)
FossilOrigin-Name: d86f18a4277ebffb644ba2e574e0b697c8bbf8e4
2006-01-24 12:09:17 +00:00
drh
b52076cd7a Do not name variables "operator" because some compilers do not realize that
"operator" is not a reserved word in ANSI-C.  Ticket #1625. (CVS 2997)

FossilOrigin-Name: 1f42a338e2ee90f4c24a9eb19054c4b831dd661f
2006-01-23 13:22:09 +00:00
drh
d116739351 Fix additional compiler warnings. Tickets #1615, #1616, #1627 (CVS 2994)
FossilOrigin-Name: 6385628edd79187dff1687815d0101c31248e54f
2006-01-23 13:00:35 +00:00
drh
02afc86171 More compiler warnings fixed - or in some cases comments are added to explain
that the compiler is wrong. (CVS 2984)

FossilOrigin-Name: 507653a98cbd096f836a977408e373640c7cdb8f
2006-01-20 18:10:57 +00:00
danielk1977
9e12800dec Use a global variable protected by a mutex instead of thread-specific-data to record malloc() failures. (CVS 2972)
FossilOrigin-Name: ac090f2ab3b5a792c2fdf897e10060f263e0d408
2006-01-18 16:51:35 +00:00
danielk1977
1576cd9251 Fixes for OMIT_SUBQUERY builds: Disable where clause OR->IN optimization. Include EXISTS keyword (for new CREATE TABLE syntax). Test file fixes. (CVS 2943)
FossilOrigin-Name: 8e79a0c24a03ccf960d6ccfb7c6b9b0f7c614e9b
2006-01-14 08:02:28 +00:00
danielk1977
9792eeff95 Avoid parsing an entire record header when it is not required. (CVS 2940)
FossilOrigin-Name: 0de729d9144afba144811799f65e32140c14ef8a
2006-01-13 15:58:43 +00:00
danielk1977
327bd59216 Fix a vdbe stack overflow problem that could occur with a correlated sub-query. (CVS 2938)
FossilOrigin-Name: caa7da807d6578f7d8848978a7d3175b6ea1743b
2006-01-13 13:01:19 +00:00
danielk1977
e725929686 Minor modification to restoreOrClearCursorPosition() to improve efficiency. Do not allocate the extra 8-bytes if memory-management is not enabled. (CVS 2936)
FossilOrigin-Name: dd705955429d847af85ffaf248976bcd1d861852
2006-01-13 06:33:23 +00:00
drh
6f7adc8a80 Automatically deallocate thread-specific data when it is no longer
being used.  Ticket #1601.  Also implemented the suggestion of
ticket #1603. Memory management is now off by default at compile-time.
The sqlite3_enable_memory_management() API has been removed. (CVS 2919)

FossilOrigin-Name: 5d9c6aa964305c3f36741ff0058da5b5f3ce0d24
2006-01-11 21:41:20 +00:00
danielk1977
b3bf556ef6 Store collation sequence names instead of pointers in sharable schema data structures. (CVS 2904)
FossilOrigin-Name: 0f0213be4d064b3d24e31ff93ec16f6862003d26
2006-01-10 17:58:23 +00:00