Hello, 
Thanks for your response. 

# Currently, I have a function text and a function array with the same body but 
a distinct type return . 
-> Example with the array of text function : 
SELECT public.calfxi3s_all_elements_text_array(12345678, '2025-01-01 00:00') ; 
calfxi3s_all_elements_text_array 
------------------------------------------------------------------------- 
{3.2,sonic,"Capteur Vent ultrasonique compact Brand xxx",2,-0.123,0.321} 
That gives some parameters : the value of the wind strength (3.2), the kind of 
sensor (sonic), the model (Capteur ...), the environmment (2), two coefficients 
(-0.123,0.321) 

Then I have several functions using the previous one, for example 
public.calfxi3s_value() : 

CREATE OR REPLACE FUNCTION public.calfxi3s_value(np integer, dt timestamp 
without time zone) 
RETURNS numeric 
LANGUAGE sql 
STABLE 
AS $function$ 
SELECT (public.calfxi3s_all_elements_text_array(np,dt))[1]::numeric ; 
$function$ 

I can manage with this method, but it shoud be better with a include directive. 
Now, it doesn't exist. so I will do in an other way 

A+ 

De: "Merlin Moncure" <[email protected]> 
À: "PALAYRET Jacques" <[email protected]> 
Cc: [email protected] 
Envoyé: Vendredi 5 Septembre 2025 18:21:08 
Objet: Re: PostgreSQL include directive in plpgsql language PL/pgSQL 

On Fri, Sep 5, 2025 at 7:14 AM PALAYRET Jacques < [ 
mailto:[email protected] | [email protected] ] > wrote: 



Hello, 

In a PL/pgSQL function, there is no command for sharing a common part of the 
body of several functions, is there? 

In my case, I would like a function that returns a numeric value; this value is 
associated with several other parameters, some numeric and others textual. 
It would not be practical for maintenance to have several functions (one 
function for each given parameter) with much of the code being identical. 

Presently, I have a text function with all the parameters in return and a 
function for each parameter based on the first one (with all the parameters), 
using substr(), position(), etc. 
For me, I think it would be easier (and perhaps faster) to use some kind of 
#include in the body of all the functions. 



Can you provide some examples of what you are trying to accomplish? 

There may be some workarounds using immutable functions other tricks, but I'm 
not 100% sure I have my head around your issue. 

merlin 

Reply via email to