2 402
edições
Linha 365: | Linha 365: | ||
A seguir os algoritmos completos, expressos como funções [[wikipedia:PL/pgSQL|linguagem PLpgSQL]]: "''encode''" codifica em base Nh, e "''decode''" decodifica a base Nh. | A seguir os algoritmos completos, expressos como funções [[wikipedia:PL/pgSQL|linguagem PLpgSQL]]: "''encode''" codifica em base Nh, e "''decode''" decodifica a base Nh. | ||
No [[wikipedia:SQL:1992|padrão SQL:1992]] a representação interna em [[cadeia de bits]] foi denominada ''BIT VARYING'', sendo | No [[wikipedia:SQL:1992|padrão SQL:1992]] a representação interna em [[cadeia de bits]] foi denominada ''BIT VARYING'', sendo [[wikipedia:SQL:2003|descontinuada em 2003]]. No PostgreSQL, todavia, [https://www.postgresql.org/docs/current/datatype-bit.html o tipo de dado] e seus [https://www.postgresql.org/docs/current/functions-bitstring.html operadores e funções] foram mantidos, sendo abreviado como ''varbit'' — e nos nomes de função da biblioteca NatCod abreviada como ''vbit''. | ||
O "encode" é a conversão "vbit to base-h", o "decode" é a conversão "base-h to vbit" | O "encode" é a conversão "vbit to base-h", o "decode" é a conversão "base-h to vbit". Daí os nomes de função <code>vbit_to_baseh()</code> e <code>baseh_to_vbit()</code>, com implementação completa no [https://git.osm.codes/NaturalCodes/tree/main/src-sql SQL-schema NatCode]. A seguir os algoritmos simplificados. | ||
Função simplificada de "encode bitstring", converte uma cadeia de bits em texto base-h. | |||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
CREATE FUNCTION natcod.vbit_to_baseh( | CREATE FUNCTION natcod.vbit_to_baseh( | ||
Linha 419: | Linha 418: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Função geral de "decode base Nh". Converte o texto base | Função geral de "decode base Nh". Converte o texto base-h para sua representação interna ''bitstring''. | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> |
edições