P.1. Validação da inscrição eleitoral em C #

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)

Nota

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