Thread: defining Your own sort order for already compiled PostgreSQL (because PSQL sort orders are incopatible with ASCII sort order for non -alpha characters)

I can't find in the documentation, if it is possible to define our own
sort order for already compiled PostgreSQL.
I need it, because the best for my now building application were be to
build sort with normal LATIN2 sort order (for non alphanumeric chars
compatible with ASCII sort order).
I saw in the "configure" file, that it is possible to define, what is
alpha, what is number and so on, but it is inpossible to administrators
of ready for use systems to - always recompile PostgreSQL for only one
application.
With greetings
Adam

Re: defining Your own sort order for already compiled PostgreSQL

From
Robin Iddon
Date:
Adam Radlowski wrote:
> I can't find in the documentation, if it is possible to define our own
> sort order for already compiled PostgreSQL.
> I need it, because the best for my now building application were be to
> build sort with normal LATIN2 sort order (for non alphanumeric chars
> compatible with ASCII sort order).
> I saw in the "configure" file, that it is possible to define, what is
> alpha, what is number and so on, but it is inpossible to
> administrators of ready for use systems to - always recompile
> PostgreSQL for only one application.
> With greetings
> Adam

Adam,

I am not sure I completely understand what you're trying to do -
however, initdb can set the locale for a cluster including setting
specific locales for collation (which is what I think you want to do).
I suppose you can invent your own locale if you need some special sort
order.

These choices are frozen for the cluster (except that you can change the
encoding for a specific database within the cluster, but that isn't
going to do what you want, which is change the sort order).

So, if you can re-run initdb then you can do what you want without
recompiling.

See "man initdb" ...

Hope this helps,

Robin


Re: defining Your own sort order for already compiled PostgreSQL

From
Adam Radlowski
Date:
Hello, Robin.
Thank You for Your answer.
What's going on:
Fox example, in old Paradox database system, It was possible to define
Your own sort order. There was for example many ready-for-use sort
definitions, like ASCII sort, DOS852,  DOS850. Every sort definition was
in one file. When You renamed this file as "PARADOX.SOR", Paradox used
it as default sort order (after restart of Paradox). It was possible to
make Your own sort definition file.
Very simmilar is situation, when we at the first time run "initdb", but
I don't know, how to make my own sort definition to use by "initdb".
There is many read-to-use (like in Paradox) and I (after reading of
docs) know, how to use them, but I want to define my own - not for
example de_DE or en_US or pl_PL, but adam_ADAM ;-) and use it for "initdb".
Becouse Hakan's answers didn't help me, so I decided to workaround this
problem, and - I suppose - with success (the idea looks good, but it is
not realised to the end yet).
I don't write more about my "workaround idea", becouse it is a lot to
write and I don't know, if it will be interesting for You (it was my
problem, not Yours ;-) ).
Greetings from Gdynia
Adam

Robin Iddon wrote:

> Adam Radlowski wrote:
>
>> I can't find in the documentation, if it is possible to define our
>> own sort order for already compiled PostgreSQL.
>> I need it, because the best for my now building application were be
>> to build sort with normal LATIN2 sort order (for non alphanumeric
>> chars compatible with ASCII sort order).
>> I saw in the "configure" file, that it is possible to define, what is
>> alpha, what is number and so on, but it is inpossible to
>> administrators of ready for use systems to - always recompile
>> PostgreSQL for only one application.
>> With greetings
>> Adam
>
>
> Adam,
>
> I am not sure I completely understand what you're trying to do -
> however, initdb can set the locale for a cluster including setting
> specific locales for collation (which is what I think you want to
> do).  I suppose you can invent your own locale if you need some
> special sort order.
>
> These choices are frozen for the cluster (except that you can change
> the encoding for a specific database within the cluster, but that
> isn't going to do what you want, which is change the sort order).
>
> So, if you can re-run initdb then you can do what you want without
> recompiling.
>
> See "man initdb" ...
>
> Hope this helps,
>
> Robin
>
>
>