Обсуждение: CONCAT function equivalent

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

CONCAT function equivalent

От
Fabian Santiago
Дата:
Hello,

Is there an equivalent command (string) for this example:

UPDATE domain SET settings=CONCAT(settings, 'default_language:', defaultlanguage, ';');

that works and accomplishes the same thing in postgresql v8.4? Thanks.

--
Sincerely,

Fabian S.

Re: CONCAT function equivalent

От
David G Johnston
Дата:
Fabian Santiago wrote
> Hello,
>
> Is there an equivalent command (string) for this example:
>
> UPDATE domain SET settings=CONCAT(settings, 'default_language:',
> defaultlanguage, ';');
>
> that works and accomplishes the same thing in postgresql v8.4? Thanks.
>
> --
> Sincerely,
>
> Fabian S.

Not in core or contrib

Could write one relatively easily in 9.0 but not sure how you'd manage in
8.4

8.4 is also going out of support soon

Coalesce and || are your tools if you stick to 8.4

David J.





--
View this message in context: http://postgresql.1045698.n5.nabble.com/CONCAT-function-equivalent-tp5804325p5804327.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


Re: CONCAT function equivalent

От
Korry Douglas
Дата:
Is there an equivalent command (string) for this example:

UPDATE domain SET settings=CONCAT(settings, 'default_language:', defaultlanguage, ';');

that works and accomplishes the same thing in postgresql v8.4? Thanks.

The concatenation operator is available in 8.4, is there some reason that won't work for you?
UPDATE domain SET settings = settings || 'default_language:' || defaultlanguage || ';';

-- Korry

Re: CONCAT function equivalent

От
Fabian Santiago
Дата:
Thanks Korry,

I think that's a step in the right direction but I'm not quite there yet. I'm trying to run this series of commands:

sql> UPDATE domain SET settings=CONCAT(settings, 'default_language:', defaultlanguage, ';');
sql> UPDATE domain SET settings=CONCAT(settings, 'default_user_quota:', defaultuserquota, ';');
sql> UPDATE domain SET settings=CONCAT(settings, 'default_groups:', defaultuseraliases, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'min_passwd_length:', minpasswordlength, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'max_passwd_length:', maxpasswordlength, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'disabled_domain_profiles:', disableddomainprofiles, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'disabled_user_profiles:', disableduserprofiles, ';');

When I did it this way:

 UPDATE domain SET settings = ('default_language:en_US;default_user_quota:10240;default_groups:;min_passwd_length:0;max_passwd_length:0;disabled_domain_profiles:;disabled_user_profiles:;');

It created one line in the column with everything strung together. 

I'm trying to get everything into individual lines. When I run separate statements using your approach, it created two lines (I think because one of the other tables, defaultuserquota, contained two values itself. 

So I'm still stuck. Does anyone else have any clues? Or am I totally mis-thinking this completely? Thanks.

- Fabian S.



On Sat, May 17, 2014 at 4:04 PM, Korry Douglas <korry.douglas@enterprisedb.com> wrote:
Is there an equivalent command (string) for this example:

UPDATE domain SET settings=CONCAT(settings, 'default_language:', defaultlanguage, ';');

that works and accomplishes the same thing in postgresql v8.4? Thanks.

The concatenation operator is available in 8.4, is there some reason that won't work for you?
UPDATE domain SET settings = settings || 'default_language:' || defaultlanguage || ';';

-- Korry



--
Sincerely,

Fabian S.
862-432-2373

Re: CONCAT function equivalent

От
David G Johnston
Дата:
Fabian Santiago wrote
> It created one line in the column with everything strung together.

And why would you expect anything different? If you want embedded newlines
you need to add them yourself during the concatenation.

See my post on the -novice list where you also posted this same original
question.

David J.



--
View this message in context: http://postgresql.1045698.n5.nabble.com/CONCAT-function-equivalent-tp5804325p5804370.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


Re: CONCAT function equivalent

От
Fabian Santiago
Дата:
Thanks Korry,

After much investigation, your example:

UPDATE domain SET settings = settings || 'default_language:' || defaultlanguage || ';';

gave me what I was looking for after all. at first i didn't think so but after looking into it further (and a few smoke breaks to clear the head), i discovered it was correct. Thanks a lot. 

- Fabian S.



On Sat, May 17, 2014 at 5:18 PM, Fabian Santiago <fabian.santiago@gmail.com> wrote:
Thanks Korry,

I think that's a step in the right direction but I'm not quite there yet. I'm trying to run this series of commands:

sql> UPDATE domain SET settings=CONCAT(settings, 'default_language:', defaultlanguage, ';');
sql> UPDATE domain SET settings=CONCAT(settings, 'default_user_quota:', defaultuserquota, ';');
sql> UPDATE domain SET settings=CONCAT(settings, 'default_groups:', defaultuseraliases, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'min_passwd_length:', minpasswordlength, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'max_passwd_length:', maxpasswordlength, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'disabled_domain_profiles:', disableddomainprofiles, ';'); sql> UPDATE domain SET settings=CONCAT(settings, 'disabled_user_profiles:', disableduserprofiles, ';');

When I did it this way:

 UPDATE domain SET settings = ('default_language:en_US;default_user_quota:10240;default_groups:;min_passwd_length:0;max_passwd_length:0;disabled_domain_profiles:;disabled_user_profiles:;');

It created one line in the column with everything strung together. 

I'm trying to get everything into individual lines. When I run separate statements using your approach, it created two lines (I think because one of the other tables, defaultuserquota, contained two values itself. 

So I'm still stuck. Does anyone else have any clues? Or am I totally mis-thinking this completely? Thanks.

- Fabian S.



On Sat, May 17, 2014 at 4:04 PM, Korry Douglas <korry.douglas@enterprisedb.com> wrote:
Is there an equivalent command (string) for this example:

UPDATE domain SET settings=CONCAT(settings, 'default_language:', defaultlanguage, ';');

that works and accomplishes the same thing in postgresql v8.4? Thanks.

The concatenation operator is available in 8.4, is there some reason that won't work for you?
UPDATE domain SET settings = settings || 'default_language:' || defaultlanguage || ';';

-- Korry



--
Sincerely,

Fabian S.
862-432-2373



--
Sincerely,

Fabian S.
862-432-2373

Re: CONCAT function equivalent

От
Fabian Santiago
Дата:
Thanks David. You were right. It is what I should have expected. I figured it all out finally. Thanks for your guidance. 


On Sat, May 17, 2014 at 6:41 PM, David G Johnston <david.g.johnston@gmail.com> wrote:
Fabian Santiago wrote
> It created one line in the column with everything strung together.

And why would you expect anything different? If you want embedded newlines
you need to add them yourself during the concatenation.

See my post on the -novice list where you also posted this same original
question.

David J.



--
View this message in context: http://postgresql.1045698.n5.nabble.com/CONCAT-function-equivalent-tp5804325p5804370.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


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



--
Sincerely,

Fabian S.
862-432-2373

Re: CONCAT function equivalent

От
Fabian Santiago
Дата:
I upgraded to v9.1 and that solved a lot of my hurt. Thanks. 



On Sat, May 17, 2014 at 11:03 AM, David G Johnston <david.g.johnston@gmail.com> wrote:
Fabian Santiago wrote
> Hello,
>
> Is there an equivalent command (string) for this example:
>
> UPDATE domain SET settings=CONCAT(settings, 'default_language:',
> defaultlanguage, ';');
>
> that works and accomplishes the same thing in postgresql v8.4? Thanks.
>
> --
> Sincerely,
>
> Fabian S.

Not in core or contrib

Could write one relatively easily in 9.0 but not sure how you'd manage in
8.4

8.4 is also going out of support soon

Coalesce and || are your tools if you stick to 8.4

David J.





--
View this message in context: http://postgresql.1045698.n5.nabble.com/CONCAT-function-equivalent-tp5804325p5804327.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


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



--
Sincerely,

Fabian S.
862-432-2373