aboutsummaryrefslogtreecommitdiff
path: root/src/fkey.c
diff options
context:
space:
mode:
authordrh <>2024-08-20 23:11:28 +0000
committerdrh <>2024-08-20 23:11:28 +0000
commit5648d717b15c1722ff19e7af1e55d68d1d172f1d (patch)
tree971f2c19f00ab2073124d4ecedaa7df3f0b42509 /src/fkey.c
parent781163aa9dce91608ba33af479564f83dda1bd40 (diff)
parenta0651b370706e58f9014453c5f36124ca8a738c9 (diff)
downloadsqlite-5648d717b15c1722ff19e7af1e55d68d1d172f1d.tar.gz
sqlite-5648d717b15c1722ff19e7af1e55d68d1d172f1d.zip
Refactor the SrcItem object to move fields associated with subqueries out
into a separate object named Subquery. This reduces the size of the SrcItem object by about 1/3rd and provides improved performance. FossilOrigin-Name: 484bcd75bc95491d8540c791c1c4d40d996cb465839564662e14f98739699bf1
Diffstat (limited to 'src/fkey.c')
-rw-r--r--src/fkey.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/fkey.c b/src/fkey.c
index 1efdc0bba..f1117a884 100644
--- a/src/fkey.c
+++ b/src/fkey.c
@@ -1043,9 +1043,9 @@ void sqlite3FkCheck(
pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0);
if( pSrc ){
SrcItem *pItem = pSrc->a;
- pItem->pTab = pFKey->pFrom;
+ pItem->pSTab = pFKey->pFrom;
pItem->zName = pFKey->pFrom->zName;
- pItem->pTab->nTabRef++;
+ pItem->pSTab->nTabRef++;
pItem->iCursor = pParse->nTab++;
if( regNew!=0 ){
@@ -1337,7 +1337,8 @@ static Trigger *fkActionTrigger(
if( pSrc ){
assert( pSrc->nSrc==1 );
pSrc->a[0].zName = sqlite3DbStrDup(db, zFrom);
- pSrc->a[0].zDatabase = sqlite3DbStrDup(db, db->aDb[iDb].zDbSName);
+ assert( pSrc->a[0].fg.fixedSchema==0 && pSrc->a[0].fg.isSubquery==0 );
+ pSrc->a[0].u4.zDatabase = sqlite3DbStrDup(db, db->aDb[iDb].zDbSName);
}
pSelect = sqlite3SelectNew(pParse,
sqlite3ExprListAppend(pParse, 0, pRaise),