diff options
author | drh <drh@noemail.net> | 2003-03-20 01:16:58 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2003-03-20 01:16:58 +0000 |
commit | 113088ec685755a8abc94ddadc7d0e57dba9c914 (patch) | |
tree | 10f7dfca4a91abe824f641dafcacf41483cf476c /src/trigger.c | |
parent | 001bbcbb8fa5a55e9950445c6287a1fc0496e83e (diff) | |
download | sqlite-113088ec685755a8abc94ddadc7d0e57dba9c914.tar.gz sqlite-113088ec685755a8abc94ddadc7d0e57dba9c914.zip |
Record the database name in addition to the table name for DELETE, INSERT,
and UPDATE statements. (CVS 879)
FossilOrigin-Name: a5d8fc95ee58dc3205a0bbbcadaa3b9c902a941b
Diffstat (limited to 'src/trigger.c')
-rw-r--r-- | src/trigger.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/trigger.c b/src/trigger.c index 03032fe25..76bdc77ba 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -514,24 +514,29 @@ static int codeTriggerProgram( break; } case TK_UPDATE: { + SrcList *pSrc; + pSrc = sqliteSrcListAppend(0, &pTriggerStep->target, 0); sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0); - sqliteUpdate(pParse, &pTriggerStep->target, + sqliteUpdate(pParse, pSrc, sqliteExprListDup(pTriggerStep->pExprList), sqliteExprDup(pTriggerStep->pWhere), orconf); sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0); break; } case TK_INSERT: { - sqliteInsert(pParse, &pTriggerStep->target, - sqliteExprListDup(pTriggerStep->pExprList), - sqliteSelectDup(pTriggerStep->pSelect), - sqliteIdListDup(pTriggerStep->pIdList), orconf); + SrcList *pSrc; + pSrc = sqliteSrcListAppend(0, &pTriggerStep->target, 0); + sqliteInsert(pParse, pSrc, + sqliteExprListDup(pTriggerStep->pExprList), + sqliteSelectDup(pTriggerStep->pSelect), + sqliteIdListDup(pTriggerStep->pIdList), orconf); break; } case TK_DELETE: { + SrcList *pSrc; sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0); - sqliteDeleteFrom(pParse, &pTriggerStep->target, - sqliteExprDup(pTriggerStep->pWhere)); + pSrc = sqliteSrcListAppend(0, &pTriggerStep->target, 0); + sqliteDeleteFrom(pParse, pSrc, sqliteExprDup(pTriggerStep->pWhere)); sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0); break; } @@ -611,7 +616,6 @@ int sqliteCodeRowTrigger( Expr * whenExpr; dummyTablist.nSrc = 0; - dummyTablist.a = 0; /* Push an entry on to the trigger stack */ pTriggerStack->pTrigger = pTrigger; @@ -682,7 +686,7 @@ void sqliteViewTriggers( theSelect.isDistinct = 0; theSelect.pEList = sqliteExprListAppend(0, sqliteExpr(TK_ALL, 0, 0, 0), 0); - theSelect.pSrc = sqliteSrcListAppend(0, &tblNameToken); + theSelect.pSrc = sqliteSrcListAppend(0, &tblNameToken, 0); theSelect.pWhere = pWhere; pWhere = 0; theSelect.pGroupBy = 0; theSelect.pHaving = 0; |