<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/src/schema.sql, branch webstat-0.4</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>https://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.4</id>
<link rel='self' href='https://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.4'/>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-04-17T23:53:11Z</updated>
<entry>
<title>Swap int for integer in schema</title>
<updated>2026-04-17T23:53:11Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-04-17T23:53:11Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=fa6074eaf52be4254c17b74f20193aa96c940df8'/>
<id>urn:sha1:fa6074eaf52be4254c17b74f20193aa96c940df8</id>
<content type='text'>
Plays better with apgdiff
</content>
</entry>
<entry>
<title>Replace use of crc32 for entity id</title>
<updated>2026-04-15T11:05:20Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-04-15T11:03:21Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=5b2166496e5f3ff2c4276e0b5b28f109c70673d5'/>
<id>urn:sha1:5b2166496e5f3ff2c4276e0b5b28f109c70673d5</id>
<content type='text'>
Entity value is MD5 hashed same as DB unique key, but the id itself is
now taken from the DB primary key which is sequence generated.
</content>
</entry>
<entry>
<title>Replace unique constraint on entity value with index on hash</title>
<updated>2026-03-18T13:19:42Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-18T13:19:42Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=076679d9f2b761a9e4892e399f1a16f141d85986'/>
<id>urn:sha1:076679d9f2b761a9e4892e399f1a16f141d85986</id>
<content type='text'>
UNIQUE CONSTRAINT is limited to 2704 bytes, which prevents inserting
large values. Here we swap to a unique index on the MD5 hash of the
value. This should more than suffice given we already map to a 32bit for
the id and the index size is much much smaller.
</content>
</entry>
<entry>
<title>Fix typo in access_log_view definition</title>
<updated>2026-03-18T10:25:09Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-18T10:25:09Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=e247e81f649297784dc81e83b2e6d33d30f9f3ee'/>
<id>urn:sha1:e247e81f649297784dc81e83b2e6d33d30f9f3ee</id>
<content type='text'>
Replaces accidentally duplicated user_agent for correct content_type.
</content>
</entry>
<entry>
<title>Process new field, content-type, in input stream</title>
<updated>2026-01-18T01:36:06Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-01-18T01:36:06Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=04acfa679fd846ac829ded5562093b3766c85154'/>
<id>urn:sha1:04acfa679fd846ac829ded5562093b3766c85154</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Attempt to save uninsertable log lines to the entities table</title>
<updated>2026-01-17T20:33:37Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-01-17T19:40:47Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=34051da2f27ffa40d0b6d20ae891a497fe73bfe5'/>
<id>urn:sha1:34051da2f27ffa40d0b6d20ae891a497fe73bfe5</id>
<content type='text'>
If that fails, we still park them as before, such as when the DB is
unavailable. Those which are saved as entities require investigation why
they couldn't be saved, much like UnparsableLines.
</content>
</entry>
<entry>
<title>pg_format schema.sql and sql/*.sql</title>
<updated>2026-01-17T20:33:37Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-01-17T18:33:56Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=9f1dfacb0f236da5f0413ac20e3376388df7d798'/>
<id>urn:sha1:9f1dfacb0f236da5f0413ac20e3376388df7d798</id>
<content type='text'>
No changes.
</content>
</entry>
<entry>
<title>Add access_log_view</title>
<updated>2025-10-15T22:21:50Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-10-15T22:21:50Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=b4b57337e69f1ee0b816369ed6b7d657ee11da8c'/>
<id>urn:sha1:b4b57337e69f1ee0b816369ed6b7d657ee11da8c</id>
<content type='text'>
A pre-joined with entities view showing all the original data along with
ids; ideal for human readable stuff.
</content>
</entry>
<entry>
<title>Add PROPFIND to http_verb list</title>
<updated>2025-10-09T13:21:30Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2025-10-09T13:21:30Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=bc05a99df780313ba3cc298323e98beaa5b0ba54'/>
<id>urn:sha1:bc05a99df780313ba3cc298323e98beaa5b0ba54</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Switch to PostgreSQL's oid type for entity ids</title>
<updated>2025-09-29T23:51:54Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-29T23:51:54Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=edfaf671d016f675a3a3b87d58d615a92e84148b'/>
<id>urn:sha1:edfaf671d016f675a3a3b87d58d615a92e84148b</id>
<content type='text'>
oid is an "unsigned 4 byte integer", which matches our crc32 approach
perfectly, and is half the storage cost of bigint.
</content>
</entry>
</feed>
