CREATE OR REPLACE FUNCTION dataplane.remove_cluster_from_dps(cluster TEXT) RETURNS void AS $func$ BEGIN delete from dataplane.cluster_service_hosts where service_id in (select id from dataplane.cluster_services where cluster_id in (select id from dataplane.discovered_clusters where name=cluster) ); delete from dataplane.cluster_services where cluster_id in (select id from dataplane.discovered_clusters where name=cluster); delete from dataplane.cluster_hosts where cluster_id in (select id from dataplane.discovered_clusters where name=cluster); delete from dataplane.discovered_clusters where name=cluster; delete from dataplane.dp_clusters where name=cluster; END $func$ LANGUAGE plpgsql; \set quoted_cluster_name '\'':cluster_name'\'' SELECT dataplane.remove_cluster_from_dps(:quoted_cluster_name); DROP FUNCTION dataplane.remove_cluster_from_dps(cluster TEXT);