Fossil SCM

Experimental after_dephantomize() enhancement checks out, so pull it into the trunk.

drh 2011-01-26 20:24 trunk merge
Commit 62d114ee12c7f405479a15d35fa61f2761676419
1 file changed +8 -2
+8 -2
--- src/content.c
+++ src/content.c
@@ -385,13 +385,19 @@
385385
if( nChildUsed ){
386386
db_multi_exec("DELETE FROM orphan WHERE baseline=%d", rid);
387387
}
388388
389389
/* Recursively dephantomize all artifacts that are derived by
390
- ** delta from artifact rid */
390
+ ** delta from artifact rid and which have not already been
391
+ ** cross-linked. */
391392
nChildUsed = 0;
392
- db_prepare(&q, "SELECT rid FROM delta WHERE srcid=%d", rid);
393
+ db_prepare(&q,
394
+ "SELECT rid FROM delta"
395
+ " WHERE srcid=%d"
396
+ " AND NOT EXISTS(SELECT 1 FROM mlink WHERE mid=delta.rid)",
397
+ rid
398
+ );
393399
while( db_step(&q)==SQLITE_ROW ){
394400
int child = db_column_int(&q, 0);
395401
if( nChildUsed>=nChildAlloc ){
396402
nChildAlloc = nChildAlloc*2 + 10;
397403
aChild = fossil_realloc(aChild, nChildAlloc*sizeof(aChild));
398404
--- src/content.c
+++ src/content.c
@@ -385,13 +385,19 @@
385 if( nChildUsed ){
386 db_multi_exec("DELETE FROM orphan WHERE baseline=%d", rid);
387 }
388
389 /* Recursively dephantomize all artifacts that are derived by
390 ** delta from artifact rid */
 
391 nChildUsed = 0;
392 db_prepare(&q, "SELECT rid FROM delta WHERE srcid=%d", rid);
 
 
 
 
 
393 while( db_step(&q)==SQLITE_ROW ){
394 int child = db_column_int(&q, 0);
395 if( nChildUsed>=nChildAlloc ){
396 nChildAlloc = nChildAlloc*2 + 10;
397 aChild = fossil_realloc(aChild, nChildAlloc*sizeof(aChild));
398
--- src/content.c
+++ src/content.c
@@ -385,13 +385,19 @@
385 if( nChildUsed ){
386 db_multi_exec("DELETE FROM orphan WHERE baseline=%d", rid);
387 }
388
389 /* Recursively dephantomize all artifacts that are derived by
390 ** delta from artifact rid and which have not already been
391 ** cross-linked. */
392 nChildUsed = 0;
393 db_prepare(&q,
394 "SELECT rid FROM delta"
395 " WHERE srcid=%d"
396 " AND NOT EXISTS(SELECT 1 FROM mlink WHERE mid=delta.rid)",
397 rid
398 );
399 while( db_step(&q)==SQLITE_ROW ){
400 int child = db_column_int(&q, 0);
401 if( nChildUsed>=nChildAlloc ){
402 nChildAlloc = nChildAlloc*2 + 10;
403 aChild = fossil_realloc(aChild, nChildAlloc*sizeof(aChild));
404

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button