Tomi NA wrote:
On 6/30/06, Martijn van Oosterhout <kleptog@xxxxxxxxx> wrote:
On Fri, Jun 30, 2006 at 11:56:19AM +0200, Dragan Matic wrote:
> I have two postgres servers, one on linux (fedora core 5), one on
> windows, both are version 8.1.4.
>
Not beeing able to depend on the engine to consistently collate
strings as simple as the ones Dragan listed is closer to a serious bug
(non-deterministic behaviour in otherwise deterministic functions)
than a RFE, but is certainly nowhere near "it's not our problem" as it
regularly seems made up to be. The OS(es) simply and obviously
do(es)n't do a good enough job of it.
I was about to say the same thing. I think that the whole point in
having a portable database system is that the data inside the database
should behave the _same way_ no matter what operating system database is
running on - client shouldn't be aware of the server OS. This is clearly
not the case here. Furthermore, the same thing happens even with en_US
(on Linux) and English_United States (on windows) collations selected,
so it is definitely a serious issue with US collation also and not with
some exotic collation orders only. I think that the only case where it
doesn't happen is when "C" collation is selected. It might be
interesting to see how this issue behaves on other operating systems.
In the past there have existed patches to allow postgres to use ICU for
locale support. It's supposedly not quite as fast, but you will be able
get consistant results across platforms.
Personally, I'd be perfectly happy with pgsql if I could choose to
make text operations up to 2-3x slower without the fuss of how it's
going to work on a certain platform, in each pgsql version.
Furthermore, compiling the server myself is not an option for live
usage: on my current project, I'm not even the one installing the
database servers...sending administrators a binary I configured and
compiled (on Windows, in this case!) and noone but me
tested...brrrr...I get the shivers just thinking about it.
Recompiling is not an option for me also, I mean I could do it for
an in-house servers where I am in charge, but our application runs on
many places and on many servers where recompiling postgres with some
third-party patches is out of the question. I think the solution where
postgres would be slower but behaved the same way on all supported
operating systems would also be acceptable for most people.
Dragan