Thread: DIfferent ORDER BY behaviour in 7.4.2
Hi, I am seeing a different sorting behaviour for varchar columns in Postgres 7.4.2. postgres 7.4.2 is ignoring case for varchar columns for "ORDER BY" commands where as 7.2.2 is not. I am in a situation where I need to do diff from the select outputs of two databases - one in 7.2.2 and one in 7.4.2. So, is there any way I can force the ORDER BY to ignore case or to not ignore case ? The test results are as follows: CREATE TABLE testSort ( testing varchar(32)); INSERT INTO testSort VALUES ('abc'); INSERT INTO testSort VALUES ('Abd'); INSERT INTO testSort VALUES ('aBc'); INSERT INTO testSort VALUES ('Cbaa'); select * from testSort order by testing; In Postgres 7.2.2: ------------------ TEST=# select * from testSort order by testing; testing --------- Abd Cba aBc abc (4 rows) In Postgres 7.4.2: ------------------ TEST=# select * from testSort order by testing; testing --------- aBc abc Abd Cbaa (4 rows) Thanks in advance, guna.
Gunasekaran Balakrishnan <guna@motorola.com> writes: > I am seeing a different sorting behaviour for varchar columns in > Postgres 7.4.2. > postgres 7.4.2 is ignoring case for varchar columns for "ORDER BY" > commands where as 7.2.2 is not. Check your locale settings. IIRC, --enable-locale was not default in 7.2 days, but it is default (in fact mandatory) now. So it's possible that the 7.2 installation doesn't have locale support at all and is defaulting to C-locale behavior. If your 7.2 was built with locale support, then it was probably initdb'd under a different locale setting than your 7.4 was. In 7.4 you can just do "show lc_collate" to check, but in 7.2 I think you have to use pg_controldata (or in a pinch, "strings pg_control") to find out what locale it's using. regards, tom lane
Thanks a lot Tom !!
Locale settings was the problem.
Thanks,
guna.
Tom Lane wrote:
Locale settings was the problem.
Thanks,
guna.
Tom Lane wrote:
Gunasekaran Balakrishnan <guna@motorola.com> writes:I am seeing a different sorting behaviour for varchar columns in Postgres 7.4.2. postgres 7.4.2 is ignoring case for varchar columns for "ORDER BY" commands where as 7.2.2 is not.Check your locale settings. IIRC, --enable-locale was not default in 7.2 days, but it is default (in fact mandatory) now. So it's possible that the 7.2 installation doesn't have locale support at all and is defaulting to C-locale behavior. If your 7.2 was built with locale support, then it was probably initdb'd under a different locale setting than your 7.4 was. In 7.4 you can just do "show lc_collate" to check, but in 7.2 I think you have to use pg_controldata (or in a pinch, "strings pg_control") to find out what locale it's using. regards, tom lane
Hi,
I see that one of the bug fixes in 7.4.3 is:
"Fix temporary memory leak when using non-hashed aggregates (Tom)"
I am still using 7.4.2, and want to find out if I need to upgrade to 7.4.3.
I did not quite understand the bug, or find a way to re-produce this in the
mailist archives.
Can someone point me to the test case which can re-produce this problem.
Thanks a lot in advance,
guna.
Gunasekaran Balakrishnan wrote:
Thanks a lot Tom !!
Locale settings was the problem.
Thanks,
guna.
Tom Lane wrote:
I see that one of the bug fixes in 7.4.3 is:
"Fix temporary memory leak when using non-hashed aggregates (Tom)"
I am still using 7.4.2, and want to find out if I need to upgrade to 7.4.3.
I did not quite understand the bug, or find a way to re-produce this in the
mailist archives.
Can someone point me to the test case which can re-produce this problem.
Thanks a lot in advance,
guna.
Gunasekaran Balakrishnan wrote:
Thanks a lot Tom !!
Locale settings was the problem.
Thanks,
guna.
Tom Lane wrote:
Gunasekaran Balakrishnan <guna@motorola.com> writes:I am seeing a different sorting behaviour for varchar columns in Postgres 7.4.2. postgres 7.4.2 is ignoring case for varchar columns for "ORDER BY" commands where as 7.2.2 is not.Check your locale settings. IIRC, --enable-locale was not default in 7.2 days, but it is default (in fact mandatory) now. So it's possible that the 7.2 installation doesn't have locale support at all and is defaulting to C-locale behavior. If your 7.2 was built with locale support, then it was probably initdb'd under a different locale setting than your 7.4 was. In 7.4 you can just do "show lc_collate" to check, but in 7.2 I think you have to use pg_controldata (or in a pinch, "strings pg_control") to find out what locale it's using. regards, tom lane
Gunasekaran Balakrishnan wrote: > Hi, > > I see that one of the bug fixes in 7.4.3 is: > > "Fix temporary memory leak when using non-hashed aggregates (Tom)" > > I am still using 7.4.2, and want to find out if I need to upgrade to 7.4.3. > > I did not quite understand the bug, or find a way to re-produce this in the > mailist archives. > > Can someone point me to the test case which can re-produce this problem. No, just upgrade, it is very easy, just stop, install, restart. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073