Remove some obsolete procedure-specific code from PLs

Since procedures are now declared to return void, code that handled
return values for procedures separately is no longer necessary.
This commit is contained in:
Peter Eisentraut 2018-03-05 11:51:15 -05:00
parent dd9ed0bf70
commit 09230e54fb
3 changed files with 7 additions and 13 deletions

View File

@ -2832,8 +2832,7 @@ compile_plperl_function(Oid fn_oid, bool is_trigger, bool is_event_trigger)
* Get the required information for input conversion of the * Get the required information for input conversion of the
* return value. * return value.
************************************************************/ ************************************************************/
if (!is_trigger && !is_event_trigger && if (!is_trigger && !is_event_trigger)
procStruct->prokind != PROKIND_PROCEDURE)
{ {
Oid rettype = procStruct->prorettype; Oid rettype = procStruct->prorettype;

View File

@ -206,9 +206,9 @@ PLy_procedure_create(HeapTuple procTup, Oid fn_oid, bool is_trigger)
/* /*
* get information required for output conversion of the return value, * get information required for output conversion of the return value,
* but only if this isn't a trigger or procedure. * but only if this isn't a trigger.
*/ */
if (!is_trigger && procStruct->prokind != PROKIND_PROCEDURE) if (!is_trigger)
{ {
Oid rettype = procStruct->prorettype; Oid rettype = procStruct->prorettype;
HeapTuple rvTypeTup; HeapTuple rvTypeTup;

View File

@ -146,7 +146,6 @@ typedef struct pltcl_proc_desc
Oid result_typid; /* OID of fn's result type */ Oid result_typid; /* OID of fn's result type */
FmgrInfo result_in_func; /* input function for fn's result type */ FmgrInfo result_in_func; /* input function for fn's result type */
Oid result_typioparam; /* param to pass to same */ Oid result_typioparam; /* param to pass to same */
bool fn_is_procedure; /* true if this is a procedure */
bool fn_retisset; /* true if function returns a set */ bool fn_retisset; /* true if function returns a set */
bool fn_retistuple; /* true if function returns composite */ bool fn_retistuple; /* true if function returns composite */
bool fn_retisdomain; /* true if function returns domain */ bool fn_retisdomain; /* true if function returns domain */
@ -982,7 +981,7 @@ pltcl_func_handler(PG_FUNCTION_ARGS, pltcl_call_state *call_state,
retval = (Datum) 0; retval = (Datum) 0;
fcinfo->isnull = true; fcinfo->isnull = true;
} }
else if (fcinfo->isnull && !prodesc->fn_is_procedure) else if (fcinfo->isnull)
{ {
retval = InputFunctionCall(&prodesc->result_in_func, retval = InputFunctionCall(&prodesc->result_in_func,
NULL, NULL,
@ -1040,13 +1039,11 @@ pltcl_func_handler(PG_FUNCTION_ARGS, pltcl_call_state *call_state,
call_state); call_state);
retval = HeapTupleGetDatum(tup); retval = HeapTupleGetDatum(tup);
} }
else if (!prodesc->fn_is_procedure) else
retval = InputFunctionCall(&prodesc->result_in_func, retval = InputFunctionCall(&prodesc->result_in_func,
utf_u2e(Tcl_GetStringResult(interp)), utf_u2e(Tcl_GetStringResult(interp)),
prodesc->result_typioparam, prodesc->result_typioparam,
-1); -1);
else
retval = 0;
return retval; return retval;
} }
@ -1523,9 +1520,7 @@ compile_pltcl_function(Oid fn_oid, Oid tgreloid,
* Get the required information for input conversion of the * Get the required information for input conversion of the
* return value. * return value.
************************************************************/ ************************************************************/
prodesc->fn_is_procedure = (procStruct->prokind == PROKIND_PROCEDURE); if (!is_trigger && !is_event_trigger)
if (!is_trigger && !is_event_trigger && !prodesc->fn_is_procedure)
{ {
Oid rettype = procStruct->prorettype; Oid rettype = procStruct->prorettype;
@ -2218,7 +2213,7 @@ pltcl_returnnext(ClientData cdata, Tcl_Interp *interp,
tuplestore_puttuple(call_state->tuple_store, tuple); tuplestore_puttuple(call_state->tuple_store, tuple);
} }
} }
else if (!prodesc->fn_is_procedure) else
{ {
Datum retval; Datum retval;
bool isNull = false; bool isNull = false;