Thread: DIfferent ORDER BY behaviour in 7.4.2

DIfferent ORDER BY behaviour in 7.4.2

From
Gunasekaran Balakrishnan
Date:
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.



Re: DIfferent ORDER BY behaviour in 7.4.2

From
Tom Lane
Date:
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

Re: DIfferent ORDER BY behaviour in 7.4.2

From
Gunasekaran Balakrishnan
Date:
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
 

Test case for bug fix in 7.4.3

From
Gunasekaran Balakrishnan
Date:
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:
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 


Re: Test case for bug fix in 7.4.3

From
Bruce Momjian
Date:
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