Re: [GENERAL] Shared Constants in PLPGSQL - Mailing list pgsql-general

From btober@computer.org
Subject Re: [GENERAL] Shared Constants in PLPGSQL
Date
Msg-id 2011861715.327414083.1501588679613.JavaMail.zimbra@broadstripe.net
Whole thread Raw
In response to [GENERAL] Shared Constants in PLPGSQL  (Tim Uckun <timuckun@gmail.com>)
List pgsql-general
----- Original Message -----
> From: "Tim Uckun" <timuckun@gmail.com>
> To: "pgsql-general" <pgsql-general@postgresql.org>
> Sent: Tuesday, August 1, 2017 5:56:02 AM
> Subject: [GENERAL] Shared Constants in PLPGSQL
>
> What's the best way to deal with global constants in PLPGSQL. Currently I
> am putting them in a function with out parameters and then calling that
> function from every other function that needs them like this.
>
> CREATE OR REPLACE FUNCTION hashids.constants(
>      OUT min_alphabet_length integer,
>     OUT sep_div numeric,
>     OUT guard_div numeric,
>     OUT default_steps text,
>     OUT default_alphabet text,
>     OUT salt text)
>
> I am presuming that if I set this function as immutable the calls to this
> function will be cached and will not incur much overhead.
>
> Is there a better way to deal with this?
>

One alternative is to create a configuration values table to store application configuration parameters. This table
generallyhas exactly one row. You can add new application configuration parameters easily as application requirements
evolveby adding a new column of an appropriate data type. Then, when you need the configuration values in PLPSQL or
anywherefor that matter, you do a simple SELECT statement. Also you, can update parameters if necessary (supposing if
theyare not actually *constants*) at run time very easily, too. 

-- B



pgsql-general by date:

Previous
From: Tim Uckun
Date:
Subject: [GENERAL] Shared Constants in PLPGSQL
Next
From: Merlin Moncure
Date:
Subject: Re: [GENERAL] Shared Constants in PLPGSQL