Search Postgresql Archives

Re: Shared Constants in PLPGSQL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> From: "Tim Uckun" <timuckun@xxxxxxxxx>
> To: "pgsql-general" <pgsql-general@xxxxxxxxxxxxxx>
> Sent: Tuesday, August 1, 2017 5:56:02 AM
> Subject:  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 generally has exactly one row. You can add new application configuration parameters easily as application requirements evolve by adding a new column of an appropriate data type. Then, when you need the configuration values in PLPSQL or anywhere for that matter, you do a simple SELECT statement. Also you, can update parameters if necessary (supposing if they are not actually *constants*) at run time very easily, too.

-- B



-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux