Grade logística dos municípios Brasil: mudanças entre as edições

sem sumário de edição
Sem resumo de edição
Sem resumo de edição
Linha 1: Linha 1:
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
create database <NOME_BANCO>;
create database <NOME_BASE_DADOS>;
</syntaxhighlight>Insira o comando abaixo para entrar no banco recém-criado<syntaxhighlight lang="psql">
</syntaxhighlight>Insira o comando abaixo para entrar no banco recém-criado<syntaxhighlight lang="psql">
\c <nome_base_de_dados>;
\c <nome_base_de_dados>;
Linha 131: Linha 131:
</syntaxhighlight>O script SQL acima proporciona a base de dados a lidar com projeções compatíveis com o IBGE.
</syntaxhighlight>O script SQL acima proporciona a base de dados a lidar com projeções compatíveis com o IBGE.


Em seguida,  
Em seguida, precisamos criar as funções vbit_interleave e ints_to_interleavedbits. Ainda na CLI do postgres, adicione na sequência, os scripts SQL abaixo: <syntaxhighlight lang="sql">
CREATE FUNCTION vbit_interleave(x varbit, y varbit) returns varbit as $f$
  SELECT  string_agg(( substring(x,i,1)||substring(y,i,1) )::text,'')::varbit
  FROM generate_series(1,bit_length(x)) t(i)
$f$ LANGUAGE SQL IMMUTABLE;
</syntaxhighlight> <syntaxhighlight lang="sql">
CREATE FUNCTION ints_to_interleavedbits(x int, y int, len int default 32) returns varbit as $f$
  SELECT vbit_interleave( substring(x::bit(32),33-len), substring(y::bit(32),33-len) )
$f$ LANGUAGE SQL IMMUTABLE;
</syntaxhighlight>


==== Consulta para verificar se um determinado nível de grade está disponível para todos os municípios brasileiros ====
==== Consulta para verificar se um determinado nível de grade está disponível para todos os municípios brasileiros ====
36

edições