*** DRAFT ***

SQLite Requirement Matrix Details
lang_keywords.html

Index Summary Markup Original


R-58133-32721-60366-63441-61614-07001-53385-02322 tcl slt th3 src

A keyword in single quotes is a string literal.

th3/req1/keyword01.test:108

/* IMP: R-58133-32721 */
# EVIDENCE-OF: R-58133-32721 A keyword in single quotes is a string
# literal.

R-49991-12716-30919-42596-27111-39963-53414-21739 tcl slt th3 src

A keyword in double-quotes is an identifier.

th3/req1/keyword01.test:111

/* IMP: R-49991-12716 */
# EVIDENCE-OF: R-49991-12716 A keyword in double-quotes is an
# identifier.

R-15400-09401-11917-03904-29330-15741-54444-34897 tcl slt th3 src

A keyword enclosed in square brackets is an identifier.

th3/req1/keyword01.test:114

/* IMP: R-15400-09401 */
# EVIDENCE-OF: R-15400-09401 A keyword enclosed in square brackets is an
# identifier.

R-57064-52104-64431-17226-40317-39085-08319-65218 tcl slt th3 src

A keyword enclosed in grave accents (ASCII code 96) is an identifier.

th3/req1/keyword01.test:117

/* IMP: R-57064-52104 */
# EVIDENCE-OF: R-57064-52104 A keyword enclosed in grave accents (ASCII
# code 96) is an identifier.

R-33075-33190-25707-00729-29148-31049-04309-45993 tcl slt th3 src

If a keyword in single quotes (ex: 'key' or 'glob') is used in a context where an identifier is allowed but where a string literal is not allowed, then the token is understood to be an identifier instead of a string literal.

th3/req1/keyword01.test:139

/* IMP: R-33075-33190 */
# EVIDENCE-OF: R-33075-33190 If a keyword in single quotes (ex: 'key' or
# 'glob') is used in a context where an identifier is allowed but where
# a string literal is not allowed, then the token is understood to be an
# identifier instead of a string literal.

R-57360-40691-20822-63524-22530-36364-65033-34134 tcl slt th3 src

If a keyword in double quotes (ex: "key" or "glob") is used in a context where it cannot be resolved to an identifier but where a string literal is allowed, then the token is understood to be a string literal instead of an identifier.

th3/req1/keyword01.test:144

/* IMP: R-57360-40691 */
# EVIDENCE-OF: R-57360-40691 If a keyword in double quotes (ex: "key" or
# "glob") is used in a context where it cannot be resolved to an
# identifier but where a string literal is allowed, then the token is
# understood to be a string literal instead of an identifier.

R-19214-60454-47296-46962-57562-56608-53058-41795 tcl slt th3 src

Regardless of the compile-time configuration, any identifier that is not on the following 136 element list is not a keyword to the SQL parser in SQLite:

  1. ABORT
  2. ACTION
  3. ADD
  4. AFTER
  5. ALL
  6. ALTER
  7. ANALYZE
  8. AND
  9. AS
  10. ASC
  11. ATTACH
  12. AUTOINCREMENT
  13. BEFORE
  14. BEGIN
  15. BETWEEN
  16. BY
  17. CASCADE
  18. CASE
  19. CAST
  20. CHECK
  21. COLLATE
  22. COLUMN
  23. COMMIT
  24. CONFLICT
  25. CONSTRAINT
  26. CREATE
  27. CROSS
  28. CURRENT
  29. CURRENT_DATE
  30. CURRENT_TIME
  31. CURRENT_TIMESTAMP
  32. DATABASE
  33. DEFAULT
  34. DEFERRABLE
  35. DEFERRED
  36. DELETE
  37. DESC
  38. DETACH
  39. DISTINCT
  40. DO
  41. DROP
  42. EACH
  43. ELSE
  44. END
  45. ESCAPE
  46. EXCEPT
  47. EXCLUSIVE
  48. EXISTS
  49. EXPLAIN
  50. FAIL
  51. FILTER
  52. FOLLOWING
  53. FOR
  54. FOREIGN
  55. FROM
  56. FULL
  57. GLOB
  58. GROUP
  59. HAVING
  60. IF
  61. IGNORE
  62. IMMEDIATE
  63. IN
  64. INDEX
  65. INDEXED
  66. INITIALLY
  67. INNER
  68. INSERT
  69. INSTEAD
  70. INTERSECT
  71. INTO
  72. IS
  73. ISNULL
  74. JOIN
  75. KEY
  76. LEFT
  77. LIKE
  78. LIMIT
  79. MATCH
  80. NATURAL
  81. NO
  82. NOT
  83. NOTHING
  84. NOTNULL
  85. NULL
  86. OF
  87. OFFSET
  88. ON
  89. OR
  90. ORDER
  91. OUTER
  92. OVER
  93. PARTITION
  94. PLAN
  95. PRAGMA
  96. PRECEDING
  97. PRIMARY
  98. QUERY
  99. RAISE
  100. RANGE
  101. RECURSIVE
  102. REFERENCES
  103. REGEXP
  104. REINDEX
  105. RELEASE
  106. RENAME
  107. REPLACE
  108. RESTRICT
  109. RIGHT
  110. ROLLBACK
  111. ROW
  112. ROWS
  113. SAVEPOINT
  114. SELECT
  115. SET
  116. TABLE
  117. TEMP
  118. TEMPORARY
  119. THEN
  120. TO
  121. TRANSACTION
  122. TRIGGER
  123. UNBOUNDED
  124. UNION
  125. UNIQUE
  126. UPDATE
  127. USING
  128. VACUUM
  129. VALUES
  130. VIEW
  131. VIRTUAL
  132. WHEN
  133. WHERE
  134. WINDOW
  135. WITH
  136. WITHOUT

th3/req1/keyword01.test:24

/* IMP: R-19214-60454 */
# EVIDENCE-OF: R-19214-60454 Regardless of the compile-time
# configuration, any identifier that is not on the following 136 element
# list is not a keyword to the SQL parser in SQLite: ABORT ACTION ADD
# AFTER ALL ALTER ANALYZE AND AS ASC ATTACH AUTOINCREMENT BEFORE BEGIN
# BETWEEN BY CASCADE CASE CAST CHECK COLLATE COLUMN COMMIT CONFLICT
# CONSTRAINT CREATE CROSS CURRENT CURRENT_DATE CURRENT_TIME
# CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC
# DETACH DISTINCT DO DROP EACH ELSE END ESCAPE EXCEPT EXCLUSIVE EXISTS
# EXPLAIN FAIL FILTER FOLLOWING FOR FOREIGN FROM FULL GLOB GROUP HAVING
# IF IGNORE IMMEDIATE IN INDEX INDEXED INITIALLY INNER INSERT INSTEAD
# INTERSECT INTO IS ISNULL JOIN KEY 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