Fossil SCM

Fix to the timeline display when using all of the r=, c=, and n= query parameters. Also: improvements to the (undocumented and unsupported) "showsql" query parameter used for debugging.

drh 2015-02-23 12:52 trunk
Commit 4005828845cd4017ba1c3e07d779ec7ab82277a0
1 file changed +18 -13
+18 -13
--- src/timeline.c
+++ src/timeline.c
@@ -1198,10 +1198,11 @@
11981198
}
11991199
if( tagid>0
12001200
&& db_int(0,"SELECT count(*) FROM tagxref WHERE tagid=%d",tagid)<=nEntry
12011201
){
12021202
nEntry = -1;
1203
+ zCirca = 0;
12031204
}
12041205
if( zType[0]=='a' ){
12051206
tmFlags |= TIMELINE_BRIEF | TIMELINE_GRAPH;
12061207
}else{
12071208
tmFlags |= TIMELINE_GRAPH;
@@ -1250,11 +1251,11 @@
12501251
tmFlags |= TIMELINE_FCHANGES;
12511252
}
12521253
if( (tmFlags & TIMELINE_UNHIDE)==0 ){
12531254
blob_append_sql(&sql,
12541255
" AND NOT EXISTS(SELECT 1 FROM tagxref"
1255
- " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)",
1256
+ " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n",
12561257
TAG_HIDDEN
12571258
);
12581259
}
12591260
if( ((from_rid && to_rid) || (me_rid && you_rid)) && g.perm.Read ){
12601261
/* If from= and to= are present, display all nodes on a path connecting
@@ -1375,12 +1376,12 @@
13751376
blob_append_sql(&sql, " AND %Q=strftime('%%Y-%%W',event.mtime) ",
13761377
zYearWeek);
13771378
}
13781379
if( tagid>0 ){
13791380
blob_append_sql(&sql,
1380
- "AND (EXISTS(SELECT 1 FROM tagxref"
1381
- " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)", tagid);
1381
+ " AND (EXISTS(SELECT 1 FROM tagxref"
1382
+ " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n", tagid);
13821383
13831384
if( zBrName ){
13841385
/* The next two blob_appendf() calls add SQL that causes checkins that
13851386
** are not part of the branch which are parents or children of the
13861387
** branch to be included in the report. This related check-ins are
@@ -1387,30 +1388,30 @@
13871388
** useful in helping to visualize what has happened on a quiescent
13881389
** branch that is infrequently merged with a much more activate branch.
13891390
*/
13901391
blob_append_sql(&sql,
13911392
" OR EXISTS(SELECT 1 FROM plink CROSS JOIN tagxref ON rid=cid"
1392
- " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)",
1393
+ " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)\n",
13931394
tagid
13941395
);
13951396
if( (tmFlags & TIMELINE_UNHIDE)==0 ){
13961397
blob_append_sql(&sql,
13971398
" AND NOT EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid"
1398
- " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)",
1399
+ " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)\n",
13991400
TAG_HIDDEN
14001401
);
14011402
}
14021403
if( P("mionly")==0 ){
14031404
blob_append_sql(&sql,
14041405
" OR EXISTS(SELECT 1 FROM plink CROSS JOIN tagxref ON rid=pid"
1405
- " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)",
1406
+ " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)\n",
14061407
tagid
14071408
);
14081409
if( (tmFlags & TIMELINE_UNHIDE)==0 ){
14091410
blob_append_sql(&sql,
14101411
" AND NOT EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid"
1411
- " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)",
1412
+ " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)\n",
14121413
TAG_HIDDEN
14131414
);
14141415
}
14151416
}
14161417
}
@@ -1496,20 +1497,24 @@
14961497
url_add_parameter(&url, "c", 0);
14971498
}else if( rCirca>0.0 ){
14981499
Blob sql2;
14991500
blob_init(&sql2, blob_sql_text(&sql), -1);
15001501
blob_append_sql(&sql2,
1501
- " AND event.mtime<=%f ORDER BY event.mtime DESC LIMIT %d",
1502
- rCirca, (nEntry+1)/2
1503
- );
1502
+ " AND event.mtime<=%f ORDER BY event.mtime DESC", rCirca);
1503
+ if( nEntry>0 ){
1504
+ blob_append_sql(&sql2," LIMIT %d", (nEntry+1)/2);
1505
+ nEntry -= (nEntry+1)/2;
1506
+ }
1507
+ if( PB("showsql") ){
1508
+ @ <pre>%h(blob_sql_text(&sql2))</pre>
1509
+ }
15041510
db_multi_exec("%s", blob_sql_text(&sql2));
15051511
blob_reset(&sql2);
15061512
blob_append_sql(&sql,
15071513
" AND event.mtime>=%f ORDER BY event.mtime ASC",
15081514
rCirca
15091515
);
1510
- nEntry -= (nEntry+1)/2;
15111516
if( zMark==0 ) zMark = zCirca;
15121517
}else{
15131518
blob_append_sql(&sql, " ORDER BY event.mtime DESC");
15141519
}
15151520
if( nEntry>0 ) blob_append_sql(&sql, " LIMIT %d", nEntry);
@@ -1583,11 +1588,11 @@
15831588
style_submenu_binary("v","With Files","Without Files",
15841589
zType[0]!='a' && zType[0]!='c');
15851590
}
15861591
}
15871592
if( PB("showsql") ){
1588
- @ <blockquote>%h(blob_sql_text(&sql))</blockquote>
1593
+ @ <pre>%h(blob_sql_text(&sql))</pre>
15891594
}
15901595
if( search_restrict(SRCH_CKIN)!=0 ){
15911596
style_submenu_element("Search", 0, "%R/search?y=c");
15921597
}
15931598
if( PB("showid") ) tmFlags |= TIMELINE_SHOWRID;
@@ -1950,11 +1955,11 @@
19501955
}
19511956
19521957
if( mode==0 ) mode = 1;
19531958
blob_zero(&sql);
19541959
blob_append(&sql, timeline_query_for_tty(), -1);
1955
- blob_append_sql(&sql, " AND event.mtime %s %s",
1960
+ blob_append_sql(&sql, "\n AND event.mtime %s %s",
19561961
(mode==1 || mode==4) ? "<=" : ">=",
19571962
zDate /*safe-for-%s*/
19581963
);
19591964
19601965
if( mode==3 || mode==4 ){
19611966
--- src/timeline.c
+++ src/timeline.c
@@ -1198,10 +1198,11 @@
1198 }
1199 if( tagid>0
1200 && db_int(0,"SELECT count(*) FROM tagxref WHERE tagid=%d",tagid)<=nEntry
1201 ){
1202 nEntry = -1;
 
1203 }
1204 if( zType[0]=='a' ){
1205 tmFlags |= TIMELINE_BRIEF | TIMELINE_GRAPH;
1206 }else{
1207 tmFlags |= TIMELINE_GRAPH;
@@ -1250,11 +1251,11 @@
1250 tmFlags |= TIMELINE_FCHANGES;
1251 }
1252 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1253 blob_append_sql(&sql,
1254 " AND NOT EXISTS(SELECT 1 FROM tagxref"
1255 " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)",
1256 TAG_HIDDEN
1257 );
1258 }
1259 if( ((from_rid && to_rid) || (me_rid && you_rid)) && g.perm.Read ){
1260 /* If from= and to= are present, display all nodes on a path connecting
@@ -1375,12 +1376,12 @@
1375 blob_append_sql(&sql, " AND %Q=strftime('%%Y-%%W',event.mtime) ",
1376 zYearWeek);
1377 }
1378 if( tagid>0 ){
1379 blob_append_sql(&sql,
1380 "AND (EXISTS(SELECT 1 FROM tagxref"
1381 " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)", tagid);
1382
1383 if( zBrName ){
1384 /* The next two blob_appendf() calls add SQL that causes checkins that
1385 ** are not part of the branch which are parents or children of the
1386 ** branch to be included in the report. This related check-ins are
@@ -1387,30 +1388,30 @@
1387 ** useful in helping to visualize what has happened on a quiescent
1388 ** branch that is infrequently merged with a much more activate branch.
1389 */
1390 blob_append_sql(&sql,
1391 " OR EXISTS(SELECT 1 FROM plink CROSS JOIN tagxref ON rid=cid"
1392 " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)",
1393 tagid
1394 );
1395 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1396 blob_append_sql(&sql,
1397 " AND NOT EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid"
1398 " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)",
1399 TAG_HIDDEN
1400 );
1401 }
1402 if( P("mionly")==0 ){
1403 blob_append_sql(&sql,
1404 " OR EXISTS(SELECT 1 FROM plink CROSS JOIN tagxref ON rid=pid"
1405 " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)",
1406 tagid
1407 );
1408 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1409 blob_append_sql(&sql,
1410 " AND NOT EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid"
1411 " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)",
1412 TAG_HIDDEN
1413 );
1414 }
1415 }
1416 }
@@ -1496,20 +1497,24 @@
1496 url_add_parameter(&url, "c", 0);
1497 }else if( rCirca>0.0 ){
1498 Blob sql2;
1499 blob_init(&sql2, blob_sql_text(&sql), -1);
1500 blob_append_sql(&sql2,
1501 " AND event.mtime<=%f ORDER BY event.mtime DESC LIMIT %d",
1502 rCirca, (nEntry+1)/2
1503 );
 
 
 
 
 
1504 db_multi_exec("%s", blob_sql_text(&sql2));
1505 blob_reset(&sql2);
1506 blob_append_sql(&sql,
1507 " AND event.mtime>=%f ORDER BY event.mtime ASC",
1508 rCirca
1509 );
1510 nEntry -= (nEntry+1)/2;
1511 if( zMark==0 ) zMark = zCirca;
1512 }else{
1513 blob_append_sql(&sql, " ORDER BY event.mtime DESC");
1514 }
1515 if( nEntry>0 ) blob_append_sql(&sql, " LIMIT %d", nEntry);
@@ -1583,11 +1588,11 @@
1583 style_submenu_binary("v","With Files","Without Files",
1584 zType[0]!='a' && zType[0]!='c');
1585 }
1586 }
1587 if( PB("showsql") ){
1588 @ <blockquote>%h(blob_sql_text(&sql))</blockquote>
1589 }
1590 if( search_restrict(SRCH_CKIN)!=0 ){
1591 style_submenu_element("Search", 0, "%R/search?y=c");
1592 }
1593 if( PB("showid") ) tmFlags |= TIMELINE_SHOWRID;
@@ -1950,11 +1955,11 @@
1950 }
1951
1952 if( mode==0 ) mode = 1;
1953 blob_zero(&sql);
1954 blob_append(&sql, timeline_query_for_tty(), -1);
1955 blob_append_sql(&sql, " AND event.mtime %s %s",
1956 (mode==1 || mode==4) ? "<=" : ">=",
1957 zDate /*safe-for-%s*/
1958 );
1959
1960 if( mode==3 || mode==4 ){
1961
--- src/timeline.c
+++ src/timeline.c
@@ -1198,10 +1198,11 @@
1198 }
1199 if( tagid>0
1200 && db_int(0,"SELECT count(*) FROM tagxref WHERE tagid=%d",tagid)<=nEntry
1201 ){
1202 nEntry = -1;
1203 zCirca = 0;
1204 }
1205 if( zType[0]=='a' ){
1206 tmFlags |= TIMELINE_BRIEF | TIMELINE_GRAPH;
1207 }else{
1208 tmFlags |= TIMELINE_GRAPH;
@@ -1250,11 +1251,11 @@
1251 tmFlags |= TIMELINE_FCHANGES;
1252 }
1253 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1254 blob_append_sql(&sql,
1255 " AND NOT EXISTS(SELECT 1 FROM tagxref"
1256 " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n",
1257 TAG_HIDDEN
1258 );
1259 }
1260 if( ((from_rid && to_rid) || (me_rid && you_rid)) && g.perm.Read ){
1261 /* If from= and to= are present, display all nodes on a path connecting
@@ -1375,12 +1376,12 @@
1376 blob_append_sql(&sql, " AND %Q=strftime('%%Y-%%W',event.mtime) ",
1377 zYearWeek);
1378 }
1379 if( tagid>0 ){
1380 blob_append_sql(&sql,
1381 " AND (EXISTS(SELECT 1 FROM tagxref"
1382 " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n", tagid);
1383
1384 if( zBrName ){
1385 /* The next two blob_appendf() calls add SQL that causes checkins that
1386 ** are not part of the branch which are parents or children of the
1387 ** branch to be included in the report. This related check-ins are
@@ -1387,30 +1388,30 @@
1388 ** useful in helping to visualize what has happened on a quiescent
1389 ** branch that is infrequently merged with a much more activate branch.
1390 */
1391 blob_append_sql(&sql,
1392 " OR EXISTS(SELECT 1 FROM plink CROSS JOIN tagxref ON rid=cid"
1393 " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)\n",
1394 tagid
1395 );
1396 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1397 blob_append_sql(&sql,
1398 " AND NOT EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid"
1399 " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)\n",
1400 TAG_HIDDEN
1401 );
1402 }
1403 if( P("mionly")==0 ){
1404 blob_append_sql(&sql,
1405 " OR EXISTS(SELECT 1 FROM plink CROSS JOIN tagxref ON rid=pid"
1406 " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)\n",
1407 tagid
1408 );
1409 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1410 blob_append_sql(&sql,
1411 " AND NOT EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid"
1412 " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)\n",
1413 TAG_HIDDEN
1414 );
1415 }
1416 }
1417 }
@@ -1496,20 +1497,24 @@
1497 url_add_parameter(&url, "c", 0);
1498 }else if( rCirca>0.0 ){
1499 Blob sql2;
1500 blob_init(&sql2, blob_sql_text(&sql), -1);
1501 blob_append_sql(&sql2,
1502 " AND event.mtime<=%f ORDER BY event.mtime DESC", rCirca);
1503 if( nEntry>0 ){
1504 blob_append_sql(&sql2," LIMIT %d", (nEntry+1)/2);
1505 nEntry -= (nEntry+1)/2;
1506 }
1507 if( PB("showsql") ){
1508 @ <pre>%h(blob_sql_text(&sql2))</pre>
1509 }
1510 db_multi_exec("%s", blob_sql_text(&sql2));
1511 blob_reset(&sql2);
1512 blob_append_sql(&sql,
1513 " AND event.mtime>=%f ORDER BY event.mtime ASC",
1514 rCirca
1515 );
 
1516 if( zMark==0 ) zMark = zCirca;
1517 }else{
1518 blob_append_sql(&sql, " ORDER BY event.mtime DESC");
1519 }
1520 if( nEntry>0 ) blob_append_sql(&sql, " LIMIT %d", nEntry);
@@ -1583,11 +1588,11 @@
1588 style_submenu_binary("v","With Files","Without Files",
1589 zType[0]!='a' && zType[0]!='c');
1590 }
1591 }
1592 if( PB("showsql") ){
1593 @ <pre>%h(blob_sql_text(&sql))</pre>
1594 }
1595 if( search_restrict(SRCH_CKIN)!=0 ){
1596 style_submenu_element("Search", 0, "%R/search?y=c");
1597 }
1598 if( PB("showid") ) tmFlags |= TIMELINE_SHOWRID;
@@ -1950,11 +1955,11 @@
1955 }
1956
1957 if( mode==0 ) mode = 1;
1958 blob_zero(&sql);
1959 blob_append(&sql, timeline_query_for_tty(), -1);
1960 blob_append_sql(&sql, "\n AND event.mtime %s %s",
1961 (mode==1 || mode==4) ? "<=" : ">=",
1962 zDate /*safe-for-%s*/
1963 );
1964
1965 if( mode==3 || mode==4 ){
1966

Keyboard Shortcuts

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