diff --git a/VERSION b/VERSION index c5106e6..7636e75 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.4 +4.0.5 diff --git a/play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql b/play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql new file mode 100644 index 0000000..291e61b --- /dev/null +++ b/play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql @@ -0,0 +1,3 @@ +-- Rollback migration: Remove covering index for reward_configs + +DROP INDEX IF EXISTS idx_reward_configs_task_id_covering; diff --git a/play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql b/play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql new file mode 100644 index 0000000..a22f5dc --- /dev/null +++ b/play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql @@ -0,0 +1,14 @@ +-- Migration: Add covering index for reward_configs to optimize subtask rewards queries +-- Date: 2026-01-26 +-- +-- This migration adds a covering index to optimize queries that load rewards for multiple subtasks. +-- The index includes all columns needed for the query, allowing PostgreSQL to perform +-- index-only scans without accessing the main table. +-- +-- Covering index for reward_configs query +-- Includes all columns needed for rewards selection to avoid table lookups +CREATE INDEX IF NOT EXISTS idx_reward_configs_task_id_covering +ON reward_configs(task_id, position) +INCLUDE (id, project_id, value, use_progression); + +COMMENT ON INDEX idx_reward_configs_task_id_covering IS 'Covering index for rewards query - includes all selected columns to avoid table lookups. Enables index-only scans for better performance when loading rewards for multiple tasks.'; diff --git a/play-life-web/package.json b/play-life-web/package.json index 2409ec6..861be35 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "4.0.4", + "version": "4.0.5", "type": "module", "scripts": { "dev": "vite",