|
33 | 33 | * ENHANCEMENTS, OR MODIFICATIONS. |
34 | 34 | * |
35 | 35 | * IDENTIFICATION |
36 | | - * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.16 2000/11/20 20:36:51 tgl Exp $ |
| 36 | + * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.17 2000/12/08 00:11:55 tgl Exp $ |
37 | 37 | * |
38 | 38 | **********************************************************************/ |
39 | 39 |
|
@@ -545,8 +545,12 @@ plperl_func_handler(PG_FUNCTION_ARGS) |
545 | 545 | { |
546 | 546 | free(prodesc->proname); |
547 | 547 | free(prodesc); |
548 | | -elog(ERROR,"plperl: cache lookup for return type %u failed", |
549 | | -procStruct->prorettype); |
| 548 | +if (!OidIsValid(procStruct->prorettype)) |
| 549 | +elog(ERROR,"plperl functions cannot return type \"opaque\"" |
| 550 | +"\n\texcept when used as triggers"); |
| 551 | +else |
| 552 | +elog(ERROR,"plperl: cache lookup for return type %u failed", |
| 553 | +procStruct->prorettype); |
550 | 554 | } |
551 | 555 | typeStruct= (Form_pg_type)GETSTRUCT(typeTup); |
552 | 556 |
|
@@ -577,8 +581,11 @@ plperl_func_handler(PG_FUNCTION_ARGS) |
577 | 581 | { |
578 | 582 | free(prodesc->proname); |
579 | 583 | free(prodesc); |
580 | | -elog(ERROR,"plperl: cache lookup for argument type %u failed", |
581 | | -procStruct->proargtypes[i]); |
| 584 | +if (!OidIsValid(procStruct->proargtypes[i])) |
| 585 | +elog(ERROR,"plperl functions cannot take type \"opaque\""); |
| 586 | +else |
| 587 | +elog(ERROR,"plperl: cache lookup for argument type %u failed", |
| 588 | +procStruct->proargtypes[i]); |
582 | 589 | } |
583 | 590 | typeStruct= (Form_pg_type)GETSTRUCT(typeTup); |
584 | 591 |
|
|