|
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++)
|
|