diff --git a/migrations/postgres/000014_query_indexes.down.sql b/migrations/postgres/000014_query_indexes.down.sql new file mode 100644 index 0000000..24ee589 --- /dev/null +++ b/migrations/postgres/000014_query_indexes.down.sql @@ -0,0 +1,6 @@ +DROP INDEX IF EXISTS idx_rev_mat_prefix_uniq; +DROP INDEX IF EXISTS idx_rev_mat_prefix_rev_cover; +CREATE INDEX IF NOT EXISTS idx_rev_mat_prefix_rev_id + ON revision_materialized_prefix (revision_id, id); +DROP INDEX IF EXISTS idx_module_tenant_active_sort; +DROP INDEX IF EXISTS idx_rev_mat_prefix_rev_prefix; diff --git a/migrations/postgres/000014_query_indexes.up.sql b/migrations/postgres/000014_query_indexes.up.sql new file mode 100644 index 0000000..cae8b7c --- /dev/null +++ b/migrations/postgres/000014_query_indexes.up.sql @@ -0,0 +1,17 @@ +-- Query indexes: revision diff/list and module sort (H4 + M4). + +CREATE INDEX IF NOT EXISTS idx_rev_mat_prefix_rev_prefix + ON revision_materialized_prefix (revision_id, prefix); + +CREATE INDEX IF NOT EXISTS idx_module_tenant_active_sort + ON module (tenant_id, priority, name) + WHERE deleted_at IS NULL; + +-- Covering index for prefix list pagination (PostgreSQL 11+ INCLUDE). +DROP INDEX IF EXISTS idx_rev_mat_prefix_rev_id; +CREATE INDEX IF NOT EXISTS idx_rev_mat_prefix_rev_cover + ON revision_materialized_prefix (revision_id, id) + INCLUDE (prefix, community_id, source); + +CREATE UNIQUE INDEX IF NOT EXISTS idx_rev_mat_prefix_uniq + ON revision_materialized_prefix (revision_id, prefix, community_id, source); diff --git a/migrations/sqlite/000014_query_indexes.down.sql b/migrations/sqlite/000014_query_indexes.down.sql new file mode 100644 index 0000000..88dd0df --- /dev/null +++ b/migrations/sqlite/000014_query_indexes.down.sql @@ -0,0 +1,3 @@ +DROP INDEX IF EXISTS idx_rev_mat_prefix_uniq; +DROP INDEX IF EXISTS idx_module_tenant_active_sort; +DROP INDEX IF EXISTS idx_rev_mat_prefix_rev_prefix; diff --git a/migrations/sqlite/000014_query_indexes.up.sql b/migrations/sqlite/000014_query_indexes.up.sql new file mode 100644 index 0000000..5236e05 --- /dev/null +++ b/migrations/sqlite/000014_query_indexes.up.sql @@ -0,0 +1,9 @@ +CREATE INDEX IF NOT EXISTS idx_rev_mat_prefix_rev_prefix + ON revision_materialized_prefix (revision_id, prefix); + +CREATE INDEX IF NOT EXISTS idx_module_tenant_active_sort + ON module (tenant_id, priority, name) + WHERE deleted_at IS NULL; + +CREATE UNIQUE INDEX IF NOT EXISTS idx_rev_mat_prefix_uniq + ON revision_materialized_prefix (revision_id, prefix, community_id, source);