Spaces:
Sleeping
Sleeping
Download migrations/v5_state_upgrade.sql from Cuong2004/math-solver: direct link, hf CLI and curl.
- Browser
- Download file 1.69 kB
-
https://huggingface.co/spaces/Cuong2004/math-solver/resolve/main/migrations/v5_state_upgrade.sql
- Command line
-
hf download hf://spaces/Cuong2004/math-solver/migrations/v5_state_upgrade.sql
-
curl -L -o v5_state_upgrade.sql https://huggingface.co/spaces/Cuong2004/math-solver/resolve/main/migrations/v5_state_upgrade.sql
1.69 kB
| -- ============================================================ | |
| -- MATHSOLVER v5.0 - State Architecture Upgrade Migration | |
| -- ============================================================ | |
| -- 1. Auto-update `sessions.updated_at` function | |
| CREATE OR REPLACE FUNCTION public.update_session_timestamp() | |
| RETURNS TRIGGER AS $$ | |
| BEGIN | |
| UPDATE public.sessions | |
| SET updated_at = NOW() | |
| WHERE id = NEW.session_id; | |
| RETURN NEW; | |
| END; | |
| $$ LANGUAGE plpgsql SECURITY DEFINER; | |
| -- 2. Triggers for session timestamp updates | |
| DROP TRIGGER IF EXISTS trg_update_session_on_message ON public.messages; | |
| CREATE TRIGGER trg_update_session_on_message | |
| AFTER INSERT ON public.messages | |
| FOR EACH ROW | |
| EXECUTE FUNCTION public.update_session_timestamp(); | |
| DROP TRIGGER IF EXISTS trg_update_session_on_job ON public.jobs; | |
| CREATE TRIGGER trg_update_session_on_job | |
| AFTER INSERT OR UPDATE ON public.jobs | |
| FOR EACH ROW | |
| EXECUTE FUNCTION public.update_session_timestamp(); | |
| DROP TRIGGER IF EXISTS trg_update_session_on_asset ON public.session_assets; | |
| CREATE TRIGGER trg_update_session_on_asset | |
| AFTER INSERT ON public.session_assets | |
| FOR EACH ROW | |
| EXECUTE FUNCTION public.update_session_timestamp(); | |
| -- 3. Idempotency Support: client_message_id on messages | |
| ALTER TABLE public.messages | |
| ADD COLUMN IF NOT EXISTS client_message_id UUID; | |
| CREATE UNIQUE INDEX IF NOT EXISTS idx_messages_session_client_id | |
| ON public.messages(session_id, client_message_id) | |
| WHERE client_message_id IS NOT NULL; | |
| -- 4. Atomic Asset Versioning: Unique version per session and asset type | |
| CREATE UNIQUE INDEX IF NOT EXISTS idx_session_assets_unique_version | |
| ON public.session_assets(session_id, asset_type, version); | |