aboutsummaryrefslogtreecommitdiff
path: root/src/delete.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2017-08-10 15:19:39 +0000
committerdrh <drh@noemail.net>2017-08-10 15:19:39 +0000
commite3740f272bf8fc7439d64e211c3093ff55a8c21c (patch)
tree74afd5b05b99cdc8f7d784fc277fe453e471c360 /src/delete.c
parent6fa9375c019c66b237a33ede0dfafedde1d2f3ba (diff)
downloadsqlite-e3740f272bf8fc7439d64e211c3093ff55a8c21c.tar.gz
sqlite-e3740f272bf8fc7439d64e211c3093ff55a8c21c.zip
Experimental changes that allow a WITHOUT ROWID virtual table to be writable
as long as it has only a single-column PRIMARY KEY. FossilOrigin-Name: ab9ee4c1e64c09c7130e385a23d043d78bad95dff5509c7adc9b992350a4a537
Diffstat (limited to 'src/delete.c')
-rw-r--r--src/delete.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/delete.c b/src/delete.c
index bf320fe7e..cd78f68f4 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -502,7 +502,11 @@ void sqlite3DeleteFrom(
}
}else if( pPk ){
addrLoop = sqlite3VdbeAddOp1(v, OP_Rewind, iEphCur); VdbeCoverage(v);
- sqlite3VdbeAddOp2(v, OP_RowData, iEphCur, iKey);
+ if( IsVirtual(pTab) ){
+ sqlite3VdbeAddOp3(v, OP_Column, iEphCur, 0, iKey);
+ }else{
+ sqlite3VdbeAddOp2(v, OP_RowData, iEphCur, iKey);
+ }
assert( nKey==0 ); /* OP_Found will use a composite key */
}else{
addrLoop = sqlite3VdbeAddOp3(v, OP_RowSetRead, iRowSet, 0, iKey);