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

Responder a