Closed 0e1 closed 1 year ago
ao executar o decode obtemos
SELECT api.osmcode_decode_postal('CO-8758~853M5Z');
ERROR: FOREACH expression must not be null
CONTEXT: PL/pgSQL function natcod.b32nvu_to_vbit(text) line 7 at FOREACH over array
SQL function "osmcode_decode_postal" statement 1
SQL function "osmcode_decode_postal" statement 1
Avaliando as funções que resolvem o código o problema está na resolução do primeiro digito. A função natcod.vbit_to_strstd
não converte pois recebe um varbit não múltiplo de 5.
Observando a cobertura e o primeiro nível disponível para encode, parace que Lcobertura - Lprimeiro nivel não é igual a 2.5:
Minha avaliação preliminar é que a cobertura está errada. Mais ainda, que as coberturas (exceto Tunja) estão desatualizadas, não tendo sido atualizadas após o shit+3
realizado.
Eu confirmei. Coberturas na produção estão desatualizadas, exceto Tunja.
Atualizei as coberturas colombianas a partir das coberturas citadas em https://github.com/osm-codes/CO_new/blob/main/data/coverage.csv, que já são coberturas geradas considerando o shift+3 utilizado na base32. Com isso, encode/decode funcionam.
Decode colombiano não funciona.
Por exemplo, o decode de https://osm.codes/CO-8758~853M5Z não funciona.
Por outro lado, https://osm.codes/CO-15001~J7M0 funciona.