25 lines
606 B
JavaScript
25 lines
606 B
JavaScript
|
exports.up = async knex => knex.raw(`
|
||
|
CREATE FUNCTION entities_scenes(entity entities) RETURNS SETOF releases AS $$
|
||
|
WITH RECURSIVE children AS (
|
||
|
SELECT entities.id
|
||
|
FROM entities
|
||
|
WHERE entities.id = entity.id
|
||
|
|
||
|
UNION ALL
|
||
|
|
||
|
SELECT entities.id
|
||
|
FROM entities
|
||
|
INNER JOIN children ON children.id = entities.parent_id
|
||
|
)
|
||
|
|
||
|
SELECT releases FROM releases
|
||
|
INNER JOIN children ON children.id = releases.entity_id;
|
||
|
$$ LANGUAGE SQL STABLE;
|
||
|
|
||
|
COMMENT ON FUNCTION entities_scenes IS E'@sortable';
|
||
|
`);
|
||
|
|
||
|
exports.down = async knex => knex.raw(`
|
||
|
DROP FUNCTION IF EXISTS entities_scenes;
|
||
|
`);
|