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. 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. Roberto, vc colocou tablelog [1], mas nao pos o link. Se tiver eu agradeço. 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" robertomello wrote: > > On Mon, Sep 14, 2009 at 1:01 PM, Jean Domingues > <[email protected]>wrote: > >> >> Pessoal, estou usando a função abaixo para chamar de triggers no after >> insert, update e delete das tabelas que desejo fazer logging. Ta >> funcionando >> > > Por que colocaste "C" no assunto do e-mail, se o que tu queres mesmo é > Tcl? > São duas linguagens bem diferentes. > > >> ok para todas as tabelas, exceto para uma, para a qual recebe a mensagem >> de >> que não foi possível encontrar o campo "tgname". Segue tambem abaixo a >> definição da tabela para a qual o trigger não funciona. Se alguém tiver >> uma >> luz, da um toque ai. >> > > Se eu fosse você não usaria essa função em PL/Tcl. Vai ser muito mais > lento > fazer isso em Tcl do que em C, e provavelmente do que em PL/pgSQL. > > O tablelog [1] é escrito em C, mas precisarias instalar o módulo em C e > habilitá-lo no teu banco, conforme as instruções. > > Já reescrever em PL/pgSQL seria relativamente fácil, e não precisa de > nenhum > módulo C. > > >> CREATE OR REPLACE FUNCTION "public"."log_to_audit_table" () RETURNS >> trigger >> AS >> $body$ >> spi_exec "SELECT CURRENT_USER AS tguser" >> spi_exec "SELECT relname AS tgname FROM pg_class WHERE relfilenode = >> $TG_relid" >> >> #skip changes on audit_table >> if {[string equal -nocase $tgname audit_table]} { return OK } //creio >> que >> o erro seja aqui. >> > > Execute essa consulta para essa tabela que está com problema e nos diga o > resultado: > > SELECT relname FROM pg_class where relfilenode = > 'nomedatabelaquedáproblema'; > > Roberto > > _______________________________________________ > 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-tp25439471p25445047.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
