Thread: Specific database vars, again...

Specific database vars, again...

From
Glus Xof
Date:
Hi again,

Maybe, I didn't explain my question enough.

I need to record properties that belongs to an specific database (and
so, they work at database level... not at global scope:

* Could I use the \set statements ? but... the vars defined are not in
a database scope but a global, aren't they ?... furthermore, could
save these vars when try to dump the database ??? )

* Or, must to create an specific one-row table ?.

Glus

Re: [GENERAL] Specific database vars, again...

From
Glus Xof
Date:
2010/4/20 Ben Chobot <bench@silentmedia.com>:
>
> On Apr 20, 2010, at 10:53 AM, Glus Xof wrote:
>
>> Hi again,
>>
>> Maybe, I didn't explain my question enough.
>>
>> I need to record properties that belongs to an specific database (and
>> so, they work at database level... not at global scope:
>>
>> * Or, must to create an specific one-row table ?.
>
> Depending on how you intend to use these variables, this sounds like a fine idea to me. What are your problems with
it?

The idea is storing values that can be remotely accessed by a
C++/libpqxx application. So, I just see that the first alternative
that I proposed (the use of \set variables) is really not good. But
the rest remains...

Now, the only option I have is to create a table, define one column
per variable, for using just one row. This can be accessed by a select
sql command...

You know other alternatives ???

Glus

Re: [GENERAL] Specific database vars, again...

From
Glus Xof
Date:
2010/4/20 Ben Chobot <bench@silentmedia.com>:
> On Apr 20, 2010, at 12:35 PM, Glus Xof wrote:
>
> 2010/4/20 Ben Chobot <bench@silentmedia.com>:
>
> On Apr 20, 2010, at 10:53 AM, Glus Xof wrote:
>
> Hi again,
>
> Maybe, I didn't explain my question enough.
>
> I need to record properties that belongs to an specific database (and
>
> so, they work at database level... not at global scope:
>
> * Or, must to create an specific one-row table ?.
>
> Depending on how you intend to use these variables, this sounds like a fine
> idea to me. What are your problems with it?
>
> The idea is storing values that can be remotely accessed by a
> C++/libpqxx application. So, I just see that the first alternative
> that I proposed (the use of \set variables) is really not good. But
> the rest remains...
>
> Now, the only option I have is to create a table, define one column
> per variable, for using just one row. This can be accessed by a select
> sql command...
>
> You know other alternatives ???
>
> I could probably think of some, but why? Storing values in tables is a
> perfectly sensible way to allow clients to access per-database data.

Thanks !

Glus

Re: [GENERAL] Specific database vars, again...

From
Thomas Kellerer
Date:
Glus Xof wrote on 20.04.2010 21:35:
> The idea is storing values that can be remotely accessed by a
> C++/libpqxx application. So, I just see that the first alternative
> that I proposed (the use of \set variables) is really not good. But
> the rest remains...
>
> Now, the only option I have is to create a table, define one column
> per variable, for using just one row. This can be accessed by a select
> sql command...
>

I don't understand why you need a column per variable.

I'd use something like

CREATE TABLE configuration_settings
(
    variable_name  text primary key not null,
    variable_value text
);

INSERT INTO configuration_settings
(variable_name, variable_value)
VALUES
('myfirstvar', 'Some value');

INSERT INTO configuration_settings
(variable_name, variable_value)
VALUES
('mysecondvar', 'Another value');




Re: [GENERAL] Specific database vars, again...

From
Glus Xof
Date:
2010/4/20 Thomas Kellerer <spam_eater@gmx.net>:
> Glus Xof wrote on 20.04.2010 21:35:
>>
>> The idea is storing values that can be remotely accessed by a
>> C++/libpqxx application. So, I just see that the first alternative
>> that I proposed (the use of \set variables) is really not good. But
>> the rest remains...
>>
>> Now, the only option I have is to create a table, define one column
>> per variable, for using just one row. This can be accessed by a select
>> sql command...
>>
>
> I don't understand why you need a column per variable.
>
> I'd use something like
>
> CREATE TABLE configuration_settings
> (
>   variable_name  text primary key not null,
>   variable_value text
> );
>
> INSERT INTO configuration_settings
> (variable_name, variable_value)
> VALUES
> ('myfirstvar', 'Some value');
>
> INSERT INTO configuration_settings
> (variable_name, variable_value)
> VALUES
> ('mysecondvar', 'Another value');
>

I can write it as you suggested.

Thanks a lot !,

Glus

Re: Specific database vars, again...

From
Rene Schickbauer
Date:
Glus Xof wrote:
> Hi again,
>
> Maybe, I didn't explain my question enough.
>
> I need to record properties that belongs to an specific database (and
> so, they work at database level... not at global scope:
>
> * Could I use the \set statements ? but... the vars defined are not in
> a database scope but a global, aren't they ?... furthermore, could
> save these vars when try to dump the database ??? )
>
> * Or, must to create an specific one-row table ?.

The first things to ask is: Do multiple transactions change this data?
What is something goes wrong - do you need rollback to work?

Anyway, a table with one or only a few rows is very likely to be cached
in RAM by postgres anyway if you access it regulary. So performance
shouldn't be an issue.

LG
Rene

Re: [GENERAL] Specific database vars, again...

From
Glus Xof
Date:
Thanks to all that replied my question !

I'll implement the Thomas Kellerer's.

Glus

Re: [GENERAL] Specific database vars, again...

From
Ben Chobot
Date:
On Apr 20, 2010, at 10:53 AM, Glus Xof wrote:

> Hi again,
>
> Maybe, I didn't explain my question enough.
>
> I need to record properties that belongs to an specific database (and
> so, they work at database level... not at global scope:
>
> * Or, must to create an specific one-row table ?.


Depending on how you intend to use these variables, this sounds like a fine idea to me. What are your problems with it?

Re: [GENERAL] Specific database vars, again...

From
Ben Chobot
Date:
On Apr 20, 2010, at 12:35 PM, Glus Xof wrote:

2010/4/20 Ben Chobot <bench@silentmedia.com>:

On Apr 20, 2010, at 10:53 AM, Glus Xof wrote:

Hi again,

Maybe, I didn't explain my question enough.

I need to record properties that belongs to an specific database (and
so, they work at database level... not at global scope:

* Or, must to create an specific one-row table ?.

Depending on how you intend to use these variables, this sounds like a fine idea to me. What are your problems with it?

The idea is storing values that can be remotely accessed by a
C++/libpqxx application. So, I just see that the first alternative
that I proposed (the use of \set variables) is really not good. But
the rest remains...

Now, the only option I have is to create a table, define one column
per variable, for using just one row. This can be accessed by a select
sql command...

You know other alternatives ???

I could probably think of some, but why? Storing values in tables is a perfectly sensible way to allow clients to access per-database data.