|
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 | else if (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 | else if (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++)
|
|
0 commit comments