forked from DebaucheryLibrarian/traxxx
30 lines
710 B
JavaScript
Executable File
30 lines
710 B
JavaScript
Executable File
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
|
|
|
|
UNION
|
|
|
|
SELECT releases FROM releases
|
|
INNER JOIN children ON children.id = releases.studio_id;
|
|
$$ LANGUAGE SQL STABLE;
|
|
|
|
COMMENT ON FUNCTION entities_scenes IS E'@sortable';
|
|
`);
|
|
|
|
exports.down = async (knex) => knex.raw(`
|
|
DROP FUNCTION IF EXISTS entities_scenes;
|
|
`);
|