Go from per document to per vault version ids to allow "since" queries

This commit is contained in:
Andras Schmelczer 2024-12-14 17:02:44 +00:00
parent fe8d236948
commit 70471f5142
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
6 changed files with 127 additions and 53 deletions

View file

@ -1,25 +1,24 @@
CREATE TABLE IF NOT EXISTS documents (
vault_id TEXT NOT NULL,
vault_update_id INTEGER NOT NULL,
relative_path TEXT NOT NULL,
version_id INTEGER NOT NULL,
created_date TIMESTAMP NOT NULL,
updated_date TIMESTAMP NOT NULL,
content BLOB NOT NULL,
is_deleted BOOLEAN NOT NULL,
PRIMARY KEY (vault_id, relative_path, version_id)
PRIMARY KEY (vault_id, vault_update_id)
);
CREATE VIEW IF NOT EXISTS latest_document_versions AS
SELECT d.*
FROM documents d
INNER JOIN (
SELECT vault_id, relative_path, MAX(version_id) AS max_version_id
SELECT vault_id, MAX(vault_update_id) AS max_version_id
FROM documents
GROUP BY vault_id, relative_path
) max_versions
ON d.vault_id = max_versions.vault_id
AND d.relative_path = max_versions.relative_path
AND d.version_id = max_versions.max_version_id;
AND d.vault_update_id = max_versions.max_version_id;
CREATE INDEX IF NOT EXISTS idx_documents_vault_doc
ON documents (vault_id, relative_path);