From edfaf671d016f675a3a3b87d58d615a92e84148b Mon Sep 17 00:00:00 2001
From: Dan Goodliffe <dan@randomdan.homeip.net>
Date: Tue, 30 Sep 2025 00:51:54 +0100
Subject: Switch to PostgreSQL's oid type for entity ids

oid is an "unsigned 4 byte integer", which matches our crc32 approach
perfectly, and is half the storage cost of bigint.
---
 src/schema.sql | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

(limited to 'src/schema.sql')

diff --git a/src/schema.sql b/src/schema.sql
index 4f3b205..602b70e 100644
--- a/src/schema.sql
+++ b/src/schema.sql
@@ -3,7 +3,7 @@ CREATE TYPE protocol AS ENUM('HTTP/1.0', 'HTTP/1.1', 'HTTP/1.2', 'HTTP/1.3', 'HT
 CREATE TYPE entity AS ENUM('host', 'virtual_host', 'path', 'query_string', 'referrer', 'user_agent', 'unparsable_line');
 
 CREATE TABLE entities (
-	id bigint NOT NULL,
+	id oid NOT NULL,
 	value text NOT NULL,
 	type entity NOT NULL,
 	detail jsonb,
@@ -14,19 +14,19 @@ CREATE TABLE entities (
 
 CREATE TABLE access_log (
 	id bigint GENERATED ALWAYS AS IDENTITY,
-	hostname bigint NOT NULL,
-	virtual_host bigint NOT NULL,
+	hostname oid NOT NULL,
+	virtual_host oid NOT NULL,
 	remoteip inet NOT NULL,
 	request_time timestamp(6) NOT NULL,
 	method http_verb NOT NULL,
 	protocol protocol NOT NULL,
-	path bigint NOT NULL,
-	query_string bigint,
+	path oid NOT NULL,
+	query_string oid,
 	status smallint NOT NULL,
 	size int NOT NULL,
 	duration interval second(6) NOT NULL,
-	referrer bigint,
-	user_agent bigint,
+	referrer oid,
+	user_agent oid,
 
 	CONSTRAINT pk_access_log PRIMARY KEY(id),
 	CONSTRAINT fk_access_log_hostname FOREIGN KEY(hostname) REFERENCES entities(id),
-- 
cgit v1.2.3

