RE: [PGdocs] fix description for handling pf non-ASCII characters
Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>
From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'jian he' <jian.universality@gmail.com>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-06-29T07:51:49Z
Lists: pgsql-hackers
Attachments
- v2_doc_fix.patch (application/octet-stream) patch v2
Dear Jian,
Thank you for checking my patch!
>
> in your patch:
> > printable ASCII characters will be replaced with a hex escape.
>
> My wording is not good. I think the result will be: ASCII characters
> will be as is, non-ASCII characters will be replaced with "a hex
> escape".
Yeah, your point was right. I have already said:
"anything other than printable ASCII characters will be replaced with a hex escape"
IIUC They have same meaning.
You might want to say the line was not good, so reworded like
"non-ASCII characters will be replaced with hexadecimal strings." How do you think?
> set application_name to 'abc漢字Abc';
> SET
> test16=# show application_name;
> application_name
> --------------------------------
> abc\xe6\xbc\xa2\xe5\xad\x97Abc
> (1 row)
>
> I see multi escape, so I am not sure "a hex escape".
Not sure what you said, but I could not find word "hex escape" in the document.
So I used "hexadecimal string" instead. Is it acceptable?
> to properly render it back to 'abc漢字Abc'
> here is how i do it:
> select 'abc' || convert_from(decode(' e6bca2e5ad97','hex'), 'UTF8') || 'Abc';
Yeah, your approach seems right, but I'm not sure it is related with us.
Just to confirm, I don't have interest the method for rendering non-ASCII characters.
My motivation of the patch was to document the the incompatibility noted in [1]:
>
Changed the conversion rules when non-ASCII characters are specified for ASCII-only
strings such as parameters application_name and cluster_name. Previously, it was
converted in byte units with a question mark (?), but in PostgreSQL 16, it is
converted to a hexadecimal string.
>
> I guess it's still painful if your application_name has non-ASCII chars.
I agreed that, but no one has recommended to use non-ASCII.
[1]: https://h50146.www5.hpe.com/products/software/oe/linux/mainstream/support/lcc/pdf/PostgreSQL16Beta1_New_Features_en_20230528_1.pdf
Best Regards,
Hayato Kuroda
FUJITSU LIMITED
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
doc: Fix descriptions related to the handling of non-ASCII characters
- 950e236e5069 16.1 landed
- 3ef18a90bdea 17.0 landed
-
pg_clean_ascii(): escape bytes rather than lose them
- 45b1a67a0fcb 16.0 cited
-
Make locale option behavior more consistent
- da5d4ea5aaac 16.0 cited