Re: Pre-proposal: unicode normalized text
От
Nico Williams
Тема
Re: Pre-proposal: unicode normalized text
Дата
Msg-id
ZR2fnTPDwPb0IamC@ubby21
Ответ на
Pre-proposal: unicode normalized text (Jeff Davis)
Список
Дерево обсуждения
Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Thomas Munro <thomas.munro@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text David Rowley <dgrowleyml@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Thomas Munro <thomas.munro@gmail.com>
Re: Pre-proposal: unicode normalized text David Rowley <dgrowleyml@gmail.com>
Re: Pre-proposal: unicode normalized text John Naylor <johncnaylorls@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text "Daniel Verite" <daniel@manitou-mail.org>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Isaac Morland <isaac.morland@gmail.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Chapman Flack <chap@anastigmatix.net>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Chapman Flack <chap@anastigmatix.net>
Re: Pre-proposal: unicode normalized text Phil Krylov <phil@krylov.eu>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Isaac Morland <isaac.morland@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Isaac Morland <isaac.morland@gmail.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Isaac Morland <isaac.morland@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Peter Eisentraut <peter@eisentraut.org>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Tom Lane <tgl@sss.pgh.pa.us>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Matthias van de Meent <boekewurm+postgres@gmail.com>
Re: Pre-proposal: unicode normalized text Isaac Morland <isaac.morland@gmail.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Robert Haas <robertmhaas@gmail.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
Re: Pre-proposal: unicode normalized text Jeff Davis <pgsql@j-davis.com>
Re: Pre-proposal: unicode normalized text Nico Williams <nico@cryptonector.com>
On Tue, Sep 12, 2023 at 03:47:10PM -0700, Jeff Davis wrote: > The idea is to have a new data type, say "UTEXT", that normalizes the > input so that it can have an improved notion of equality while still > using memcmp(). A UTEXT type would be helpful for specifying that the text must be Unicode (in which transform?) even if the character data encoding for the database is not UTF-8. Maybe UTF8 might be a better name for the new type, since it would denote the transform (and would allow for UTF16 and UTF32 some day, though it's doubtful those would ever happen). But it's one thing to specify Unicode (and transform) in the type and another to specify an NF to normalize to on insert or on lookup. How about new column constraint keywords, such as NORMALIZE (meaning normalize on insert) and NORMALIZED (meaning reject non-canonical form text), with an optional parenthetical by which to specify a non-default form? (These would apply to TEXT as well when the default encoding for the DB is UTF-8.) One could then ALTER TABLE to add this to existing tables. This would also make it easier to add a form-preserving/form-insensitive mode later if it turns out to be useful or necessary, maybe making it the default for Unicode text in new tables. > Questions: > > * Would this be useful enough to justify a new data type? Would it be > confusing about when to choose one versus the other? Yes. See above. I think I'd rather have it be called UTF8, and the normalization properties of it to be specified as column constraints. > * Would cross-type comparisons between TEXT and UTEXT become a major > problem that would reduce the utility? Maybe when the database's encoding is UTF_8 then UTEXT (or UTF8) can be an alias of TEXT. > * Should "some_utext_value = some_text_value" coerce the LHS to TEXT > or the RHS to UTEXT? Ooh, this is nice! If the TEXT is _not_ UTF-8 then it could be converted to UTF-8. So I think which is RHS and which is LHS doesn't matter -- it's which is UTF-8, and if both are then the only thing left to do is normalize, and for that I'd take the LHS' form if the LHS is UTF-8, else the RHS'. Nico --
В списке pgsql-hackers по дате отправления