P.6. Extensão para validação do CPF e do CNPJ alfanumérico em C #

Foi desenvolvida uma extensão para o PostgreSQL contendo funções escritas na linguagem C para calcular os dígitos verificadores do CPF e do CNPJ alfanumérico, conforme especificado pela Receita Federal do Brasil na página CNPJ Alfanumérico.

Todos os arquivos da extensão encontram-se na página Validação do CPF e do CNPJ alfanumérico no GitLab. Também vale a pena ser vista a página Empacotamento de objetos relacionados em uma extensão para conhecer como é criada e usada uma extensão no PostgreSQL.

Para compilar o código-fonte da extensão escrito na linguagem C basta executar o comando make, porém para instalar a extensão é necessário executar sudo make install, porque a instalação é feita nos diretórios do PostgreSQL. Para os usuários instalarem essa extensão e usar suas funções basta executar o comando CREATE EXTENSION dvrfb; sem haver necessidade de ser um superusuário ou ter algum privilégio especial.

A seguir é mostrada a criação da extensão dvrfb no banco de dados ana da usuária ana, e seu uso com valores fornecidos pela Receita Federal para teste.

CREATE EXTENSION dvrfb;
CREATE EXTENSION
SELECT rfb_cpf('28001238938');

 rfb_cpf
---------
 t
(1 linha)

SELECT rfb_cnpj('900244200001A'); -- o dígito verificador é sempre um número

 rfb_cnpj
----------
 f
(1 linha)

SELECT rfb_cnpj('R55231B3000757'); -- são validas letras de A a Z maiúsculas

 rfb_cnpj
----------
 t
(1 linha)