Documentation updates. (CVS 2726)

FossilOrigin-Name: 6ec8883c366532948e619830ff7d9f63b79fc08b
This commit is contained in:
drh 2005-09-20 01:36:30 +00:00
parent 22d6a53a77
commit e1547a2f1c
3 changed files with 26 additions and 18 deletions

@ -1,5 +1,5 @@
C ON-clause\sterms\sin\sa\sLEFT\sJOIN\sthat\srestrict\sonly\sthe\sleft\stable,\sshould\snot\nreally\srestrict\sthe\sleft\stable\sbut\sinstead\srows\sthat\sfail\sto\smeet\sthe\scondition\nto\sbe\sjoined\swith\sNULL\srows\sfrom\sthe\sright\stable.\s(CVS\s2725)
D 2005-09-19T21:05:49
C Documentation\supdates.\s(CVS\s2726)
D 2005-09-20T01:36:30
F Makefile.in 12784cdce5ffc8dfb707300c34e4f1eb3b8a14f1
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -300,7 +300,7 @@ F www/omitted.tcl 658ebdc83781ac419dc8a08b3f6cf93929023470
F www/opcode.tcl 5bd68059416b223515a680d410a9f7cb6736485f
F www/optimizer.tcl d6812a10269bd0d7c488987aac0ad5036cace9dc
F www/optimizing.tcl f0b2538988d1bbad16cbfe63ec6e8f48c9eb04e5
F www/optoverview.tcl 5ff8a1c38722fa9f5cb3e1b8010f6b91c5a45693
F www/optoverview.tcl 28b6f114a33bfd91bbe3440611ceed6090587211
F www/pragma.tcl 44f7b665ca598ad24724f35991653638a36a6e3f
F www/quickstart.tcl 6f6f694b6139be2d967b1492eb9a6bdf7058aa60
F www/speed.tcl 656ed5be8cc9d536353e1a96927b925634a62933
@ -311,7 +311,7 @@ F www/tclsqlite.tcl ddcf912ea48695603c8ed7efb29f0812ef8d1b49
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P b32e9ec2480f9da2c2ea705ed3c88ca77b77cf2a
R 30beedb46fba1ce2f76a3f1396f53cb5
P ea10f9785e3c5248dafcc297f3a2c5465b6e0dba
R 6ad171a801eb8b84ac88c34ad2f04d27
U drh
Z a986dad9151bb581e7854782adc6d5e8
Z 23a34f97623654d558cd9b041aa96deb

@ -1 +1 @@
ea10f9785e3c5248dafcc297f3a2c5465b6e0dba
6ec8883c366532948e619830ff7d9f63b79fc08b

@ -1,7 +1,7 @@
#
# Run this TCL script to generate HTML for the goals.html file.
#
set rcsid {$Id: optoverview.tcl,v 1.3 2005/08/31 13:48:35 drh Exp $}
set rcsid {$Id: optoverview.tcl,v 1.4 2005/09/20 01:36:30 drh Exp $}
source common.tcl
header {The SQLite Query Optimizer Overview}
@ -25,8 +25,8 @@ proc IMAGE {name {caption {}}} {
puts "</center>"
}
proc PARAGRAPH {text} {
regsub -all "/(\[^\n/\]+)/" $text {<i>\1</i>} t2
regsub -all "\\*(\[^\n*\]+)\\*" $t2 {<tt><b><big>\1</big></b></tt>} t3
# regsub -all "/(\[a-zA-Z0-9\]+)/" $text {<i>\1</i>} t2
regsub -all "\\*(\[^\n*\]+)\\*" $text {<tt><b><big>\1</big></b></tt>} t3
puts "<p>$t3</p>\n"
}
set level(0) 0
@ -165,7 +165,7 @@ PARAGRAPH {
virtual terms themselves never causes tests to be performed on
input rows.
Thus if the BETWEEN term is not used as an index constraint and
instead must be used to test input rows, the /expr1/ expression is
instead must be used to test input rows, the <i>expr1</i> expression is
only evaluated once.
}
@ -187,7 +187,7 @@ SYNTAX {
PARAGRAPH {
The rewritten term then might go on to constraint an index using the
normal rules for *IN* operators.
Note that /column/ must be the same column in every OR-connected subterm,
Note that <i>column</i> must be the same column in every OR-connected subterm,
although the column can occur on either the left or the right side of
the *=* operator.
}
@ -271,12 +271,12 @@ PARAGRAPH {
}
PARAGRAPH {
Suppose the initial sequence of non-wildcard characters on the right-hand
side of the LIKE or GLOB operator is /x/. We are using a single
side of the LIKE or GLOB operator is <i>x</i>. We are using a single
character to denote this non-wildcard prefix but the reader should
understand that the prefix can consist of more than 1 character.
Let /y/ the smallest string that is the same length as /x/ but which
compares greater than /x/. For example, if /x/ is *hello* then
/y/ would be *hellp*.
Let <i>y</i> the smallest string that is the same length as /x/ but which
compares greater than <i>x</i>. For example, if <i>x</i> is *hello* then
<i>y</i> would be *hellp*.
The LIKE and GLOB optimizations consist of adding two virtual terms
like this:
}
@ -288,8 +288,8 @@ PARAGRAPH {
tested against each input row even if the virtual terms are used to
constrain an index. This is because we do not know what additional
constraints may be imposed by characters to the right
of the /x/ prefix. However, if there is only a single global wildcard
to the right of /x/, then the original LIKE or GLOB test is disabled.
of the <i>x</i> prefix. However, if there is only a single global wildcard
to the right of <i>x</i>, then the original LIKE or GLOB test is disabled.
In other words, if the pattern is like this:
}
SYNTAX {
@ -335,6 +335,14 @@ PARAGRAPH {
over the older SQL89 comma-join syntax. They both end up accomplishing
exactly the same thing.
}
PARAGRAPH {
Join reordering is automatic and usually works well enough that
programmer do not have to think about it. But occasionally some
hints from the programmer are needed. For a description of when
hints might be necessary and how to provide those hints, see the
<a href="http://www.sqlite.org/cvstrac/wiki?p=QueryPlans">QueryPlans</a>
page in the Wiki.
}
HEADING 1 {Choosing between multiple indices} multi_index