Roberto, o resultado da query é:
relname relfilenode
lanctos_contab  1202543

Fabrizio, creio que o custo de se criar uma tabela temporária, e depois
varrer o catalogo, considerando-se a quantidade de iterações que o log
representa seja alto. Acho que o tablelog seja a solução mais eficiente. Mas
valeu pela dica, será útil pra outras soluções também.

Obrigado a todos.


fabriziomello wrote:
> 
> 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
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Para-quem-entende-de-C-tp25439471p25451145.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a