diff options
author | dan <dan@noemail.net> | 2017-11-10 15:42:21 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2017-11-10 15:42:21 +0000 |
commit | 26caf5bef16bf48e2ea026104807b23f83c95dab (patch) | |
tree | 12267d028682aff929144822b9e09036903097a9 /src | |
parent | b3c16b899b323c16ef84994359143746a0af2320 (diff) | |
download | sqlite-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.c | 4 | ||||
-rw-r--r-- | src/parse.y | 3 |
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 |