2009/9/14 Jean Domingues <[email protected]>

>
> Desculpem a minha ignorância. Bom, quanto a reescrever em pgPLSQL, creio
> que
> não seja possível porque eu não conseguiria acessar os campos do objeto new
> (record) como um array.


Existe uma forma (não muito elegante) em plpgsql para fazer isso que você
quer...

1) Crie uma tabela temporária com o conteúdo do NEW:

create temp table w_meu_record_new as select new.*;

2) Através do catálogo podes percorrer os metadados dessa tabela temporária:

select * from information_schema.columns where table_name =
'w_meu_record_new';

3) Bom...agora a tua imaginação será responsável pelo resto da
implementação... :-)



> Bom, em C, se alguem puder me orientar, ou traduzir
> a função, ela será muito útil para o grupo, pois é responsável por fazer
> logging de alteração dos registros.


Eu iniciei uma implementação em plpgsql (utilizando aquela forma *não
elegante*)... faltam somente uns detalhes para ficar funcional... posso
publicar o esboço inicial e se alguém quiser colaborar...


Roberto, vc colocou tablelog [1], mas
> nao pos o link. Se tiver eu agradeço.


Roberto, desculpe a intromissão, mas creio que o link seja:

http://pgfoundry.org/projects/tablelog/


O resutado da sql pedida é o seguinte:
>
> SELECT relname FROM pg_class where relfilenode = 'lanctos_contab';
>
> ERRO:  sintaxe de entrada é inválida para tipo oid: "lanctos_contab"
>
>
Creio que houve um pequeno equívoco na query... o correto não seria:

SELECT relname, relfilenode FROM pg_class where relname = 'lanctos_contab';

Isso porque a coluna relfilenode [1] é do tipo OID e foi passado um TEXT na
expressão. Essa coluna é o nome do arquivo no sistema de arquivos onde ficam
os dados da relação, mas é do tipo OID [2] e não uma string.

[1] http://www.postgresql.org/docs/8.4/interactive/catalog-pg-class.html
[2] http://www.postgresql.org/docs/8.4/interactive/datatype-oid.html

Cordialmente,
-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a