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
