*** DRAFT ***

SQLite Requirement Matrix Details
lang_createindex.html

Index Summary Markup Original


R-63484-12505-31722-29488-20808-43731-19220-61523 tcl slt th3 src

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

th3/req1/createidx01.test:10

/* IMP: R-63484-12505 */
# EVIDENCE-OF: R-63484-12505 -- syntax diagram create-index-stmt

R-61970-26480-33028-36412-61944-06610-41249-40014 tcl slt th3 src

Canonical usage: syntax/expr.html

/* IMP: R-61970-26480 */
# EVIDENCE-OF: R-61970-26480 -- syntax diagram expr

R-47443-11280-39343-26300-13209-50193-13307-46522 tcl slt th3 src

Canonical usage: syntax/literal-value.html

/* IMP: R-47443-11280 */
# EVIDENCE-OF: R-47443-11280 -- syntax diagram literal-value

R-54197-31877-57350-43471-52348-15226-37714-44266 tcl slt th3 src

Canonical usage: syntax/raise-function.html

/* IMP: R-54197-31877 */
# EVIDENCE-OF: R-54197-31877 -- syntax diagram raise-function

R-19713-52738-52485-51770-14412-64430-18771-01641 tcl slt th3 src

Canonical usage: syntax/select-stmt.html

/* IMP: R-19713-52738 */
# EVIDENCE-OF: R-19713-52738 -- syntax diagram select-stmt

R-29190-16177-49676-56162-41955-57961-52271-56322 tcl slt th3 src

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

/* IMP: R-29190-16177 */
# EVIDENCE-OF: R-29190-16177 -- syntax diagram common-table-expression

R-60687-03927-28728-46307-01187-04245-57381-09290 tcl slt th3 src

Canonical usage: syntax/compound-operator.html

/* IMP: R-60687-03927 */
# EVIDENCE-OF: R-60687-03927 -- syntax diagram compound-operator

R-15218-64377-10732-10708-39996-49168-39639-07301 tcl slt th3 src

Canonical usage: syntax/join-clause.html

/* IMP: R-15218-64377 */
# EVIDENCE-OF: R-15218-64377 -- syntax diagram join-clause

R-59355-25880-50978-14585-20539-54763-44134-61379 tcl slt th3 src

Canonical usage: syntax/join-constraint.html

/* IMP: R-59355-25880 */
# EVIDENCE-OF: R-59355-25880 -- syntax diagram join-constraint

R-24999-30014-65347-53781-01089-16331-37334-22917 tcl slt th3 src

Canonical usage: syntax/join-operator.html

/* IMP: R-24999-30014 */
# EVIDENCE-OF: R-24999-30014 -- syntax diagram join-operator

R-54382-61764-64572-42659-14322-10734-05041-01494 tcl slt th3 src

Canonical usage: syntax/ordering-term.html

/* IMP: R-54382-61764 */
# EVIDENCE-OF: R-54382-61764 -- syntax diagram ordering-term

R-35473-09323-51070-49381-06532-56561-01297-03559 tcl slt th3 src

Canonical usage: syntax/result-column.html

/* IMP: R-35473-09323 */
# EVIDENCE-OF: R-35473-09323 -- syntax diagram result-column

R-45000-47812-33792-18048-40996-50849-16831-13312 tcl slt th3 src

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

/* IMP: R-45000-47812 */
# EVIDENCE-OF: R-45000-47812 -- syntax diagram table-or-subquery

R-27503-48393-50904-62536-02444-59493-56551-12481 tcl slt th3 src

Canonical usage: syntax/type-name.html

/* IMP: R-27503-48393 */
# EVIDENCE-OF: R-27503-48393 -- syntax diagram type-name

R-16446-38486-52659-45236-06548-25582-51186-33834 tcl slt th3 src

Canonical usage: syntax/signed-number.html

/* IMP: R-16446-38486 */
# EVIDENCE-OF: R-16446-38486 -- syntax diagram signed-number

R-65458-30393-46621-54017-31997-42172-64963-41590 tcl slt th3 src

Canonical usage: syntax/indexed-column.html

th3/req1/createidx01.test:29

/* IMP: R-65458-30393 */
# EVIDENCE-OF: R-65458-30393 -- 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-45087-02473-60049-15221-45761-16801-31334-59252 tcl slt th3 src

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

th3/req1/createidx01.test:149

/* IMP: R-45087-02473 */
# EVIDENCE-OF: R-45087-02473 For the purposes of unique indices, all
# NULL values are considered to 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.