Re: Va: Va: [BUGS] Bug #519: Bug in order b y clausule
On Tue, 27 Nov 2001, Sandor Vig wrote:
This doesn't seem to entirely square with the results you two get,
but it sure does look like "CS" sorts in non-ASCII order in HU locale.I've tried to understand the "bug" and I think I have something for you:
The Hungarian ABC (traditional old style) looks like:
A,A',B,C,CS,D,E,E',F,G.......Q,R,S,T,TY,....
(Yes, there are members with two characters!)
This is how we learned it in the elementary school... But nowdays
mainly the computers don't care about the two character members
of our ABC this means, that there is no "CS","TY","DZ","DZS" etc...
only "C" and "T" and so on...But let's say that the Red Hat uses the old style locale sort order,
but int this case should the "CS" after the "C" standing, and the
"TY" after the "T".
Actually I think CS would be after C* for any C? that doesn't have
a separate collation order since the additional characters don't
matter. C<CS, CS<D: CT would be less than CS since C<CS, etc...
which would explain
CA
..
CY
CS
CZ
D
If CZ also has a special collation value (greater than CS presumably
but also less that D?) Otherwise I'd expect
CY
CZ
CS
D
So, it is still a mystery for me....
You probably need the locale for sorting the single character letters
but you don't want the collation values of the multiple character ones.
I think you're probably going to need to get an alternate locale
file but I'm not sure what's involved in that outside of postgres.
For postgres you'd need to dump, initdb under the new locale and restore
probably.
Import Notes
Reply to msg id not found: 1F4D693B8F81D3119AD80008C75B7BB40165B5A7@gs0011.audi.de
Hello All,
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...
May be it posiible in 7.2?
Victor
On Wed, 2001-11-28 at 11:24, Vicktor wrote:
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...
use type casting:
select column::text from table
after :: comes the type you want.
Markus Bertheau
On 28 Nov 2001 12:00:44 +0100
Markus Bertheau <twanger@bluetwanger.de> wrote:
It's not work when column is bool or numeric type !
On Wed, 2001-11-28 at 11:24, Vicktor wrote:
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...use type casting:
select column::text from table
after :: comes the type you want.
Markus Bertheau
Victor
On Wed, Nov 28, 2001 at 12:00:44PM +0100, Markus Bertheau wrote:
On Wed, 2001-11-28 at 11:24, Vicktor wrote:
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...use type casting:
select column::text from table
after :: comes the type you want.
I mean original questioner has other problem:
t=# SELECT 't'::bool::text;
ERROR: Cannot cast type 'boolean' to 'text'
test=# SELECT '123'::numeric::text;
ERROR: Cannot cast type 'numeric' to 'text'
test=#
Karel
--
Karel Zak <zakkr@zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
On Wed, 28 Nov 2001, Vicktor wrote:
Hello All,
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...
May be it posiible in 7.2?
Don't think so. You need those functions and noone has written
them officially.
The former is easy, something like:
create function text(bool) returns text as 'select case when $1 then
''true'' else ''false'' end;' language 'sql';
should suffice.
I'm not entirely sure this is entirely safe for the latter, but you can
try :)
create function numericout(numeric) returns int as 'numeric_out' language
'internal';
create function text(numeric) returns text as 'select
textin(numericout($1));' language 'sql';
On Wed, 28 Nov 2001 08:35:00 -0800 (PST)
Stephan Szabo <sszabo@megazone23.bigpanda.com> wrote:
Ok, thank !
Vicktor
Show quoted text
On Wed, 28 Nov 2001, Vicktor wrote:
Hello All,
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...
May be it posiible in 7.2?Don't think so. You need those functions and noone has written
them officially.The former is easy, something like:
create function text(bool) returns text as 'select case when $1 then
''true'' else ''false'' end;' language 'sql';should suffice.
I'm not entirely sure this is entirely safe for the latter, but you can
try :)create function numericout(numeric) returns int as 'numeric_out' language
'internal';
create function text(numeric) returns text as 'select
textin(numericout($1));' language 'sql';---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
Vicktor writes:
Why not exists functions for convert any type to text?
I can't find text(bool), text(numeric) ...
Just because *some* mapping between data types exists it doesn't mean it's
the sound, well-defined, be-all-end-all. For instance, one might think
that TRUE => 't' and FALSE => 'f' is a reasonable bool=>text conversion,
but the first person you'll run into will claim that 1 and 0 is better,
and the second person will say that the answer should be locale-dependent.
So instead of bothering with this you get to make your own choice with
CASE WHEN value THEN 'value if true' ELSE 'value if false' END
The issues are similar with numeric=>text, but the to_char() family of
functions should be able to solve all your problems in this area.
--
Peter Eisentraut peter_e@gmx.net