adjust character death indexes for common queries

This commit is contained in:
fusion32 2025-10-27 21:44:13 -03:00
parent 27a0df43b3
commit 6aa13394a1
4 changed files with 43 additions and 4 deletions

View File

@ -109,8 +109,9 @@ CREATE TABLE CharacterDeaths (
Unjustified BOOLEAN NOT NULL,
Timestamp TIMESTAMPTZ NOT NULL
);
CREATE INDEX CharacterDeathsCharacterIndex ON CharacterDeaths(CharacterID, Level);
CREATE INDEX CharacterDeathsOffenderIndex ON CharacterDeaths(OffenderID, Unjustified);
CREATE INDEX CharacterDeathsCharacterIndex ON CharacterDeaths(CharacterID, Timestamp);
CREATE INDEX CharacterDeathsOffenderIndex ON CharacterDeaths(OffenderID, Timestamp);
CREATE INDEX CharacterDeathsTimeIndex ON CharacterDeaths(Timestamp);
CREATE TABLE Buddies (
WorldID INTEGER NOT NULL,

View File

@ -0,0 +1,20 @@
-- NOTE(fusion): This file contains index adjustments for the `CharacterDeaths`
-- table. It is not strictly necessary as there are no modified tables but should
-- help with queries such as the most recent deaths/kills from a specific character
-- or overall.
-- It's inside a transaction to avoid errors from leaving the database in some
-- partial state. The changes are already present in the latest `schema.sql`, so
-- trying to apply them on a newly created database will result in errors.
--==============================================================================
BEGIN;
DROP INDEX CharacterDeathsCharacterIndex;
DROP INDEX CharacterDeathsOffenderIndex;
CREATE INDEX CharacterDeathsCharacterIndex ON CharacterDeaths(CharacterID, Timestamp);
CREATE INDEX CharacterDeathsOffenderIndex ON CharacterDeaths(OffenderID, Timestamp);
CREATE INDEX CharacterDeathsTimeIndex ON CharacterDeaths(Timestamp);
COMMIT;

View File

@ -94,8 +94,9 @@ CREATE TABLE CharacterDeaths (
Unjustified INTEGER NOT NULL,
Timestamp INTEGER NOT NULL
);
CREATE INDEX CharacterDeathsCharacterIndex ON CharacterDeaths(CharacterID, Level);
CREATE INDEX CharacterDeathsOffenderIndex ON CharacterDeaths(OffenderID, Unjustified);
CREATE INDEX CharacterDeathsCharacterIndex ON CharacterDeaths(CharacterID, Timestamp);
CREATE INDEX CharacterDeathsOffenderIndex ON CharacterDeaths(OffenderID, Timestamp);
CREATE INDEX CharacterDeathsTimeIndex ON CharacterDeaths(Timestamp);
CREATE TABLE Buddies (
WorldID INTEGER NOT NULL,

View File

@ -0,0 +1,17 @@
-- NOTE(fusion): This file contains index adjustments for the `CharacterDeaths`
-- table. It is not strictly necessary as there are no modified tables but should
-- help with queries such as the most recent deaths/kills from a specific character
-- or overall.
-- It can be executed automatically as a patch if placed at `sqlite/patches`. For
-- more details see `sqlite/README.txt`. The changes are already present in the
-- latest `schema.sql`, so trying to apply them on a newly created database will
-- result in errors.
--==============================================================================
DROP INDEX CharacterDeathsCharacterIndex;
DROP INDEX CharacterDeathsOffenderIndex;
CREATE INDEX CharacterDeathsCharacterIndex ON CharacterDeaths(CharacterID, Timestamp);
CREATE INDEX CharacterDeathsOffenderIndex ON CharacterDeaths(OffenderID, Timestamp);
CREATE INDEX CharacterDeathsTimeIndex ON CharacterDeaths(Timestamp);