digital-guard / preserv

Digital Preservation Project
http://git.digital-guard.org/preserv
Apache License 2.0
0 stars 0 forks source link

modulo pgDoc baseado nas funções pubLib de doc_UDF #84

Closed ppKrauss closed 1 year ago

ppKrauss commented 2 years ago

Implementar em esquema pgdoc output XML a partir de template mustache usando as funções doc_UDF_show_simple() de PubLib.

Implementar assert.sql para evitar erros de regressão em cada Lib, e implementar parser (awk) que reconheça os ASSERTs trazendo eles para o banco de dados e criando recurso para gerar exemplos da documentação automática.

ASSERT iif(0=1,1,2)=2, 'iIF testing numbers, #func:cbc3bb';
ASSERT iif(0=0,'Hello'::text,'Bye')='Hello', 'iIF testing texts, #func:cbc3bb';

Exemplo:

Function / Description / Example
iif(boolean, anyelement, anyelement) anyelement

Immediate IF. Sintax sugar for the most frequent CASE-WHEN. Avoid with text, need explicit cast.

SELECT iif(0=1,1,2)
SELECT iif(0=0,'Hello'::text,'Bye')

round(double precision, integer) numeric

Cast for ROUND(float,x). Useful for SUM, AVG, etc. See also https://stackoverflow.com/a/20934099/287948.

round(double precision, double precision) float8

ROUND by accuracy. See Round9 at https://stackoverflow.com/a/20933882/287948

trunc_bin(bigint, integer) int8
ppKrauss commented 2 years ago

Já está funcionando (!), mas em teste, para discutir aqui.

Conclusões:

  1. Ainda com COMMENT pendente em um grande número de funções relevantes!
  2. Falta reproduzir, depois do COMMENT e antes dos exemplos, a listagem completa dos argumentos e seus defaults.
  3. O Schema optim ainda não parece ter funções, mas jurisdiction requer VIEWS e funções
  4. Precisamos documentar as views e as tabelas
ppKrauss commented 1 year ago

Lib de documentação de mudança para https://github.com/AddressForAll/pg_pubLib-v1/blob/main/src/pgdoc-step1-ini.sql

Documentação daqui do preserv em #85 e cia.