Documentation Source Text

Check-in [824b38d28e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the keyword list with all of the new keywords added for UPSERT and window functions.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:824b38d28e7b13a152866baf7e7dbf89ab31cc70bd2bd5a7f977395b43e1506b
User & Date: drh 2018-07-11 11:08:55
Context
2018-07-13
20:31
Add docs for fts5 unicode61 tokenizer option "categories". Leaf check-in: e32e877119 user: dan tags: trunk
2018-07-11
11:08
Update the keyword list with all of the new keywords added for UPSERT and window functions. check-in: 824b38d28e user: drh tags: trunk
2018-07-07
17:44
Update the "small footprint" docs to put the size at 600KB instead of 500KB, as we have crossed that threshold with the addition of window functions. check-in: eeaadb7da2 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/lang.in.

4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
....
4992
4993
4994
4995
4996
4997
4998

4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009

5010
5011
5012
5013
5014
5015
5016
5017
5018
5019


5020
5021
5022
5023
5024
5025
5026
....
5043
5044
5045
5046
5047
5048
5049

5050
5051
5052
5053
5054
5055
5056
5057


5058
5059

5060
5061
5062

5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073

5074
5075
5076
5077
5078
5079
5080
5081
5082
5083

5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095



5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
....
5166
5167
5168
5169
5170
5171
5172




5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
can be used to detect at run-time when an SQL statement is not
making effective use of indices.  Many applications may prefer to
use the [sqlite3_stmt_status()] interface to detect index misuse
rather than the INDEXED BY phrase described here.</p>
</ol>

<tcl>
#############################################################################
# A list of keywords.  A asterisk occurs after the keyword if it is on
# the fallback list.
#
set keyword_list [lsort {
   ABORT
   ACTION
   ADD
   AFTER
   ALL
   ALTER
................................................................................
   COLLATE
   COLUMN
   COMMIT
   CONFLICT
   CONSTRAINT
   CREATE
   CROSS

   CURRENT_DATE
   CURRENT_TIME
   CURRENT_TIMESTAMP
   DATABASE
   DEFAULT
   DEFERRED
   DEFERRABLE
   DELETE
   DESC
   DETACH
   DISTINCT

   DROP
   END
   EACH
   ELSE
   ESCAPE
   EXCEPT
   EXCLUSIVE
   EXISTS
   EXPLAIN
   FAIL


   FOR
   FOREIGN
   FROM
   FULL
   GLOB
   GROUP
   HAVING
................................................................................
   LEFT
   LIKE
   LIMIT
   MATCH
   NATURAL
   NO
   NOT

   NOTNULL
   NULL
   OF
   OFFSET
   ON
   OR
   ORDER
   OUTER


   PLAN
   PRAGMA

   PRIMARY
   QUERY
   RAISE

   RECURSIVE
   REFERENCES
   REGEXP
   REINDEX
   RELEASE
   RENAME
   REPLACE
   RESTRICT
   RIGHT
   ROLLBACK
   ROW

   SAVEPOINT
   SELECT
   SET
   TABLE
   TEMP
   TEMPORARY
   THEN
   TO
   TRANSACTION
   TRIGGER

   UNION
   UNIQUE
   UPDATE
   USING
   VACUUM
   VALUES
   VIEW
   VIRTUAL
   WITH
   WITHOUT
   WHEN
   WHERE



}]

hd_puts {<DIV class="pdf_section">}
Section {SQLite Keywords} keywords {{*SQL keyword} {SQL keywords}}
hd_puts {</DIV>}
</tcl>

<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
................................................................................

<p>
The list below shows all possible keywords used by any build of
SQLite regardless of [compile-time options].  
Most reasonable configurations use most or all of these keywords,
but some keywords may be omitted when SQL language features are
disabled.




^(Regardless of the compile-time configuration, any identifier that is not on
the following <tcl>hd_puts [llength $keyword_list]</tcl> element
list is not a keyword to the SQL parser in SQLite:
</p>

<ol>
<tcl>
set lx {}
foreach word [lsort $keyword_list] {
  hd_putsnl "<li>$word</li>"
}
hd_putsnl "</ol>)^"
</tcl>







<
<
<
<







 







>











>










>
>







 







>








>
>


>



>











>










>








<
<


>
>
>







|







 







>
>
>
>













4960
4961
4962
4963
4964
4965
4966




4967
4968
4969
4970
4971
4972
4973
....
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
....
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098


5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
....
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
can be used to detect at run-time when an SQL statement is not
making effective use of indices.  Many applications may prefer to
use the [sqlite3_stmt_status()] interface to detect index misuse
rather than the INDEXED BY phrase described here.</p>
</ol>

<tcl>




set keyword_list [lsort {
   ABORT
   ACTION
   ADD
   AFTER
   ALL
   ALTER
................................................................................
   COLLATE
   COLUMN
   COMMIT
   CONFLICT
   CONSTRAINT
   CREATE
   CROSS
   CURRENT
   CURRENT_DATE
   CURRENT_TIME
   CURRENT_TIMESTAMP
   DATABASE
   DEFAULT
   DEFERRED
   DEFERRABLE
   DELETE
   DESC
   DETACH
   DISTINCT
   DO
   DROP
   END
   EACH
   ELSE
   ESCAPE
   EXCEPT
   EXCLUSIVE
   EXISTS
   EXPLAIN
   FAIL
   FILTER
   FOLLOWING
   FOR
   FOREIGN
   FROM
   FULL
   GLOB
   GROUP
   HAVING
................................................................................
   LEFT
   LIKE
   LIMIT
   MATCH
   NATURAL
   NO
   NOT
   NOTHING
   NOTNULL
   NULL
   OF
   OFFSET
   ON
   OR
   ORDER
   OUTER
   OVER
   PARTITION
   PLAN
   PRAGMA
   PRECEDING
   PRIMARY
   QUERY
   RAISE
   RANGE
   RECURSIVE
   REFERENCES
   REGEXP
   REINDEX
   RELEASE
   RENAME
   REPLACE
   RESTRICT
   RIGHT
   ROLLBACK
   ROW
   ROWS
   SAVEPOINT
   SELECT
   SET
   TABLE
   TEMP
   TEMPORARY
   THEN
   TO
   TRANSACTION
   TRIGGER
   UNBOUNDED
   UNION
   UNIQUE
   UPDATE
   USING
   VACUUM
   VALUES
   VIEW
   VIRTUAL


   WHEN
   WHERE
   WINDOW
   WITH
   WITHOUT
}]

hd_puts {<DIV class="pdf_section">}
Section {SQLite Keywords} keywords {{*SQL keyword} {SQL keywords}}
hd_puts {</DIV>}
</tcl>

<p>The SQL standard specifies a large 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
................................................................................

<p>
The list below shows all possible keywords used by any build of
SQLite regardless of [compile-time options].  
Most reasonable configurations use most or all of these keywords,
but some keywords may be omitted when SQL language features are
disabled.
Applications can use the
[sqlite3_keyword_count()], [sqlite3_keyword_name()], and
[sqlite3_keyword_check()] interfaces to determine the keywords
recognized by SQLite at run-time.
^(Regardless of the compile-time configuration, any identifier that is not on
the following <tcl>hd_puts [llength $keyword_list]</tcl> element
list is not a keyword to the SQL parser in SQLite:
</p>

<ol>
<tcl>
set lx {}
foreach word [lsort $keyword_list] {
  hd_putsnl "<li>$word</li>"
}
hd_putsnl "</ol>)^"
</tcl>