aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2017-11-10 15:42:21 +0000
committerdan <dan@noemail.net>2017-11-10 15:42:21 +0000
commit26caf5bef16bf48e2ea026104807b23f83c95dab (patch)
tree12267d028682aff929144822b9e09036903097a9 /src
parentb3c16b899b323c16ef84994359143746a0af2320 (diff)
downloadsqlite-26caf5bef16bf48e2ea026104807b23f83c95dab.tar.gz
sqlite-26caf5bef16bf48e2ea026104807b23f83c95dab.zip
Fix a problem with (DELETE...LIMIT) statements against WITHOUT ROWID tables
with a single column PK. FossilOrigin-Name: 35477a3dcceadf5dade8e036d5a2ce91b9ca83c4b85d309db233bdbcf538b1cc
Diffstat (limited to 'src')
-rw-r--r--src/delete.c4
-rw-r--r--src/parse.y3
2 files changed, 3 insertions, 4 deletions
diff --git a/src/delete.c b/src/delete.c
index 509fd8af8..34c5feb8b 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -181,7 +181,9 @@ Expr *sqlite3LimitWhere(
}else{
Index *pPk = sqlite3PrimaryKeyIndex(pTab);
if( pPk->nKeyCol==1 ){
- pLhs = sqlite3Expr(db, TK_ID, pTab->aCol[pPk->aiColumn[0]].zName);
+ const char *zName = pTab->aCol[pPk->aiColumn[0]].zName;
+ pLhs = sqlite3Expr(db, TK_ID, zName);
+ pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db, TK_ID, zName));
}else{
int i;
for(i=0; i<pPk->nKeyCol; i++){
diff --git a/src/parse.y b/src/parse.y
index 928e53dd8..2a536b0a8 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -778,9 +778,6 @@ cmd ::= with(C) UPDATE orconf(R) fullname(X) indexed_opt(I) SET setlist(Y)
sqlite3WithPush(pParse, C, 1);
sqlite3SrcListIndexedBy(pParse, X, &I);
sqlite3ExprListCheckLength(pParse,Y,"set list");
-#if 0
- W = sqlite3LimitWhere(pParse, X, W, O, L.pLimit, L.pOffset, "UPDATE");
-#endif
sqlite3UpdateLimit(pParse,X,Y,W,R,O,L.pLimit,L.pOffset);
}
%endif