aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2017-11-09 03:55:09 +0000
committerdrh <drh@noemail.net>2017-11-09 03:55:09 +0000
commit2fba394c97f9d9cf6b6c447dd5c2d01651593c73 (patch)
treee853233f4278cbb4ed8b8965e91e5e989074cf80 /src/resolve.c
parent3e846cb81ff05c85c5a8e1a982a11f6b6d5d7764 (diff)
downloadsqlite-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.c6
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;