*** DRAFT ***

SQLite Requirement Matrix Details
lang_createindex.html

Index Summary Markup Original


R-47564-20253-53892-21863-50968-29666-10158-54788 tcl slt th3 src

Canonical usage: syntax/create-index-stmt.html

/* IMP: R-47564-20253 */
# EVIDENCE-OF: R-47564-20253 -- syntax diagram create-index-stmt

R-63282-43996-47481-25333-53243-51474-00238-17595 tcl slt th3 src

Canonical usage: syntax/expr.html

/* IMP: R-63282-43996 */
# EVIDENCE-OF: R-63282-43996 -- syntax diagram expr

R-10696-30084-53665-51146-23084-19397-22440-65131 tcl slt th3 src

Canonical usage: syntax/filter.html

/* IMP: R-10696-30084 */
# EVIDENCE-OF: R-10696-30084 -- syntax diagram filter

R-31509-35291-02084-41894-63319-63663-58586-07091 tcl slt th3 src

Canonical usage: syntax/literal-value.html

/* IMP: R-31509-35291 */
# EVIDENCE-OF: R-31509-35291 -- syntax diagram literal-value

R-60581-03341-52039-04890-58008-25772-53660-37704 tcl slt th3 src

Canonical usage: syntax/raise-function.html

/* IMP: R-60581-03341 */
# EVIDENCE-OF: R-60581-03341 -- syntax diagram raise-function

R-61628-17125-33025-56567-55142-03215-04610-55795 tcl slt th3 src

Canonical usage: syntax/select-stmt.html

/* IMP: R-61628-17125 */
# EVIDENCE-OF: R-61628-17125 -- syntax diagram select-stmt

R-47013-63517-59451-29791-27627-32329-00299-29666 tcl slt th3 src

Canonical usage: syntax/common-table-expression.html

/* IMP: R-47013-63517 */
# EVIDENCE-OF: R-47013-63517 -- syntax diagram common-table-expression

R-21508-23055-03544-43069-03700-52529-28655-04212 tcl slt th3 src

Canonical usage: syntax/compound-operator.html

/* IMP: R-21508-23055 */
# EVIDENCE-OF: R-21508-23055 -- syntax diagram compound-operator

R-23545-53633-60682-12631-15952-36070-08340-26441 tcl slt th3 src

Canonical usage: syntax/join-clause.html

/* IMP: R-23545-53633 */
# EVIDENCE-OF: R-23545-53633 -- syntax diagram join-clause

R-46541-20938-58372-53058-01043-12045-25030-53791 tcl slt th3 src

Canonical usage: syntax/join-constraint.html

/* IMP: R-46541-20938 */
# EVIDENCE-OF: R-46541-20938 -- syntax diagram join-constraint

R-27408-41206-06272-65057-49531-23299-28505-37113 tcl slt th3 src

Canonical usage: syntax/join-operator.html

/* IMP: R-27408-41206 */
# EVIDENCE-OF: R-27408-41206 -- syntax diagram join-operator

R-16212-04751-50585-08411-35285-00447-20753-02198 tcl slt th3 src

Canonical usage: syntax/ordering-term.html

/* IMP: R-16212-04751 */
# EVIDENCE-OF: R-16212-04751 -- syntax diagram ordering-term

R-62030-13484-53274-47431-56373-62021-33007-11272 tcl slt th3 src

Canonical usage: syntax/result-column.html

/* IMP: R-62030-13484 */
# EVIDENCE-OF: R-62030-13484 -- syntax diagram result-column

R-28724-59332-25400-14786-42579-47587-28356-56547 tcl slt th3 src

Canonical usage: syntax/table-or-subquery.html

/* IMP: R-28724-59332 */
# EVIDENCE-OF: R-28724-59332 -- syntax diagram table-or-subquery

R-31272-00274-62255-43298-23904-43777-05391-16185 tcl slt th3 src

Canonical usage: syntax/type-name.html

/* IMP: R-31272-00274 */
# EVIDENCE-OF: R-31272-00274 -- syntax diagram type-name

R-10061-51853-18488-63481-25877-45384-53744-51666 tcl slt th3 src

Canonical usage: syntax/signed-number.html

/* IMP: R-10061-51853 */
# EVIDENCE-OF: R-10061-51853 -- syntax diagram signed-number

R-27989-13151-39943-32082-13046-13205-21280-24214 tcl slt th3 src

Canonical usage: syntax/window-defn.html

/* IMP: R-27989-13151 */
# EVIDENCE-OF: R-27989-13151 -- syntax diagram window-defn

R-16609-30688-17519-40340-07426-24422-28783-40081 tcl slt th3 src

Canonical usage: syntax/frame-spec.html

/* IMP: R-16609-30688 */
# EVIDENCE-OF: R-16609-30688 -- syntax diagram frame-spec

R-16212-04751-50585-08411-35285-00447-20753-02198 tcl slt th3 src

Canonical usage: syntax/ordering-term.html

/* IMP: R-16212-04751 */
# EVIDENCE-OF: R-16212-04751 -- syntax diagram ordering-term

R-18631-33764-08215-40535-24413-49293-51270-42269 tcl slt th3 src

Canonical usage: syntax/indexed-column.html

/* IMP: R-18631-33764 */
# EVIDENCE-OF: R-18631-33764 -- syntax diagram indexed-column

R-57025-62168-38373-42436-38968-34840-50734-33391 tcl slt th3 src

The CREATE INDEX command consists of the keywords "CREATE INDEX" followed by the name of the new index, the keyword "ON", the name of a previously created table that is to be indexed, and a parenthesized list of table column names and/or expressions that are used for the index key.

th3/req1/createidx01.test:12

/* IMP: R-57025-62168 */
# EVIDENCE-OF: R-57025-62168 The CREATE INDEX command consists of the
# keywords "CREATE INDEX" followed by the name of the new index, the
# keyword "ON", the name of a previously created table that is to be
# indexed, and a parenthesized list of table column names and/or
# expressions that are used for the index key.

R-32925-06786-44484-40389-19544-51015-10010-30515 tcl slt th3 src

Each column name or expression can be followed by one of the "ASC" or "DESC" keywords to indicate sort order.

th3/req1/createidx02.test:10   th3/req1/createidx02.test:77

/* IMP: R-32925-06786 */
# EVIDENCE-OF: R-32925-06786 Each column name or expression can be
# followed by one of the "ASC" or "DESC" keywords to indicate sort
# order.

R-17151-07205-10894-28299-62821-16887-02117-62221 tcl slt th3 src

The sort order may or may not be ignored depending on the database file format, and in particular the schema format number.

th3/req1/createidx02.test:14

/* IMP: R-17151-07205 */
# EVIDENCE-OF: R-17151-07205 The sort order may or may not be ignored
# depending on the database file format, and in particular the schema
# format number.

R-62804-28221-24652-30727-46370-42129-23035-01106 tcl slt th3 src

The "legacy" schema format (1) ignores index sort order.

th3/req1/createidx02.test:18

/* IMP: R-62804-28221 */
# EVIDENCE-OF: R-62804-28221 The "legacy" schema format (1) ignores
# index sort order.

R-50227-03668-59884-25860-05974-05725-11856-44463 tcl slt th3 src

The descending index schema format (4) takes index sort order into account.

th3/req1/createidx02.test:21

/* IMP: R-50227-03668 */
# EVIDENCE-OF: R-50227-03668 The descending index schema format (4)
# takes index sort order into account.

R-50141-17598-64848-16921-53866-52555-58777-52662 tcl slt th3 src

The legacy_file_format pragma can be used to change set the specific behavior for any version of SQLite.

th3/req1/createidx02.test:24

/* IMP: R-50141-17598 */
# EVIDENCE-OF: R-50141-17598 The legacy_file_format pragma can be used
# to change set the specific behavior for any version of SQLite.

R-48616-47814-10585-42560-43373-45165-03302-15640 tcl slt th3 src

The COLLATE clause optionally following each column name or expression defines a collating sequence used for text entries in that column.

th3/req1/createidx01.test:36

/* IMP: R-48616-47814 */
# EVIDENCE-OF: R-48616-47814 The COLLATE clause optionally following
# each column name or expression defines a collating sequence used for
# text entries in that column.

R-57876-22123-39728-45816-26959-17516-32294-11302 tcl slt th3 src

The default collating sequence is the collating sequence defined for that column in the CREATE TABLE statement.

th3/req1/createidx01.test:40

/* IMP: R-57876-22123 */
# EVIDENCE-OF: R-57876-22123 The default collating sequence is the
# collating sequence defined for that column in the CREATE TABLE
# statement.

R-09773-40602-32968-36782-04559-37578-19507-63398 tcl slt th3 src

Or if no collating sequence is otherwise defined, the built-in BINARY collating sequence is used.

th3/req1/createidx01.test:44

/* IMP: R-09773-40602 */
# EVIDENCE-OF: R-09773-40602 Or if no collating sequence is otherwise
# defined, the built-in BINARY collating sequence is used.

R-11135-63542-29250-48049-02589-36558-61016-54500 tcl slt th3 src

Expressions in an index may not reference other tables and may not use subqueries nor functions whose result might change (ex: random() or sqlite_version()).

/* IMP: R-11135-63542 */
# EVIDENCE-OF: R-11135-63542 Expressions in an index may not reference
# other tables and may not use subqueries nor functions whose result
# might change (ex: random() or sqlite_version()).

R-40025-59984-53912-08799-37788-65154-58103-39921 tcl slt th3 src

Expressions in an index may only refer to columns in the table that is being indexed.

/* IMP: R-40025-59984 */
# EVIDENCE-OF: R-40025-59984 Expressions in an index may only refer to
# columns in the table that is being indexed.

R-13057-33448-09671-56974-58075-51862-56508-46386 tcl slt th3 src

The number of columns in an index is limited to the value set by sqlite3_limit(SQLITE_LIMIT_COLUMN,...).

th3/req1/createidx03.test:9

/* IMP: R-13057-33448 */
# EVIDENCE-OF: R-13057-33448 The number of columns in an index is
# limited to the value set by sqlite3_limit(SQLITE_LIMIT_COLUMN,...).

R-06718-34797-20809-29800-16443-15807-57069-06143 tcl slt th3 src

If the UNIQUE keyword appears between CREATE and INDEX then duplicate index entries are not allowed.

th3/req1/createidx01.test:133

/* IMP: R-06718-34797 */
# EVIDENCE-OF: R-06718-34797 If the UNIQUE keyword appears between
# CREATE and INDEX then duplicate index entries are not allowed.

R-17379-32951-58399-57501-33498-60036-41846-10214 tcl slt th3 src

Any attempt to insert a duplicate entry will result in an error.

th3/req1/createidx01.test:136

/* IMP: R-17379-32951 */
# EVIDENCE-OF: R-17379-32951 Any attempt to insert a duplicate entry
# will result in an error.

R-55137-26834-36059-41974-16460-01927-24032-61978 tcl slt th3 src

For the purposes of unique indices, all NULL values are considered different from all other NULL values and are thus unique.

th3/req1/createidx01.test:149

/* IMP: R-55137-26834 */
# EVIDENCE-OF: R-55137-26834 For the purposes of unique indices, all
# NULL values are considered different from all other NULL values and
# are thus unique.

R-16085-53730-63732-38499-15956-61706-03515-37986 tcl slt th3 src

If the optional IF NOT EXISTS clause is present and another index with the same name already exists, then this command becomes a no-op.

th3/req1/createidx01.test:158

/* IMP: R-16085-53730 */
# EVIDENCE-OF: R-16085-53730 If the optional IF NOT EXISTS clause is
# present and another index with the same name already exists, then this
# command becomes a no-op.

R-25613-37547-39472-02780-29297-59051-40019-17427 tcl slt th3 src

Indexes are removed with the DROP INDEX command.

th3/req1/createidx01.test:169

/* IMP: R-25613-37547 */
# EVIDENCE-OF: R-25613-37547 Indexes are removed with the DROP INDEX
# command.