diff options
author | drh <drh@noemail.net> | 2017-11-09 03:55:09 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2017-11-09 03:55:09 +0000 |
commit | 2fba394c97f9d9cf6b6c447dd5c2d01651593c73 (patch) | |
tree | e853233f4278cbb4ed8b8965e91e5e989074cf80 /src/resolve.c | |
parent | 3e846cb81ff05c85c5a8e1a982a11f6b6d5d7764 (diff) | |
download | sqlite-2fba394c97f9d9cf6b6c447dd5c2d01651593c73.tar.gz sqlite-2fba394c97f9d9cf6b6c447dd5c2d01651593c73.zip |
Disallow ORDER BY and LIMIT on UPDATE and DELETE of views and WITHOUT ROWID
tables. This is a temporary fix for ticket [d4beea1633f1b88f] until a better
solution can be found.
FossilOrigin-Name: 62fe56b59270d9d7372b1bb8a53788a40d20d0f111fe38c61dd6269848592c70
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/resolve.c b/src/resolve.c index 4a1e8284c..945654ead 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -596,7 +596,11 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ SrcList *pSrcList = pNC->pSrcList; struct SrcList_item *pItem; assert( pSrcList && pSrcList->nSrc==1 ); - pItem = pSrcList->a; + pItem = pSrcList->a; + if( !HasRowid(pItem->pTab) || pItem->pTab->pSelect!=0 ){ + sqlite3ErrorMsg(pParse, "ORDER BY and LIMIT not support for table %s", + pItem->pTab->zName); + } pExpr->op = TK_COLUMN; pExpr->pTab = pItem->pTab; pExpr->iTable = pItem->iCursor; |