<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/src, branch webstat-0.5</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.5</id>
<link rel='self' href='http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.5'/>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-05-09T23:53:20Z</updated>
<entry>
<title>Force use of std::launch::async</title>
<updated>2026-05-09T23:53:20Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-09T23:53:20Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=4739bb6a1565e69492eb0349298d86d4d0daad38'/>
<id>urn:sha1:4739bb6a1565e69492eb0349298d86d4d0daad38</id>
<content type='text'>
Deferred policy is not good enough to avoid blocking the main thread...
it would just mean in blocked later and that's not the point here.
</content>
</entry>
<entry>
<title>Be specific about values from entities table</title>
<updated>2026-05-09T23:41:56Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-09T23:41:56Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=5111c39ad9c1665347471da9fc1ae5737e37cde5'/>
<id>urn:sha1:5111c39ad9c1665347471da9fc1ae5737e37cde5</id>
<content type='text'>
Fixes compatibility with PostgreSQL 18 which fails due to ambiguity.
</content>
</entry>
<entry>
<title>Handle completed curl operations in a job</title>
<updated>2026-05-07T14:41:19Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-07T14:41:19Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=157614349f5f4c2387e0a970a4ca3ddaeaa23446'/>
<id>urn:sha1:157614349f5f4c2387e0a970a4ca3ddaeaa23446</id>
<content type='text'>
Removes the need to block the main thread from reading stdin while
performing post curl operation actions, such as updating user agent
details.
</content>
</entry>
<entry>
<title>Add support for conditional job execution</title>
<updated>2026-05-07T14:40:11Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-07T14:40:11Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=cbb2035fd33ba84fea56c7a7223c563b925e8649'/>
<id>urn:sha1:cbb2035fd33ba84fea56c7a7223c563b925e8649</id>
<content type='text'>
Performs a check before launching a job thread, rather than just having
it exit immediately.
</content>
</entry>
<entry>
<title>Only call entity insert handler if detail is null</title>
<updated>2026-05-05T11:24:11Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-05T11:24:11Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=200c3636b600ac2f997316612f1b1321112496cd'/>
<id>urn:sha1:200c3636b600ac2f997316612f1b1321112496cd</id>
<content type='text'>
Improves handling of entity inserts where the entity already exists and
already has detail; does not call the onInsert handler. This avoids
repeatedly fetching UA detail every time the UA is first seen by a
process.
</content>
</entry>
<entry>
<title>Add override of insert helper for tuples</title>
<updated>2026-05-05T11:17:58Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-05T11:17:58Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=f9b4422198281410218e371ffc3e1e4513a9ba7f'/>
<id>urn:sha1:f9b4422198281410218e371ffc3e1e4513a9ba7f</id>
<content type='text'>
When Fields... is more than a single type, returns a tuple of fields,
instead of a single value.
</content>
</entry>
<entry>
<title>Switch to std::map for existingEntities cache</title>
<updated>2026-05-05T09:00:45Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-05T09:00:45Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=b7346649926b4357b27aa81238eb34cebe39671b'/>
<id>urn:sha1:b7346649926b4357b27aa81238eb34cebe39671b</id>
<content type='text'>
Insertion cost of flat_map too high when map grows large.
</content>
</entry>
<entry>
<title>Start curl operations from any thread</title>
<updated>2026-05-02T22:13:08Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-02T22:13:08Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=af422b45c7fb406dae35dc3f811e50d92e854f58'/>
<id>urn:sha1:af422b45c7fb406dae35dc3f811e50d92e854f58</id>
<content type='text'>
Ingest is now background only, so don't limit where they're started
from. Adds some unfortunate locking around the curl maps.
</content>
</entry>
<entry>
<title>Ingest log lines in a background thread</title>
<updated>2026-05-02T17:58:21Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-05-02T17:58:21Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=4675ab65ea5e807e0d457845a0ca84edcf1262c9'/>
<id>urn:sha1:4675ab65ea5e807e0d457845a0ca84edcf1262c9</id>
<content type='text'>
This prevents halting reading input during data insertion.
</content>
</entry>
<entry>
<title>Rename jobIngestParkedLines to jobReadParkedLines</title>
<updated>2026-05-01T16:13:29Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-05-01T16:13:29Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=5c0206f48dc7f90009629d0a74bdc1dd6b4f67ea'/>
<id>urn:sha1:5c0206f48dc7f90009629d0a74bdc1dd6b4f67ea</id>
<content type='text'>
Actual ingest is performed by the main process, jobReadParkedLines just
reads the park file and adds it to the queue.
</content>
</entry>
</feed>
