|
33 | 33 | * ENHANCEMENTS, OR MODIFICATIONS. |
34 | 34 | * |
35 | 35 | * IDENTIFICATION |
36 | | - * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.66 2005/01/11 06:08:45 tgl Exp $ |
| 36 | + * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.67 2005/01/14 16:25:42 tgl Exp $ |
37 | 37 | * |
38 | 38 | **********************************************************************/ |
39 | 39 |
|
@@ -338,35 +338,39 @@ plperl_trigger_build_args(FunctionCallInfo fcinfo) |
338 | 338 | if (TRIGGER_FIRED_BY_INSERT(tdata->tg_event)) |
339 | 339 | { |
340 | 340 | event="INSERT"; |
341 | | -hv_store(hv,"new",3, |
342 | | -plperl_hash_from_tuple(tdata->tg_trigtuple,tupdesc), |
343 | | -0); |
| 341 | +if (TRIGGER_FIRED_FOR_ROW(tdata->tg_event)) |
| 342 | +hv_store(hv,"new",3, |
| 343 | +plperl_hash_from_tuple(tdata->tg_trigtuple,tupdesc), |
| 344 | +0); |
344 | 345 | } |
345 | 346 | elseif (TRIGGER_FIRED_BY_DELETE(tdata->tg_event)) |
346 | 347 | { |
347 | 348 | event="DELETE"; |
348 | | -hv_store(hv,"old",3, |
349 | | -plperl_hash_from_tuple(tdata->tg_trigtuple,tupdesc), |
350 | | -0); |
| 349 | +if (TRIGGER_FIRED_FOR_ROW(tdata->tg_event)) |
| 350 | +hv_store(hv,"old",3, |
| 351 | +plperl_hash_from_tuple(tdata->tg_trigtuple,tupdesc), |
| 352 | +0); |
351 | 353 | } |
352 | 354 | elseif (TRIGGER_FIRED_BY_UPDATE(tdata->tg_event)) |
353 | 355 | { |
354 | 356 | event="UPDATE"; |
355 | | -hv_store(hv,"old",3, |
356 | | -plperl_hash_from_tuple(tdata->tg_trigtuple,tupdesc), |
357 | | -0); |
358 | | -hv_store(hv,"new",3, |
359 | | -plperl_hash_from_tuple(tdata->tg_newtuple,tupdesc), |
360 | | -0); |
| 357 | +if (TRIGGER_FIRED_FOR_ROW(tdata->tg_event)) |
| 358 | +{ |
| 359 | +hv_store(hv,"old",3, |
| 360 | +plperl_hash_from_tuple(tdata->tg_trigtuple,tupdesc), |
| 361 | +0); |
| 362 | +hv_store(hv,"new",3, |
| 363 | +plperl_hash_from_tuple(tdata->tg_newtuple,tupdesc), |
| 364 | +0); |
| 365 | +} |
361 | 366 | } |
362 | | -else { |
| 367 | +else |
363 | 368 | event="UNKNOWN"; |
364 | | -} |
365 | 369 |
|
366 | 370 | hv_store(hv,"event",5,newSVpv(event,0),0); |
367 | 371 | hv_store(hv,"argc",4,newSViv(tdata->tg_trigger->tgnargs),0); |
368 | 372 |
|
369 | | -if (tdata->tg_trigger->tgnargs!=0) |
| 373 | +if (tdata->tg_trigger->tgnargs>0) |
370 | 374 | { |
371 | 375 | AV*av=newAV(); |
372 | 376 | for (i=0;i<tdata->tg_trigger->tgnargs;i++) |
|