Re: Rework of collation code, extensibility
От | Peter Eisentraut |
---|---|
Тема | Re: Rework of collation code, extensibility |
Дата | |
Msg-id | 197adf1b-7012-891d-0277-ab0898cca647@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: Rework of collation code, extensibility (Jeff Davis <pgsql@j-davis.com>) |
Ответы |
Re: Rework of collation code, extensibility
|
Список | pgsql-hackers |
On 01.02.23 00:33, Jeff Davis wrote: > On Tue, 2023-01-31 at 11:40 +0100, Peter Eisentraut wrote: >> I don't know to what extent this depends on the abbreviated key GUC >> discussion. Does the rest of this patch set depend on this? > > The overall refactoring is not dependent logically on the GUC patch. It > may require some trivial fixup if you eliminate the GUC patch. > > I left it there because it makes exploring/testing easier (at least for > me), but the GUC patch doesn't need to be committed if there's no > consensus. I took another closer look at the 0002 and 0003 patches. The commit message for 0002 says "Also remove the TRUST_STRXFRM define", but I think this is incorrect, as that is done in the 0001 patch. I don't like that the pg_strnxfrm() function requires these kinds of repetitive error checks: + if (rsize != bsize) + elog(ERROR, "pg_strnxfrm() returned unexpected result"); This could be checked inside the function itself, so that the callers don't have to do this themselves every time. I don't really understand the 0003 patch. It's a lot of churn but I'm not sure that it achieves more clarity or something. The new function pg_locale_deterministic() seems sensible. Maybe this could be proposed as a separate patch. I don't understand the new header pg_locale_internal.h. What is "internal" and what is not internal? What are we hiding from whom? There are no code comments about this AFAICT. pg_locale_struct has new fields + char *collate; + char *ctype; that are not explained anywhere. I think this patch would need a bit more explanation and commenting.
В списке pgsql-hackers по дате отправления: