Documentation Source Text

Check-in [36334d1830]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Clarification of xUpdate behavior in the virtual table documentation.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 36334d1830c4bfa81780a425ffac93d92c53c47867124e005eb8ef84c35c9f2f
User & Date: drh 2018-05-25 12:54:25.461
Context
2018-05-25
17:50
Add the vtablist.html page. (check-in: 3d073f02d7 user: drh tags: trunk)
12:54
Clarification of xUpdate behavior in the virtual table documentation. (check-in: 36334d1830 user: drh tags: trunk)
2018-05-23
20:21
Updates to the speed and size graph. (check-in: b25c5620c3 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/vtab.in.
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154

1155
1156
1157
1158


1159
1160
1161
1162
1163
1164
1165
1166
held within the argv[i] object, not the argv[i]
object itself.

<blockquote>
<dl>
<dt><b>argc = 1 <br> argv[0] &ne; NULL</b>
<dd><p>
The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. 
No insert occurs.

<dt><b>argc &gt; 1 <br> argv[0] = NULL</b>
<dd><p>
A new row is inserted with column values taken from
argv[2] and following.  In a rowid virtual table, if argv[1] is an SQL NULL,
then a new unique rowid is generated automatically.  The argv[1] will be NULL
for a [WITHOUT ROWID virtual table], in which case the implementation should
take the PRIMARY KEY value from the appropriate column in argv[2] and following.

<dt><b>argc &gt; 1 <br> argv[0] &ne; NULL <br> argv[0] = argv[1]</b>
<dd><p>

The row with rowid or PRIMARY KEY argv[0] is updated with new values 
in argv[2] and following parameters.

<dt><b>argc &gt; 1 <br> argv[0] &ne; NULL <br> argv[0] &ne; argv[1]</b>


<dd><p> The row with rowid or PRIMARY KEY argv[0] is updated with 
the rowid or PRIMARY KEY in argv[1] 
and new values in argv[2] and following parameters. This will occur 
when an SQL statement updates a rowid, as in the statement:
<blockquote>
   [UPDATE] table SET rowid=rowid+1 WHERE ...; 
</blockquote>
</dl>







|




|







>




>
>
|







1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
held within the argv&#91;i&#93; object, not the argv&#91;i&#93;
object itself.

<blockquote>
<dl>
<dt><b>argc = 1 <br> argv[0] &ne; NULL</b>
<dd><p>
DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. 
No insert occurs.

<dt><b>argc &gt; 1 <br> argv[0] = NULL</b>
<dd><p>
INSERT: A new row is inserted with column values taken from
argv[2] and following.  In a rowid virtual table, if argv[1] is an SQL NULL,
then a new unique rowid is generated automatically.  The argv[1] will be NULL
for a [WITHOUT ROWID virtual table], in which case the implementation should
take the PRIMARY KEY value from the appropriate column in argv[2] and following.

<dt><b>argc &gt; 1 <br> argv[0] &ne; NULL <br> argv[0] = argv[1]</b>
<dd><p>
UPDATE:
The row with rowid or PRIMARY KEY argv[0] is updated with new values 
in argv[2] and following parameters.

<dt><b>argc &gt; 1 <br> argv[0] &ne; NULL <br> argv[0] &ne; argv[1]</b>
<dd><p>
UPDATE with rowid or PRIMARY KEY change:
The row with rowid or PRIMARY KEY argv[0] is updated with 
the rowid or PRIMARY KEY in argv[1] 
and new values in argv[2] and following parameters. This will occur 
when an SQL statement updates a rowid, as in the statement:
<blockquote>
   [UPDATE] table SET rowid=rowid+1 WHERE ...; 
</blockquote>
</dl>