public inbox for [email protected]  
help / color / mirror / Atom feed
From: Ron Johnson <[email protected]>
To: pgsql-general <[email protected]>
Subject: Re: PostgreSQL include directive in plpgsql language PL/pgSQL
Date: Fri, 5 Sep 2025 12:36:05 -0400
Message-ID: <CANzqJaDiiu9Qy7e=TsLqqU9KCJSXWJQngoS5cVX2up4b-P7Bkw@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>

On Fri, Sep 5, 2025 at 9:14 AM PALAYRET Jacques <[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.
>

What about something like a "parent" function which a bunch of "stub"
functions call?  The stub functions would have different parameter types,
know what to call the parent function with, and how to return the correct
number value.

Because of name overloading, they might even have the same name.

-- 
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!


reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: PostgreSQL include directive in plpgsql language PL/pgSQL
  In-Reply-To: <CANzqJaDiiu9Qy7e=TsLqqU9KCJSXWJQngoS5cVX2up4b-P7Bkw@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox