http://fossil-scm.org/index.html/timeline?t=andygoth-branch-list

I'm merging the two branch list implementations, but the two baseline
SQL queries sometimes disagree over branches being open or closed.  For
Fossil, the problem branches are:

docker
experimental
mistake
pending-review
skin-blitz
ssl_platform_fixes

These branches have both open and closed leaves.  The branch ls command
shows them as open, as does
http://fossil-scm.org/index.html/brlist?open.  Yet
http://fossil-scm.org/index.html/brlist (no query parameters) shows them
as closed.

If I understand correctly, the baseline branch ls query defines a closed
branch as having no leaves not referenced by closed tags.  The baseline
"new" /brlist query instead checks whether "the" check-in is referenced
by a closed tag.  Which check-in?  Hard to say.  GROUP BY doesn't define
which row is used to evaluate the result expressions.  Maybe ORDER BY
has something to do with it, but I see no written guarantee of this
being the case.

My interim solution is rewriting the closed expression to be a function
of the argument to GROUP BY, not anything that varies within the group.
I suppose you could call it quasi-aggregate.  This gives consistent
results but is also vastly slower, taking 1.8 seconds instead of 33
milliseconds.

How to proceed?

The other non-aggregate result expressions need attention too.

For reference, here are the baseline queries:

http://fossil-scm.org/index.html/artifact/3325eb2da843262b57bfebdcedeb5ba6983b4801?txt=1&ln=204-242+312-336
http://fossil-scm.org/index.html/artifact/1057c3a87c455020b6f8df483ca2241e20ea20c7?txt=1&ln=148-156

-- 
Andy Goth | <andrew.m.goth/at/gmail/dot/com>

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to