Thread: Global value/global variable?
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
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
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