[Pljava-dev] Cancelling trigger operation

Thomas Hallgren thomas at tada.se
Mon Oct 23 08:46:27 UTC 2006


Hi Filip,
Something is definitely missing in the TriggerData interface. It should 
have a 'setCancelled()' method that causes the returned tuple to be 
null. Please add a bug for this.

Regards,
Thomas Hallgren

Filip Hrbek wrote:
> Hi Thomas,
>
> when a trigger function is written in pl/pgsql, you can decide to cancel the 
> operation in a trigger(defined as "before event") by returning null instead 
> of "new", e.g.
>
> create function cancelling_trigger() returns trigger as
> '
> begin
>   if new.num < 0 then
>     -- cancel operation for negative numbers
>     return null;
>   else
>     -- continue
>     -- do something...
>     return new;
>   end if;
> end
> ' language 'plpgsql';
>
> Is there any way to do the same in pljava? I can't see it now, since the 
> trigger functions are mapped to static java methods with no return values 
> (void):
>
> public static void cancellingTrigger(TriggerData td) throws SQLException {
>   if (td.getNew().getInt("num") < 0) {
>     //Cancel operation - HOW???
>   }
>   else {
>     //Continue
>     //do something...
>   }
> }
>
> Filip
>
> _______________________________________________
> Pljava-dev mailing list
> Pljava-dev at gborg.postgresql.org
> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>   




More information about the Pljava-dev mailing list