A set of functions that can be useful to explore metadata

pull/3707/head
Rafa de la Torre 9 years ago
parent 58d48447ba
commit 1a423bfa3c

@ -0,0 +1,39 @@
-- This is a set of functions not intended to be used in production
-- but useful to explore the database without rails ORM.
-- They are thought to be loosely coupled to the models and just rely on FK relations.
--
-- To install:
-- \i metadata-goodies.psql
-- To uninstall:
-- DROP SCHEMA goodies CASCADE;
CREATE SCHEMA IF NOT EXISTS goodies AUTHORIZATION postgres;
CREATE OR REPLACE FUNCTION goodies.related_layer_ids(table_id uuid)
RETURNS SETOF uuid AS $$
BEGIN
RETURN QUERY SELECT DISTINCT(layer_id) FROM layers_user_tables WHERE layers_user_tables.user_table_id = table_id;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION goodies.related_map_ids(table_id uuid)
RETURNS SETOF uuid AS $$
BEGIN
RETURN QUERY SELECT DISTINCT(map_id) FROM layers_maps WHERE layers_maps.layer_id
IN (SELECT goodies.related_layer_ids(table_id));
END;
$$ LANGUAGE plpgsql;
-- E.g: SELECT id, name, type FROM goodies.related_vizs('6eb62d84-c4bc-446b-89dd-5435f6cc9346');
CREATE OR REPLACE FUNCTION goodies.related_vizs(table_id uuid)
RETURNS SETOF visualizations AS $$
BEGIN
RETURN QUERY SELECT * FROM visualizations WHERE visualizations.map_id
IN (SELECT goodies.related_map_ids(table_id));
END;
$$ LANGUAGE plpgsql;
Loading…
Cancel
Save