-C Format\skeyword\slists\sin\slang.html\susing\sa\sTCL\sproc.\s(CVS\s961)
-D 2003-05-07T13:37:31
+C Fixed\smetacharacter\scoloring\swith\sLP,\sRP,\sPLUS.\nAdded\smore\slinks.\s(CVS\s962)
+D 2003-05-10T02:54:02
F Makefile.in 004acec253ecdde985c8ecd5b7c9accdb210378f
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
F www/fileformat.tcl d9b586416c0d099b82e02e469d532c9372f98f3f
F www/formatchng.tcl cbaf0f410096c71f86a7537cf9249fa04b9a659c
F www/index.tcl b155eba45136d19e7aa6ba979d4093180c335cf7
-F www/lang.tcl 4cec7ec64b805f42a43603f13ebeabeca24cfa3b
+F www/lang.tcl bb945a1081928d9de8f08fa15632ac42c73c0c13
F www/mingw.tcl d96b451568c5d28545fefe0c80bee3431c73f69c
F www/nulls.tcl 29497dac2bc5b437aa7e2e94577dad4d8933ed26
F www/omitted.tcl 118062f40a203fcb88b8d68ef1d7c0073ac191ec
F www/sqlite.tcl ffde644361e1d8e2a44a235ff23ad3b43d640df2
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
-P 55ae7b35ee2dcebc99256d4b1e22a87ea75e3d03
-R 849b94043a42ea202d2d3a2e258a557f
-U drh
-Z e811bb2e7df7f5cfb03940a1ebd0bc01
+P ca75f1ca12cd88dce688e272d73c3c2282079547
+R 0a8fe2a8e044cb4f18a061cc4a59a233
+U jplyon
+Z 66852ddc0c84a5e900bfd52905e03852
#
# Run this Tcl script to generate the sqlite.html file.
#
-set rcsid {$Id: lang.tcl,v 1.56 2003/05/07 13:37:31 drh Exp $}
+set rcsid {$Id: lang.tcl,v 1.57 2003/05/10 02:54:02 jplyon Exp $}
puts {<html>
<head>
while at the same time
adding a few features of its own. This document attempts to
describe percisely what parts of the SQL language SQLite does
-and does not support.</p>
+and does not support. A list of <a href="#keywords">keywords<a/> is
+given at the end.</p>
<p>In all of the syntax diagrams that follow, literal text is shown in
bold blue. Non-terminal symbols are shown in italic red. Operators
regsub -all {[|,.*()]} $body {<big>&</big>} body
regsub -all { = } $body { <big>=</big> } body
regsub -all {STAR} $body {<big>*</big>} body
+ ## These metacharacters must be handled to undo being
+ ## treated as SQL punctuation characters above.
+ regsub -all {RPPLUS} $body {</font></b>)+<b><font color="#2c2cf0">} body
+ regsub -all {LP} $body {</font></b>(<b><font color="#2c2cf0">} body
+ regsub -all {RP} $body {</font></b>)<b><font color="#2c2cf0">} body
+ ## Place the left-hand side of the rule in the 2nd table column.
puts "<td><b><font color=\"#2c2cf0\">$body</font></b></td></tr>"
}
puts {</table>}
<expr> [NOT] IN ( <value-list> ) |
<expr> [NOT] IN ( <select-statement> ) |
( <select-statement> ) |
-CASE [<expr>] ( WHEN <expr> THEN <expr> )+ [ELSE <expr>] END
+CASE [<expr>] LP WHEN <expr> THEN <expr> RPPLUS [ELSE <expr>] END
} {like-op} {
LIKE | GLOB | NOT LIKE | NOT GLOB
}
operand modulo its right operand.</p>"
puts {
+<a name="like"></a>
<p>The LIKE operator does a wildcard comparision. The operand
to the right contains the wildcards.}
puts "A percent symbol [Operator %] in the right operand
characters. Hence the LIKE operator is case sensitive for
8-bit iso8859 characters or UTF-8 characters. For example,
the expression <b>'a' LIKE 'A'</b> is TRUE but
-<b>'æ' LIKE 'Æ'</b> is FALSE.)
+<b>'æ' LIKE 'Æ'</b> is FALSE.). The infix
+LIKE operator is identical the user function <a href="#likeFunc">
+like(<i>X</i>,<i>Y</i>)</a>.
</p>
+<a name="glob"></a>
<p>The GLOB operator is similar to LIKE but uses the Unix
file globbing syntax for its wildcards. Also, GLOB is case
sensitive, unlike LIKE. Both GLOB and LIKE may be preceded by
-the NOT keyword to invert the sense of the test.</p>
+the NOT keyword to invert the sense of the test. The infix GLOB
+operator is identical the user function <a href="#globFunc">
+glob(<i>X</i>,<i>Y</i>)</a>.</p>
<p>A column name can be any of the names defined in the CREATE TABLE
statement or one of the following special identifiers: "<b>ROWID</b>",
</tr>
<tr>
+<a name="globFunc"></a>
<td valign="top" align="right">glob(<i>X</i>,<i>Y</i>)</td>
<td valign="top">This function is used to implement the
"<b>Y GLOB X</b>" syntax of SQLite. The
<a href="c_interface.html#cfunc">sqlite_create_function()</a>
interface can
be used to override this function and thereby change the operation
-of the GLOB operator.</td>
+of the <a href="#glob">GLOB</a> operator.</td>
</tr>
<tr>
</tr>
<tr>
+<a name="likeFunc"></a>
<td valign="top" align="right">like(<i>X</i>,<i>Y</i>)</td>
<td valign="top">This function is used to implement the
"<b>Y LIKE X</b>" syntax of SQL. The
<a href="c_interface.html#cfunc">sqlite_create_function()</a>
interface can
be used to override this function and thereby change the operation
-of the LIKE operator.</td>
+of the <a href="#like">LIKE</a> operator.</td>
</tr>
<tr>
be the same as the number of columns in the table. If a column-list
is specified, then the number of values must match the number of
specified columns. Columns of the table that do not appear in the
-column list are fill with the default value, or with NULL if not
+column list are filled with the default value, or with NULL if not
default value is specified.
</p>
<a name="pragma_temp_store"></a>
<li><p><b>PRAGMA temp_store;
- <br>PRAGMA temp_store = default;
- <br>PRAGMA temp_store = memory;
- <br>PRAGMA temp_store = file;</b></p>
+ <br>PRAGMA temp_store = DEFAULT;
+ <br>PRAGMA temp_store = MEMORY;
+ <br>PRAGMA temp_store = FILE;</b></p>
<p>Query or change the setting of the "temp_store" flag affecting
the database for the duration of the current database connection.
The temp_store flag reverts to its default value when the database
[HAVING <expr>]
[<compound-op> <select>]*
[ORDER BY <sort-expr-list>]
-[LIMIT <integer> [OFFSET <integer>]]
+[LIMIT <integer> [LP OFFSET | , RP <integer>]]
} {result} {
<result-column> [, <result-column>]*
} {result-column} {
<p>The following keywords are used by SQLite. Most are either reserved
words in SQL-92 or were listed as potential reserved words. Those which
aren't are shown in italics. Not all of these words are actually used
-by SQLite. Keywords are not reserved in SQLite. Any Keyword can be used
+by SQLite. Keywords are not reserved in SQLite. Any keyword can be used
as an identifier for SQLite objects (columns, databases, indexes, tables,
triggers, views, ...) but must generally be enclosed by brackets or
quotes to avoid confusing the parser. Keyword matching in SQLite is