aboutsummaryrefslogtreecommitdiff
path: root/src/trigger.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2003-03-20 01:16:58 +0000
committerdrh <drh@noemail.net>2003-03-20 01:16:58 +0000
commit113088ec685755a8abc94ddadc7d0e57dba9c914 (patch)
tree10f7dfca4a91abe824f641dafcacf41483cf476c /src/trigger.c
parent001bbcbb8fa5a55e9950445c6287a1fc0496e83e (diff)
downloadsqlite-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.c22
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;