*** 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:105

/* 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:108

/* 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:111

/* 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:114

/* 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:136

/* 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:141

/* 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-26661-41922-59096-19000-31799-48031-02223-27178 tcl slt th3 src

Regardless of the compile-time configuration, any identifier that is not on the following 124 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_DATE
  29. CURRENT_TIME
  30. CURRENT_TIMESTAMP
  31. DATABASE
  32. DEFAULT
  33. DEFERRABLE
  34. DEFERRED
  35. DELETE
  36. DESC
  37. DETACH
  38. DISTINCT
  39. DROP
  40. EACH
  41. ELSE
  42. END
  43. ESCAPE
  44. EXCEPT
  45. EXCLUSIVE
  46. EXISTS
  47. EXPLAIN
  48. FAIL
  49. FOR
  50. FOREIGN
  51. FROM
  52. FULL
  53. GLOB
  54. GROUP
  55. HAVING
  56. IF
  57. IGNORE
  58. IMMEDIATE
  59. IN
  60. INDEX
  61. INDEXED
  62. INITIALLY
  63. INNER
  64. INSERT
  65. INSTEAD
  66. INTERSECT
  67. INTO
  68. IS
  69. ISNULL
  70. JOIN
  71. KEY
  72. LEFT
  73. LIKE
  74. LIMIT
  75. MATCH
  76. NATURAL
  77. NO
  78. NOT
  79. NOTNULL
  80. NULL
  81. OF
  82. OFFSET
  83. ON
  84. OR
  85. ORDER
  86. OUTER
  87. PLAN
  88. PRAGMA
  89. PRIMARY
  90. QUERY
  91. RAISE
  92. RECURSIVE
  93. REFERENCES
  94. REGEXP
  95. REINDEX
  96. RELEASE
  97. RENAME
  98. REPLACE
  99. RESTRICT
  100. RIGHT
  101. ROLLBACK
  102. ROW
  103. SAVEPOINT
  104. SELECT
  105. SET
  106. TABLE
  107. TEMP
  108. TEMPORARY
  109. THEN
  110. TO
  111. TRANSACTION
  112. TRIGGER
  113. UNION
  114. UNIQUE
  115. UPDATE
  116. USING
  117. VACUUM
  118. VALUES
  119. VIEW
  120. VIRTUAL
  121. WHEN
  122. WHERE
  123. WITH
  124. WITHOUT

th3/req1/keyword01.test:24

/* IMP: R-26661-41922 */
# EVIDENCE-OF: R-26661-41922 Regardless of the compile-time
# configuration, any identifier that is not on the following 124 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_DATE CURRENT_TIME CURRENT_TIMESTAMP
# DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC DETACH DISTINCT DROP
# EACH ELSE END ESCAPE EXCEPT EXCLUSIVE EXISTS EXPLAIN FAIL 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 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 WHEN WHERE WITH WITHOUT