CREATE TABLE IF NOT EXISTS #request.tableName# (id SERIAL PRIMARY KEY, test_data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) CREATE TABLE IF NOT EXISTS #request.logTableName# ( id SERIAL PRIMARY KEY, action TEXT NOT NULL, text TEXT, request_id TEXT, target_id INTEGER, queued_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, processed_at TIMESTAMP, status TEXT DEFAULT 'queued', error_reason TEXT ) ALTER TABLE #request.logTableName# ADD COLUMN IF NOT EXISTS error_reason TEXT UPDATE #request.logTableName# SET processed_at = NOW(), status = 'done' WHERE status = 'queued' AND action IN ('create','update') AND request_id IS NOT NULL AND EXISTS ( SELECT 1 FROM #request.tableName# WHERE test_data LIKE '%' || '[req:' || request_id || ']%' ) UPDATE #request.logTableName# SET processed_at = NOW(), status = 'done' WHERE status = 'queued' AND action = 'delete' AND target_id IS NOT NULL AND NOT EXISTS ( SELECT 1 FROM #request.tableName# WHERE id = target_id ) UPDATE #request.logTableName# SET status = 'failed', error_reason = 'target not found' WHERE status = 'queued' AND action = 'update' AND target_id IS NOT NULL AND NOT EXISTS ( SELECT 1 FROM #request.tableName# WHERE id = target_id ) INSERT INTO #request.logTableName# (action, text, request_id, target_id, queued_at, status) VALUES ( , , , , NOW(), 'queued' )