Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Troca de Varbit por BigInt #28

Open
0e1 opened this issue Jul 25, 2023 · 0 comments
Open

Troca de Varbit por BigInt #28

0e1 opened this issue Jul 25, 2023 · 0 comments

Comments

@0e1
Copy link
Collaborator

0e1 commented Jul 25, 2023

Os commits https://github.com/osm-codes/NaturalCodes/commit/2b1493ba3e637ee68aea2f9029a96b9b617f33c1 e https://github.com/osm-codes/NaturalCodes/commit/22dffaa0842e19e975f9a8c030dcf68c01a799f8 fornecem maneira de usar bigint para indexar células, realizar busca por intervalo ao mesmo tempo que armazenam a quantidade de bits usados.

Considerações preliminares:

  • 57 bits disponíveis. 6 bits usados para guardar o tamanho;
  • varbit atual usa 10 bits MSB para informar o país, sobrando 54 bits para células (códigos de até 13+1 dígitos em 16h);
  • incorporando 10 bits do pais ao bigint sobram 47 bits (códigos de até 11+1 dígitos em 16h). No Brasil, atualmente são usados 48 bits (até 12 dígitos na 16h ou até 11 dígitos na 16h1c)! Atualização: 10bits referentes ao país serão mapeados em 9 bits.

Impactos da mudança:

  • Trocar varbit por bigint em coberturas;
  • Reindexar coberturas;
  • adaptar clausula where de funções osmc.encode*_;
  • adaptar clausula where e order em osmc.encode_short_code;
  • adaptar as funções que extraem certos bits, exemplo: osmc.extract*_;
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant