Otherwise, all input expressions must have the same implicit collation > derivation or the default collation. If any non-default collation is > present, that is the result of the collation combination. Otherwise, the > result is the default collation. >
I think the above quote part can be used to explain the following examples. > CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "es_ES", c > text ); > SELECT a < 'foo' FROM test1; SELECT c < 'foo' FROM test1; But the *non-default* seems not that correct for me. Like a column if it does not mention anything, then the default value is null. So * create table test111( a tex*t) The default collation for column a is the same as the output of *show lc_collate*. so there is no *non-default? * On Tue, May 24, 2022 at 10:43 AM David G. Johnston < david.g.johns...@gmail.com> wrote: > On Monday, May 23, 2022, jian he <jian.universal...@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" >> ------------ >> >> => \d collate_test1 >> >> Table "test.collate_test1" >> >> Column | Type | Collation | Nullable | Default >> >> --------+---------+-----------+----------+--------- >> >> a | integer | | | >> >> b | text | en-x-icu | not null | >> >> ----------------------------------------------- >> >> My guess is that the following should be the same. >> >> >> > My reading of the docs say this is consistent with outcome #2. > > https://www.postgresql.org/docs/current/collation.html > > David J. > > -- I recommend David Deutsch's <<The Beginning of Infinity>> Jian