Usuário Discussão:Peter/Entrega2024-06grid: mudanças entre as edições

Linha 114: Linha 114:


<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
CREATE TABLE grid_b2.tmp_cells (gid_vbit bit varying, geom public.geometry);
DROP TABLE if exists grid_br2.tmp_cells CASCADE;
CREATE TABLE grid_br2.tmp_cells (gid_vbit bit varying, geom public.geometry);


drop PROCEDURE osmc.grid_generate_all_levels_logistic;
drop PROCEDURE if exists osmc.grid_generate_all_levels_logistic;
CREATE or replace PROCEDURE osmc.grid_generate_all_levels_logistic(
CREATE or replace PROCEDURE osmc.grid_generate_all_levels_logistic(
     p_lev_max numeric, p_contry text,  
     p_lev_max numeric, p_contry text,  
Linha 122: Linha 123:
p_contry_base integer,
p_contry_base integer,
     p_lev0 numeric default 2.5
     p_lev0 numeric default 2.5
) RETURNS    LANGUAGE plpgsql IMMUTABLE
) LANGUAGE plpgsql AS $f$
    AS $_$
DECLARE
DECLARE
   tpl text;
   tpl text;
Linha 144: Linha 144:
     group by ord/1000
     group by ord/1000
  ) LOOP
  ) LOOP
    s:='';
     FOR lev IN (select x from generate_series(p_lev0, p_lev_max, 2.5) t(x)) LOOP
     FOR lev IN (select x from generate_series(p_lev0, p_lev_max, 2.5) t(x)) LOOP
       IF lev>p_lev0 THEN s := s || E'\n UNION ALL \n'; END IF;
       IF lev>p_lev0 THEN s := s || E'\n UNION ALL \n'; END IF;
       s := s || format(tpl, lev::text, p_contry, cover_frag::text, p_contry_base::text);
       s := s || format(tpl, lev::text, p_contry, cover_frag::text, p_contry_base::text);
     END LOOP; -- lev
     END LOOP; -- lev
    s := s|| E'\n  ORDER BY 1';
    s := E'INSERT INTO grid_b2.tmp_cells \n' || s || E';\n COMMIT;';
    PERFORM s;
   END LOOP; -- cover_frag
   END LOOP; -- cover_frag
  s := s|| E'\n  ORDER BY 1';
  -- RETURN QUERY EXECUTE s;
END;
END;
$_$;
$f$;
</syntaxhighlight>
</syntaxhighlight>
2 391

edições