Обсуждение: Global value/global variable?

Поиск
Список
Период
Сортировка

Global value/global variable?

От
Edson Richter
Дата:
It is possible to define a global value/variable in PostgreSQL in a way that I can use it in any query/view/function?
For example, I do have a connection string I use for dblink connections in several places (specially, inside views).
Then, if I want to change the connection string, I do have to change every view manually.
If I can set a kind of global variable, then I just use it inside every view - then, at my application startup (or even at PostgreSQL startup, if I can set this string at postgresql.conf level), would set this "global variable" to point the current string.

Your enlightment will be really welcome.

Regards,

Edson

Re: Global value/global variable?

От
Ian Barwick
Дата:
On 19/06/14 11:50, Edson Richter wrote:
> It is possible to define a global value/variable in PostgreSQL in a way that I can use it in any query/view/function?
> For example, I do have a connection string I use for dblink connections in several places (specially, inside views).
> Then, if I want to change the connection string, I do have to change every view manually.
> If I can set a kind of global variable, then I just use it inside every view - then, at my application startup (or
evenat PostgreSQL startup, if I can set this string at postgresql.conf level), would set this "global variable" to
pointthe current string. 
>
> Your enlightment will be really welcome.

There's no such thing as a global variable, but why not use a table
to store any global configuration values? You can always do something like this:

   SELECT dblink_connect('myconn', (select connstr from dblink_conf))


Regards

Ian Barwick

--
  Ian Barwick                   http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services


Re: Global value/global variable?

От
Tom Lane
Дата:
Ian Barwick <ian@2ndquadrant.com> writes:
> On 19/06/14 11:50, Edson Richter wrote:
>> It is possible to define a global value/variable in PostgreSQL in a way that I can use it in any
query/view/function?

> There's no such thing as a global variable, but why not use a table
> to store any global configuration values?

Actually, people do regularly (ab)use custom GUC variables for this
purpose.  But a table is not a bad solution.  The GUC solution does
not scale to more than order-of-a-hundred values.

            regards, tom lane