rss-reader/migrations/20240320000003_add_feed_categorization.sql

38 lines
1.1 KiB
MySQL
Raw Normal View History

2025-02-02 13:52:04 -08:00
-- Add categorization column
ALTER TABLE feeds ADD COLUMN categorization JSON NOT NULL DEFAULT '[]';
-- Add CHECK constraint
CREATE TRIGGER validate_feed_categorization
AFTER INSERT ON feeds
BEGIN
SELECT CASE
WHEN NOT (
json_valid(NEW.categorization)
AND json_type(NEW.categorization) = 'array'
AND (
SELECT COUNT(*)
FROM json_each(NEW.categorization)
WHERE json_type(value) != 'text'
) = 0
)
THEN RAISE(ROLLBACK, 'categorization must be an array of strings')
END;
END;
CREATE TRIGGER validate_feed_categorization_update
AFTER UPDATE OF categorization ON feeds
BEGIN
SELECT CASE
WHEN NOT (
json_valid(NEW.categorization)
AND json_type(NEW.categorization) = 'array'
AND (
SELECT COUNT(*)
FROM json_each(NEW.categorization)
WHERE json_type(value) != 'text'
) = 0
)
THEN RAISE(ROLLBACK, 'categorization must be an array of strings')
END;
END;