On Jun29, 2011, at 23:44 , Peter Eisentraut wrote: > On ons, 2011-06-29 at 10:15 -0700, David E. Wheeler wrote: >> On Jun 29, 2011, at 10:13 AM, Florian Pflug wrote: >>> Because there might be more than one range type for a >>> base type. Say there are two range types over text, one >>> with collation 'de_DE' and one with collation 'en_US'. >>> What would the type of >>> range('foo', 'foooo') >>> be? >> >> The one that corresponds to the current LC_COLLATE setting. > > Yes, or more generally, we have logic that determines, for example, what > collation to use for > > 'foo' < 'foooo' > > The same logic can be used to determine what collation to use for > > range('foo', 'foooo') > > (In fact, if you implement range() as a user-space function, that will > happen automatically.)
I don't think it will - as it stands, there isn't a single collatable type RANGE but instead one *distinct* type per combination of base type, btree opclass and collation. The reasons for that were discussed at length - the basic argument for doing it that way was to make a range represent a fixed set of values. There's also no guarantee that a range type with collation LC_COLLATE even exists. best regards, Florian Pflug -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers