Gatilhos + Postgres

Pessoal eu quero fazer um gatilho que cadastre o nome do usuario que logou no sistema e a hora, até agora conseguir somente o usuário logado no banco, que como uso HIBERNATE, vai se o usuário da conexão quero o usuário da sessão…

[code]-- Function: empregado_gatilho()

– DROP FUNCTION empregado_gatilho();

CREATE OR REPLACE FUNCTION empregado_gatilho()
RETURNS trigger AS
$BODY$
BEGIN

 --Verifica se foi fornecido o nome e o salario do empregado	

 IF NEW.nome IS NULL THEN
	RAISE EXCEPTION 'O nome do empregado nao pode ser nulo';
 END IF;
 IF NEW.salario IS NULL THEN
	RAISE EXCEPTION '%O nao pode ter um salario nulo', NEW.nome;

     END IF;

     -- Quem paga para trabalhar

     IF NEW.salario < 0 THEN 
	RAISE EXCEPTION '% Nao pode ter um salario negativo', NEW.nome;
	
 END IF;
 

 -- Registra quem apagou a folha de pagamento e quando

 NEW.ultima_data := 'now';
 NEW.ultimo_usuario := current_user;
 RETURN NEW;
 END;

$BODY$
LANGUAGE ‘plpgsql’ VOLATILE
COST 100;
ALTER FUNCTION empregado_gatilho() OWNER TO root;

[/code]

tabela:


-- Table: empregados

-- DROP TABLE empregados;

CREATE TABLE empregados
(
  codigo integer NOT NULL,
  nome character varying,
  salario integer,
  departamento_cod integer,
  ultima_data date,
  ultimo_usuario character varying,
  CONSTRAINT pk_epregados PRIMARY KEY (codigo)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE empregados OWNER TO root;

-- Trigger: empregado_gatilho on empregados

-- DROP TRIGGER empregado_gatilho ON empregados;

CREATE TRIGGER empregado_gatilho
  BEFORE INSERT OR UPDATE
  ON empregados
  FOR EACH ROW
  EXECUTE PROCEDURE empregado_gatilho();

resultado é :

3;"pedro";10;;"2010-07-20";"root"