*** DRAFT ***

SQLite Requirement Matrix Details
lang_update.html

Index Summary Markup Original


R-60210-30740-39548-18736-23127-57044-60945-33441 tcl slt th3 src

Canonical usage: syntax/update-stmt.html

/* IMP: R-60210-30740 */
# EVIDENCE-OF: R-60210-30740 -- syntax diagram update-stmt

R-41281-30429-65310-61718-08110-16866-46207-00395 tcl slt th3 src

Canonical usage: syntax/column-name-list.html

/* IMP: R-41281-30429 */
# EVIDENCE-OF: R-41281-30429 -- syntax diagram column-name-list

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-04253-59911-10302-41213-53107-62567-61424-13207 tcl slt th3 src

Canonical usage: syntax/qualified-table-name.html

/* IMP: R-04253-59911 */
# EVIDENCE-OF: R-04253-59911 -- syntax diagram qualified-table-name

R-04690-56897-30484-30954-01199-34383-22275-08504 tcl slt th3 src

Canonical usage: syntax/with-clause.html

/* IMP: R-04690-56897 */
# EVIDENCE-OF: R-04690-56897 -- syntax diagram with-clause

R-02918-23895-50999-23384-03038-03098-56818-07451 tcl slt th3 src

Canonical usage: syntax/cte-table-name.html

/* IMP: R-02918-23895 */
# EVIDENCE-OF: R-02918-23895 -- syntax diagram cte-table-name

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-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-38515-45264-03335-50980-08297-28344-12265-07348 tcl slt th3 src

An UPDATE statement is used to modify a subset of the values stored in zero or more rows of the database table identified by the qualified-table-name specified as part of the UPDATE statement.

slt/slt_lang_update.test:19   tcl/e_update.test:104

/* IMP: R-38515-45264 */
# EVIDENCE-OF: R-38515-45264 An UPDATE statement is used to modify a
# subset of the values stored in zero or more rows of the database table
# identified by the qualified-table-name specified as part of the UPDATE
# statement.

R-55869-30521-47622-53163-51064-21445-33319-34731 tcl slt th3 src

If the UPDATE statement does not have a WHERE clause, all rows in the table are modified by the UPDATE.

tcl/e_update.test:132

/* IMP: R-55869-30521 */
# EVIDENCE-OF: R-55869-30521 If the UPDATE statement does not have a
# WHERE clause, all rows in the table are modified by the UPDATE.

R-58095-46013-00121-55474-24418-20779-51878-39971 tcl slt th3 src

Otherwise, the UPDATE affects only those rows for which the WHERE clause boolean expression is true.

slt/slt_lang_update.test:53   tcl/e_update.test:149

/* IMP: R-58095-46013 */
# EVIDENCE-OF: R-58095-46013 Otherwise, the UPDATE affects only those
# rows for which the WHERE clause boolean expression is true.

R-58129-20729-43334-45037-61775-65105-23500-10551 tcl slt th3 src

It is not an error if the WHERE clause does not evaluate to true for any row in the table - this just means that the UPDATE statement affects zero rows.

slt/slt_lang_update.test:64   tcl/e_update.test:173

/* IMP: R-58129-20729 */
# EVIDENCE-OF: R-58129-20729 It is not an error if the WHERE clause does
# not evaluate to true for any row in the table - this just means that
# the UPDATE statement affects zero rows.

R-40598-36595-56877-54174-64761-50948-11892-46483 tcl slt th3 src

For each affected row, the named columns are set to the values found by evaluating the corresponding scalar expressions.

slt/slt_lang_update.test:71   tcl/e_update.test:198

/* IMP: R-40598-36595 */
# EVIDENCE-OF: R-40598-36595 For each affected row, the named columns
# are set to the values found by evaluating the corresponding scalar
# expressions.

R-34751-18293-04541-58685-13120-57905-41689-08740 tcl slt th3 src

If a single column-name appears more than once in the list of assignment expressions, all but the rightmost occurrence is ignored.

slt/slt_lang_update.test:83   tcl/e_update.test:235

/* IMP: R-34751-18293 */
# EVIDENCE-OF: R-34751-18293 If a single column-name appears more than
# once in the list of assignment expressions, all but the rightmost
# occurrence is ignored.

R-40472-60438-03331-36186-60982-36973-59940-12981 tcl slt th3 src

Columns that do not appear in the list of assignments are left unmodified.

slt/slt_lang_update.test:109   tcl/e_update.test:202

/* IMP: R-40472-60438 */
# EVIDENCE-OF: R-40472-60438 Columns that do not appear in the list of
# assignments are left unmodified.

R-36239-04077-08470-54931-40517-19628-02448-15955 tcl slt th3 src

The scalar expressions may refer to columns of the row being updated.

slt/slt_lang_update.test:125   tcl/e_update.test:247

/* IMP: R-36239-04077 */
# EVIDENCE-OF: R-36239-04077 The scalar expressions may refer to columns
# of the row being updated.

R-04558-24451-40018-59769-17015-19792-37809-52993 tcl slt th3 src

In this case all scalar expressions are evaluated before any assignments are made.

slt/slt_lang_update.test:128   tcl/e_update.test:250

/* IMP: R-04558-24451 */
# EVIDENCE-OF: R-04558-24451 In this case all scalar expressions are
# evaluated before any assignments are made.

R-28518-13457-48277-27328-18424-50932-01795-30236 tcl slt th3 src

The optional "OR action" conflict clause that follows the UPDATE keyword allows the user to nominate a specific constraint conflict resolution algorithm to use during this one UPDATE command.

tcl/e_update.test:267

/* IMP: R-28518-13457 */
# EVIDENCE-OF: R-28518-13457 The optional "OR action" conflict clause
# that follows the UPDATE keyword allows the user to nominate a specific
# constraint conflict resolution algorithm to use during this one UPDATE
# command.

R-12123-54095-45651-21328-13666-03690-37485-08653 tcl slt th3 src

The table-name specified as part of an UPDATE statement within a trigger body must be unqualified.

tcl/e_update.test:322

/* IMP: R-12123-54095 */
# EVIDENCE-OF: R-12123-54095 The table-name specified as part of an
# UPDATE statement within a trigger body must be unqualified.

R-43190-62442-20010-51227-34344-19852-62865-03762 tcl slt th3 src

In other words, the schema-name. prefix on the table name of the UPDATE is not allowed within triggers.

tcl/e_update.test:325

/* IMP: R-43190-62442 */
# EVIDENCE-OF: R-43190-62442 In other words, the schema-name. prefix on
# the table name of the UPDATE is not allowed within triggers.

R-06085-13761-54522-48441-51146-08233-07521-56188 tcl slt th3 src

Unless the table to which the trigger is attached is in the TEMP database, the table being updated by the trigger program must reside in the same database as it.

tcl/e_update.test:350

/* IMP: R-06085-13761 */
# EVIDENCE-OF: R-06085-13761 Unless the table to which the trigger is
# attached is in the TEMP database, the table being updated by the
# trigger program must reside in the same database as it.

R-29512-54644-05780-17564-45452-02840-21704-61078 tcl slt th3 src

If the table to which the trigger is attached is in the TEMP database, then the unqualified name of the table being updated is resolved in the same way as it is for a top-level statement (by searching first the TEMP database, then the main database, then any other databases in the order they were attached).

tcl/e_update.test:376

/* IMP: R-29512-54644 */
# EVIDENCE-OF: R-29512-54644 If the table to which the trigger is
# attached is in the TEMP database, then the unqualified name of the
# table being updated is resolved in the same way as it is for a
# top-level statement (by searching first the TEMP database, then the
# main database, then any other databases in the order they were
# attached).

R-19619-42762-44736-08897-02902-26192-57996-46412 tcl slt th3 src

The INDEXED BY and NOT INDEXED clauses are not allowed on UPDATE statements within triggers.

tcl/e_update.test:438

/* IMP: R-19619-42762 */
# EVIDENCE-OF: R-19619-42762 The INDEXED BY and NOT INDEXED clauses are
# not allowed on UPDATE statements within triggers.

R-57359-59558-63770-19476-57809-18440-47111-21364 tcl slt th3 src

The LIMIT and ORDER BY clauses for UPDATE are unsupported within triggers, regardless of the compilation options used to build SQLite.

tcl/e_update.test:459

/* IMP: R-57359-59558 */
# EVIDENCE-OF: R-57359-59558 The LIMIT and ORDER BY clauses for UPDATE
# are unsupported within triggers, regardless of the compilation options
# used to build SQLite.

R-59581-44104-07622-44169-35142-09947-54214-52613 tcl slt th3 src

If SQLite is built with the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option then the syntax of the UPDATE statement is extended with optional ORDER BY and LIMIT clauses

tcl/e_update.test:491

/* IMP: R-59581-44104 */
# EVIDENCE-OF: R-59581-44104 If SQLite is built with the
# SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option then the syntax
# of the UPDATE statement is extended with optional ORDER BY and LIMIT
# clauses

R-32128-28152-58826-01071-39781-17542-39986-27819 tcl slt th3 src

Canonical usage: syntax/update-stmt-limited.html

/* IMP: R-32128-28152 */
# EVIDENCE-OF: R-32128-28152 -- syntax diagram update-stmt-limited

R-58862-44169-03141-46737-61496-44954-25565-37290 tcl slt th3 src

If an UPDATE statement has a LIMIT clause, the maximum number of rows that will be updated is found by evaluating the accompanying expression and casting it to an integer value.

tcl/e_update.test:527

/* IMP: R-58862-44169 */
# EVIDENCE-OF: R-58862-44169 If an UPDATE statement has a LIMIT clause,
# the maximum number of rows that will be updated is found by evaluating
# the accompanying expression and casting it to an integer value.

R-63582-45120-10136-38887-13737-27800-47314-58816 tcl slt th3 src

A negative value is interpreted as "no limit".

tcl/e_update.test:537

/* IMP: R-63582-45120 */
# EVIDENCE-OF: R-63582-45120 A negative value is interpreted as "no
# limit".

R-18628-11938-58280-60424-32964-58816-64179-48454 tcl slt th3 src

If the LIMIT expression evaluates to non-negative value N and the UPDATE statement has an ORDER BY clause, then all rows that would be updated in the absence of the LIMIT clause are sorted according to the ORDER BY and the first N updated.

tcl/e_update.test:546

/* IMP: R-18628-11938 */
# EVIDENCE-OF: R-18628-11938 If the LIMIT expression evaluates to
# non-negative value N and the UPDATE statement has an ORDER BY clause,
# then all rows that would be updated in the absence of the LIMIT clause
# are sorted according to the ORDER BY and the first N updated.

R-30955-38324-06638-08685-16466-65436-15533-06365 tcl slt th3 src

If the UPDATE statement also has an OFFSET clause, then it is similarly evaluated and cast to an integer value. If the OFFSET expression evaluates to a non-negative value M, then the first M rows are skipped and the following N rows updated instead.

tcl/e_update.test:559

/* IMP: R-30955-38324 */
# EVIDENCE-OF: R-30955-38324 If the UPDATE statement also has an OFFSET
# clause, then it is similarly evaluated and cast to an integer value.
# If the OFFSET expression evaluates to a non-negative value M, then the
# first M rows are skipped and the following N rows updated instead.

R-19486-35828-58507-08873-52072-46615-25523-07720 tcl slt th3 src

If the UPDATE statement has no ORDER BY clause, then all rows that would be updated in the absence of the LIMIT clause are assembled in an arbitrary order before applying the LIMIT and OFFSET clauses to determine which are actually updated.

tcl/e_update.test:571

/* IMP: R-19486-35828 */
# EVIDENCE-OF: R-19486-35828 If the UPDATE statement has no ORDER BY
# clause, then all rows that would be updated in the absence of the
# LIMIT clause are assembled in an arbitrary order before applying the
# LIMIT and OFFSET clauses to determine which are actually updated.

R-10927-26133-64625-21951-56674-25631-48081-51767 tcl slt th3 src

The ORDER BY clause on an UPDATE statement is used only to determine which rows fall within the LIMIT. The order in which rows are modified is arbitrary and is not influenced by the ORDER BY clause.

tcl/e_update.test:584

/* IMP: R-10927-26133 */
# EVIDENCE-OF: R-10927-26133 The ORDER BY clause on an UPDATE statement
# is used only to determine which rows fall within the LIMIT. The order
# in which rows are modified is arbitrary and is not influenced by the
# ORDER BY clause.