Re: cast to domain with default collation issue.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: cast to domain with default collation issue.
Дата
Msg-id 1432728.1653370431@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: cast to domain with default collation issue.  ("David G. Johnston" <david.g.johnston@gmail.com>)
Ответы Re: cast to domain with default collation issue.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
"David G. Johnston" <david.g.johnston@gmail.com> writes:
> On Monday, May 23, 2022, jian he <jian.universality@gmail.com> wrote:
>> CREATE DOMAIN testdomain AS text;
>> --asume the default collation is as per show LC_COLLATE;
>> – on my pc, it is C.UTF-8.
>> --So the testdomain will be collation "C.UTF-8"

> My reading of the docs say this is consistent with outcome #2.
> https://www.postgresql.org/docs/current/collation.html

Yeah.  The comments in parse_collate.c are clear that this behavior is
intentional:

        case T_CoerceToDomain:
            {
                /*
                 * If the domain declaration included a non-default COLLATE
                 * spec, then use that collation as the output collation of
                 * the coercion.  Otherwise allow the input collation to
                 * bubble up.  (The input should be of the domain's base type,
                 * therefore we don't need to worry about it not being
                 * collatable when the domain is.)
                 */

Perhaps this should be documented more clearly, but it's not obviously
wrong.  If the domain declaration doesn't include an explicit COLLATE
then casting to the domain doesn't create an explicit collation
requirement.  (That is, the domain *doesn't* have a specific
collation attached to it, any more than type text does.)

            regards, tom lane



В списке pgsql-general по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: cast to domain with default collation issue.
Следующее
От: Durumdara
Дата:
Сообщение: Re: Can I start Update row in After Insert trigger function?