From: drh Date: Thu, 24 Sep 2009 13:48:10 +0000 (+0000) Subject: Comment enhancements. Add an ALWAYS macro in fkey.c to indicate a branch X-Git-Tag: fts3-refactor~152 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1f638ceb3497a2b9bb53814d8ddd084827a83470;p=thirdparty%2Fsqlite.git Comment enhancements. Add an ALWAYS macro in fkey.c to indicate a branch that is always taken. FossilOrigin-Name: d5b714cffffe588dd4dd10e0b82df8d99657be88 --- diff --git a/manifest b/manifest index 4b8239dff7..53c152d127 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,8 @@ -C Ensure\sforeign\skey\srelated\sprocessing\stakes\splace\swhen\srows\sare\sdeleted\sfrom\sthe\sdatabase\sby\sREPLACE\sconflict\shandling. -D 2009-09-24T11:31:22 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +C Comment\senhancements.\s\sAdd\san\sALWAYS\smacro\sin\sfkey.c\sto\sindicate\sa\sbranch\nthat\sis\salways\staken. +D 2009-09-24T13:48:11 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 4ca3f1dd6efa2075bcb27f4dc43eef749877740d F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -116,7 +119,7 @@ F src/date.c 657ff12ca0f1195b531561afacbb38b772d16638 F src/delete.c 2a3d6fc0861b2f8dbd9feb7847b390267b281c60 F src/expr.c c7f3f718bd5c392344ec8694a41c1824f30cf375 F src/fault.c dc88c821842157460750d2d61a8a8b4197d047ff -F src/fkey.c a1c293cca23700bae7924396055c8d6a14f711c2 +F src/fkey.c 3a5f73fd9ace2dac8d2065a0cad2a92ee05ba60a F src/func.c e536218d193b8d326aab91120bc4c6f28aa2b606 F src/global.c 271952d199a8cc59d4ce840b3bbbfd2f30c8ba32 F src/hash.c ebcaa921ffd9d86f7ea5ae16a0a29d1c871130a7 @@ -164,7 +167,7 @@ F src/select.c 1d0a13137532321b4364f964e46f057d271691e3 F src/shell.c d6e64471aafb81f355262533393169a70529847a F src/sqlite.h.in 5af8181f815831a8672c3834c60e6b4418448bcc F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17 -F src/sqliteInt.h f1ab717f3ea62629faca73bba9a229a96e6a6a5b +F src/sqliteInt.h 7dcffff0e91ff07e3f7752c4d8e87f9582443a20 F src/sqliteLimit.h 504a3161886d2938cbd163054ad620b8356df758 F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76 F src/table.c cc86ad3d6ad54df7c63a3e807b5783c90411a08d @@ -755,7 +758,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P ce554a393401fc2fb9b5be049ddd383070102934 -R a2849bd3f51ae39c38bb8fabcd7e0cb7 -U dan -Z 4a5ca8d718e5f8c0b333eb52343550a9 +P 3f40c142c8526c1572020bd4d945c03a72019135 +R 67c8b9d6b008d495735946c1acaf9ae4 +U drh +Z b9bffb9f7e6d6e953a0359727f3b3542 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQFKu3ieoxKgR168RlERApcbAJ9a/doqUmhrdKrDyepBEgKa65oczgCfRhFY +GJTvC+d7r7ag6Ty5TyeHfn8= +=plF3 +-----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 5bad894f08..2d1f4eb3e2 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3f40c142c8526c1572020bd4d945c03a72019135 \ No newline at end of file +d5b714cffffe588dd4dd10e0b82df8d99657be88 \ No newline at end of file diff --git a/src/fkey.c b/src/fkey.c index efd0e788ab..11bfea0c0c 100644 --- a/src/fkey.c +++ b/src/fkey.c @@ -846,11 +846,13 @@ static Trigger *fkActionTrigger( } sqlite3DbFree(db, aiCol); - /* If pTab->dbMem==0, then the table may be part of a shared-schema. - ** Disable the lookaside buffer before allocating space for the - ** trigger definition in this case. */ + /* In the current implementation, pTab->dbMem==0 for all tables except + ** for temporary tables used to describe subqueries. And temporary + ** tables do not have foreign key constraints. Hence, pTab->dbMem + ** should always be 0 there. + */ enableLookaside = db->lookaside.bEnabled; - if( pTab->dbMem==0 ){ + if( ALWAYS(pTab->dbMem==0) ){ db->lookaside.bEnabled = 0; } diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 4090c1a041..cbf7cd5820 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -1283,9 +1283,9 @@ struct Table { ** the from-table is created. The existence of the to-table is not checked. */ struct FKey { - Table *pFrom; /* The table that contains the REFERENCES clause */ + Table *pFrom; /* Table containing the REFERENCES clause (aka: Child) */ FKey *pNextFrom; /* Next foreign key in pFrom */ - char *zTo; /* Name of table that the key points to */ + char *zTo; /* Name of table that the key points to (aka: Parent) */ FKey *pNextTo; /* Next foreign key on table named zTo */ FKey *pPrevTo; /* Previous foreign key on table named zTo */ int nCol; /* Number of columns in this key */