Esta Função para validação do número de inscrição eleitoral recebe um argumento, o número de inscrição eleitoral. Retorna nulo se o argumento for nulo, retorna verdade se os dígitos verificadores estiverem corretos e retorna falso se os dígitos verificadores não estiverem corretos, o argumento não tiver entre 10 e 12 dígitos ou o argumento contiver um dígito não numérico antes dos dígitos verificadores. Não é verificado se a unidade da federação é válida.
Essa função é baseada no artigo 36 da Resolução nº 23.659, de 26 de outubro de 2021 do Tribunal Superior Eleitoral, que diz: “os dois últimos algarismos constituirão dígitos verificadores, determinados com base no Módulo 11, sendo o primeiro calculado sobre o número sequencial, e o último sobre o código da unidade da Federação seguido do primeiro dígito verificador”.
O código-fonte da função, o arquivo Makefile,
e o comando CREATE FUNCTION, que vincula a função
C à função SQL, podem ser vistos
em Validação do do número de inscrição eleitoral em C no GitLab.
Criação e teste da função no PostgreSQL:
postgres=# CREATE FUNCTION tse_nie(text) RETURNS boolean
AS '$libdir/udf/tse_nie', 'tse_nie'
LANGUAGE C STRICT;
CREATE FUNCTION
postgres=# \pset null <nulo>
Null display is "<nulo>".
postgres=# SELECT tse_nie(NULL);
tse_nie
---------
<nulo>
(1 linha)
Os números de inscrição eleitoral utilizados para testar a função podem ser obtidos na página Gerador de Título de Eleitor