Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.
|Comment:||Clarification to a comment in where.c. No code changes.|
|Downloads:||Tarball | ZIP archive | SQL archive|
|Timelines:||family | ancestors | descendants | both | trunk|
|Files:||files | file ages | folders|
|User & Date:||drh 2013-01-15 16:15:28|
|18:49||Fix a missing word in a comment. Enhance the "wheretrace" debugging output to show the estimated cost of each table option while planning the join order. check-in: ac4e119a user: drh tags: trunk|
|16:15||Clarification to a comment in where.c. No code changes. check-in: 04507c17 user: drh tags: trunk|
|09:58||Add another test for the fts4 content= option. check-in: 7e6007a0 user: dan tags: trunk|
Changes to src/where.c.
5101 5101 ** that do not use indices. But this nRow reduction only happens if the 5102 5102 ** table really is the innermost join. 5103 5103 ** 5104 5104 ** The second loop iteration is only performed if no optimal scan 5105 5105 ** strategies were found by the first iteration. This second iteration 5106 5106 ** is used to search for the lowest cost scan overall. 5107 5107 ** 5108 - ** Previous versions of SQLite performed only the second iteration - 5109 - ** the next outermost loop was always that with the lowest overall 5110 - ** cost. However, this meant that SQLite could select the wrong plan 5111 - ** for scripts such as the following: 5108 + ** Without the optimal scan step (the first iteration) a suboptimal 5109 + ** plan might be chosen for queries like this: 5112 5110 ** 5113 5111 ** CREATE TABLE t1(a, b); 5114 5112 ** CREATE TABLE t2(c, d); 5115 5113 ** SELECT * FROM t2, t1 WHERE t2.rowid = t1.a; 5116 5114 ** 5117 5115 ** The best strategy is to iterate through table t1 first. However it 5118 5116 ** is not possible to determine this with a simple greedy algorithm.