|
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 |
|
|
0 commit comments