Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a few "class" attributes to the html generated by lang.tcl to support conversion to pdf. (CVS 3677) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
485c52ddc0f3c24f624825904cea3566 |
User & Date: | danielk1977 2007-03-09 14:40:59.000 |
Context
2007-03-09
| ||
14:43 | Remove extra heading accidentally added to lang.tcl by (3677). (CVS 3678) (check-in: 570533c1ef user: danielk1977 tags: trunk) | |
14:40 | Add a few "class" attributes to the html generated by lang.tcl to support conversion to pdf. (CVS 3677) (check-in: 485c52ddc0 user: danielk1977 tags: trunk) | |
2007-03-08
| ||
12:23 | Change the documentation to be more specific about the restriction on the use of keywords. Ticket #2264. (CVS 3676) (check-in: d03d480544 user: drh tags: trunk) | |
Changes
Changes to www/common.tcl.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # This file contains TCL procedures used to generate standard parts of # web pages. # proc header {txt} { puts "<html><head><title>$txt</title></head>" puts \ {<body bgcolor="white" link="#50695f" vlink="#508896"> <table width="100%" border="0"> <tr><td valign="top"> <a href="index.html"><img src="sqlite.gif" border="none"></a></td> <td width="100%"></td> <td valign="bottom"> | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # This file contains TCL procedures used to generate standard parts of # web pages. # proc header {txt} { puts "<html><head><title>$txt</title></head>" puts {<DIV class="pdf_ignore">} puts \ {<body bgcolor="white" link="#50695f" vlink="#508896"> <table width="100%" border="0"> <tr><td valign="top"> <a href="index.html"><img src="sqlite.gif" border="none"></a></td> <td width="100%"></td> <td valign="bottom"> |
︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | <li><a href="http://www.sqlite.org/cvstrac/wiki">wiki</a></li> </ul> </td> </tr></table> <table width="100%"> <tr><td bgcolor="#80a796"></td></tr> </table>} } proc footer {{rcsid {}}} { puts { <table width="100%"> <tr><td bgcolor="#80a796"></td></tr> </table>} set date [lrange $rcsid 3 4] if {$date!=""} { puts "<small><i>This page last modified on $date</i></small>" } puts {</body></html>} } # The following proc is used to ensure consistent formatting in the # HTML generated by lang.tcl and pragma.tcl. # proc Syntax {args} { | > | | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | <li><a href="http://www.sqlite.org/cvstrac/wiki">wiki</a></li> </ul> </td> </tr></table> <table width="100%"> <tr><td bgcolor="#80a796"></td></tr> </table>} puts </DIV> } proc footer {{rcsid {}}} { puts { <table width="100%"> <tr><td bgcolor="#80a796"></td></tr> </table>} set date [lrange $rcsid 3 4] if {$date!=""} { puts "<small><i>This page last modified on $date</i></small>" } puts {</body></html>} } # The following proc is used to ensure consistent formatting in the # HTML generated by lang.tcl and pragma.tcl. # proc Syntax {args} { puts {<table cellpadding="10" class=pdf_syntax>} foreach {rule body} $args { puts "<tr><td align=\"right\" valign=\"top\">" puts "<i><font color=\"#ff3434\">$rule</font></i> ::=</td>" regsub -all < $body {%LT} body regsub -all > $body {%GT} body regsub -all %LT $body {</font></b><i><font color="#ff3434">} body regsub -all %GT $body {</font></i><b><font color="#2c2cf0">} body |
︙ | ︙ |
Changes to www/lang.tcl.
1 2 3 | # # Run this Tcl script to generate the lang-*.html files. # | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # # Run this Tcl script to generate the lang-*.html files. # set rcsid {$Id: lang.tcl,v 1.124 2007/03/09 14:40:59 danielk1977 Exp $} source common.tcl if {[llength $argv]>0} { set outputdir [lindex $argv 0] } else { set outputdir "" } header {Query Language Understood by SQLite} puts { <h1 class="pdf_section">SQL As Understood By SQLite</h1> <p>The SQLite library understands most of the standard SQL language. But it does <a href="omitted.html">omit some features</a> while at the same time adding a few features of its own. This document attempts to describe precisely what parts of the SQL language SQLite does and does not support. A list of <a href="lang_keywords.html">keywords</a> is also provided.</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 that are part of the syntactic markup itself are shown in black roman.</p> <p>This document is just an overview of the SQL syntax implemented by SQLite. Many low-level productions are omitted. For detailed information on the language that SQLite understands, refer to the source code and the grammar file "parse.y".</p> <div class="pdf_ignore"> <p>SQLite implements the follow syntax:</p> <p><ul> } proc slink {label} { if {[string match *.html $label]} { return $label |
︙ | ︙ | |||
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | {{ALTER TABLE} altertable} {{ANALYZE} analyze} }] { foreach {s_title s_tag} $section {} puts "<li><a href=\"[slink $s_tag]\">$s_title</a></li>" } puts {</ul></p> <p>Details on the implementation of each command are provided in the sequel.</p> } proc Operator {name} { return "<font color=\"#2c2cf0\"><big>$name</big></font>" } proc Nonterminal {name} { return "<i><font color=\"#ff3434\">$name</font></i>" } proc Keyword {name} { return "<font color=\"#2c2cf0\">$name</font>" } proc Example {text} { puts "<blockquote><pre>$text</pre></blockquote>" } proc Section {name label} { global outputdir if {[string length $outputdir]!=0} { if {[llength [info commands puts_standard]]>0} { footer $::rcsid } if {[string length $label]>0} { | > > > > | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | {{ALTER TABLE} altertable} {{ANALYZE} analyze} }] { foreach {s_title s_tag} $section {} puts "<li><a href=\"[slink $s_tag]\">$s_title</a></li>" } puts {</ul></p> </div> <p>Details on the implementation of each command are provided in the sequel.</p> <h1 class="pdf_section">SQLite Commands</h1> } proc Operator {name} { return "<font color=\"#2c2cf0\"><big>$name</big></font>" } proc Nonterminal {name} { return "<i><font color=\"#ff3434\">$name</font></i>" } proc Keyword {name} { return "<font color=\"#2c2cf0\">$name</font>" } proc Example {text} { puts "<blockquote><pre>$text</pre></blockquote>" } proc Section {name label} { global outputdir if {[string length $outputdir]!=0} { if {[llength [info commands puts_standard]]>0} { footer $::rcsid } if {[string length $label]>0} { |
︙ | ︙ | |||
1090 1091 1092 1093 1094 1095 1096 | A parameter specifies a placeholder in the expression for a literal value that is filled in at runtime using the <a href="capi3ref.html#sqlite3_bind_int">sqlite3_bind</a> API. Parameters can take several forms: </p <blockquote> | | | 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 | A parameter specifies a placeholder in the expression for a literal value that is filled in at runtime using the <a href="capi3ref.html#sqlite3_bind_int">sqlite3_bind</a> API. Parameters can take several forms: </p <blockquote> <table class="pdf_functions"> <tr> <td align="right" valign="top"><b>?</b><i>NNN</i></td><td width="20"></td> <td>A question mark followed by a number <i>NNN</i> holds a spot for the NNN-th parameter. NNN must be between 1 and 999.</td> </tr> <tr> <td align="right" valign="top"><b>?</b></td><td width="20"></td> |
︙ | ︙ | |||
1253 1254 1255 1256 1257 1258 1259 | <b>Core Functions</b> <p>The core functions shown below are available by default. Additional functions may be written in C and added to the database engine using the <a href="capi3ref.html#cfunc">sqlite3_create_function()</a> API.</p> | | | 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 | <b>Core Functions</b> <p>The core functions shown below are available by default. Additional functions may be written in C and added to the database engine using the <a href="capi3ref.html#cfunc">sqlite3_create_function()</a> API.</p> <table border=0 cellpadding=10 class="pdf_functions"> <tr> <td valign="top" align="right" width=120>abs(<i>X</i>)</td> <td valign="top">Return the absolute value of argument <i>X</i>.</td> </tr> <tr> <td valign="top" align="right">coalesce(<i>X</i>,<i>Y</i>,...)</td> |
︙ | ︙ | |||
1466 1467 1468 1469 1470 1471 1472 | can be preceeded by the keyword DISTINCT. In such cases, duplicate elements are filtered before being passed into the aggregate function. For example, the function "count(distinct X)" will return the number of distinct values of column X instead of the total number of non-null values in column X. </p> | | | 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 | can be preceeded by the keyword DISTINCT. In such cases, duplicate elements are filtered before being passed into the aggregate function. For example, the function "count(distinct X)" will return the number of distinct values of column X instead of the total number of non-null values in column X. </p> <table border=0 cellpadding=10 class="pdf_functions"> <tr> <td valign="top" align="right" width=120>avg(<i>X</i>)</td> <td valign="top">Return the average value of all non-NULL <i>X</i> within a group. String and BLOB values that do not look like numbers are interpreted as 0. The result of avg() is always a floating point value even if all inputs are integers. </p></td> |
︙ | ︙ | |||
1978 1979 1980 1981 1982 1983 1984 | VIRTUAL* WHEN WHERE }] | > | > | | 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 | VIRTUAL* WHEN WHERE }] puts {<DIV class="pdf_section">} Section {SQLite Keywords} keywords puts {</DIV>} puts { <p>The SQL standard specifies a huge number of keywords which may not be used as the names of tables, indices, columns, databases, user-defined functions, collations, virtual table modules, or any other named object. The list of keywords is so long that few people can remember them all. For most SQL code, your safest bet is to never use any English language word as the name of a user-defined object.</p> <p>If you want to use a keyword as a name, you need to quote it. There are three ways of quoting keywords in SQLite:</p> <p> <blockquote> <table class="pdf_functions"> <tr> <td valign="top"><b>'keyword'</b></td><td width="20"></td> <td>A keyword in single quotes is interpreted as a literal string if it occurs in a context where a string literal is allowed, otherwise it is understood as an identifier.</td></tr> <tr> <td valign="top"><b>"keyword"</b></td><td></td> <td>A keyword in double-quotes is interpreted as an identifier if it matches a known identifier. Otherwise it is interpreted as a |
︙ | ︙ | |||
2032 2033 2034 2035 2036 2037 2038 | </p> <p> The following are the keywords currently recognized by SQLite: </p> <blockquote> | | | 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 | </p> <p> The following are the keywords currently recognized by SQLite: </p> <blockquote> <table width="100%" class="pdf_keywords"> <tr> <td align="left" valign="top" width="20%"> } set n [llength $keyword_list] set nCol 5 set nRow [expr {($n+$nCol-1)/$nCol}] |
︙ | ︙ | |||
2066 2067 2068 2069 2070 2071 2072 | <h2>Special names</h2> <p>The following are not keywords in SQLite, but are used as names of system objects. They can be used as an identifier for a different type of object.</p> | | > > | 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 | <h2>Special names</h2> <p>The following are not keywords in SQLite, but are used as names of system objects. They can be used as an identifier for a different type of object.</p> <blockquote class="pdf_keywords"><b> _ROWID_<br> MAIN<br> OID<br> ROWID<br> SQLITE_MASTER<br> SQLITE_SEQUENCE<br> SQLITE_TEMP_MASTER<br> TEMP<br> </b></blockquote> } puts {<DIV class="pdf_ignore">} footer $rcsid if {[string length $outputdir]} { footer $rcsid } puts {</DIV>} |