diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-09-30 00:51:54 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-09-30 00:51:54 +0100 |
commit | edfaf671d016f675a3a3b87d58d615a92e84148b (patch) | |
tree | ca0175cac539709a33b6c81bda3611ed1b87fc4d /src/schema.sql | |
parent | 3e99d080b2a3a9b6eae85ae9e3224534744ad7b9 (diff) | |
download | webstat-edfaf671d016f675a3a3b87d58d615a92e84148b.tar.bz2 webstat-edfaf671d016f675a3a3b87d58d615a92e84148b.tar.xz webstat-edfaf671d016f675a3a3b87d58d615a92e84148b.zip |
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.
Diffstat (limited to 'src/schema.sql')
-rw-r--r-- | src/schema.sql | 14 |
1 files changed, 7 insertions, 7 deletions
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), |