drop index site_nodes_parent_id_idx;
create index site_nodes_parent_id_idx on site_nodes(parent_id);

create or replace function __create_index(name varchar, def varchar)
returns integer as $$
declare v_exists integer;
begin
  select into v_exists count(*) from pg_class where relname = name;
  if v_exists = 0 then
    execute 'create index ' || name || ' ' || def; 
  end if;
  return 1;
end;
$$ language plpgsql;

select __create_index('site_nodes_parent_object_node_id_idx','on site_nodes(parent_id, object_id, node_id)');
select __create_index('site_node_object_mappings_node_id_idx','on site_node_object_mappings(node_id)');

drop function __create_index(name varchar, def varchar);