Fossil

Check-in [4e7d2ce1]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Remove min() from closed expression. It doesn't solve the problem, and it confuses analysis of the issue.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | andygoth-branch-list
Files: files | file ages | folders
SHA1:4e7d2ce121adf0c6583bc9e94e28d74fc14300e7
User & Date: andygoth 2016-11-18 21:45:40
Context
2016-11-19
05:59
Correct issue with open/closed tags by changing the closed column to a quasi-aggregate query, i.e. one which is a function of the argument to GROUP BY and not anything which varies within the group. This gives consistent results with the baseline branch ls command, but it introduces a MAJOR performance regression. Listing closed tags goes from 0.033s in the baseline to 1.882s, i.e. it takes 56 times longer. Leaf check-in: b302f893 user: andygoth tags: andygoth-branch-list
2016-11-18
21:45
Remove min() from closed expression. It doesn't solve the problem, and it confuses analysis of the issue. check-in: 4e7d2ce1 user: andygoth tags: andygoth-branch-list
2016-11-16
21:59
Begin work merging new_brlist_page() into brlist_page().

Annoyance: The new open/closed checkboxes don't quite work the way I want them to work. Deselecting both has the effect of selecting both. This makes sense in that if neither the open nor closed query parameters are given, everything should be displayed, rather than nothing. Yet, the user interface would be nicer if deselecting the only selected checkbox causes the other checkbox to be selected. This can't be done with straight HTML because deselecting the checkbox removes it from the query string, and the server does not know which checkbox was deselected so it cannot force the other one to become selected. As far as I know, JavaScript is required.

Bug: Non-aggregate HAVING clause expressions are evaluated on an arbitrarily chosen row within each group. This breaks closed and open filtering for the command-line branch command and the new checkboxes. But shouldn't this also break non-aggregate result expressions?

Wish: Filter on normal/hidden branches too.

Wish: If a merged-to branch is hidden, don't show it in the resolution column, instead show something else. The latest merged-to? The earliest merged-to?

Wish: Branch name filters, just like on the timeline page. check-in: a6a44820 user: andygoth tags: andygoth-branch-list

Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/branch.c.

222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
    leaf_is_closed_sql("tagxref.rid"), TAG_BRANCH);

  /* Group by name to implement the cicount column. */
  blob_append_sql(&sql, " GROUP BY name");

  /* Apply open/closed filtering if requested. */
  if( (brFlags & BRL_OPEN_CLOSED_MASK)==BRL_CLOSED_ONLY ){
    blob_append_sql(&sql, " HAVING min(closed)");
  }else if( (brFlags & BRL_OPEN_CLOSED_MASK)==BRL_OPEN_ONLY ){
    blob_append_sql(&sql, " HAVING NOT min(closed)");
  }

  /* Apply the requested sort order. */
  if( brFlags & BRL_ORDERBY_MTIME ){
    blob_append_sql(&sql, " ORDER BY mtime DESC");
  }else{
    blob_append_sql(&sql, " ORDER BY name COLLATE nocase");







|

|







222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
    leaf_is_closed_sql("tagxref.rid"), TAG_BRANCH);

  /* Group by name to implement the cicount column. */
  blob_append_sql(&sql, " GROUP BY name");

  /* Apply open/closed filtering if requested. */
  if( (brFlags & BRL_OPEN_CLOSED_MASK)==BRL_CLOSED_ONLY ){
    blob_append_sql(&sql, " HAVING closed");
  }else if( (brFlags & BRL_OPEN_CLOSED_MASK)==BRL_OPEN_ONLY ){
    blob_append_sql(&sql, " HAVING NOT closed");
  }

  /* Apply the requested sort order. */
  if( brFlags & BRL_ORDERBY_MTIME ){
    blob_append_sql(&sql, " ORDER BY mtime DESC");
  }else{
    blob_append_sql(&sql, " ORDER BY name COLLATE nocase");