From: | Karel Zak <zakkr(at)zf(dot)jcu(dot)cz> |
---|---|
To: | pgsql-patches <pgsql-patches(at)postgreSQL(dot)org> |
Subject: | encoding names v2. |
Date: | 2001-08-22 13:10:58 |
Message-ID: | 20010822151058.F17272@zf.jcu.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Hi,
all are almost same as in last version of this patch. Here are new
changes:
- aliases cyrillic, cp819, ibm819, isoir100x, l1-4 are removed
- KOI8 is KOI8-R in *all* functions, maps, etc.
- WIN is window-1251 (WIN1251) --- // ---
- ALT is ALT :-)
- UNICODE is utf-8
- PG_ prefix is used for all SQL_ASCII and the others
- fixed bug with --enable-unicode-conversion
- getdatabaseencoding() is compatible with old versions, but
in the code is commented as deprecated.
- getdbencoding() is new function that return correct encoding names
test2=# select getdatabaseencoding(), getdbencoding();
getdatabaseencoding | getdbencoding
---------------------+---------------
LATIN2 | ISO-8859-2
(1 row)
- pg_encoding_to_char() and other routines return new names! Only
for getdatabaseencoding() we keep back compatibility - needful for
JDBC.
- all encoding names use '-'. I hope we will never see a problem with
it and some operator. Encoding names must be used as quoted string.
Only for SQL_ASCII is used '_', because I see that JDBC has hardcoded
"pg_encoding_to_char(1) = 'SQL_ASCII'" :-(((
- the ./configure.in:
* use new encoding names too for --enable-multibyte
* define MULTIBYTE that handle default encoding id
* define MULTIBYTE_NAME that handle default encoding name (neeful
for initdb)
Note: old code use same names for macros and for encoding names, but
now it's in Makefile.global:
MULTIBYTE = PG_KOI8R /* id */
MULTIBYTE_NAME = "KOI8-R" /* name */
- the backend's createdb() function check correct BE encoding (here was
bug)
- 'initdb' check if default template encoding is correct for backend DB.
In the old code it's in initdb very hardcoded. I add to pg_encoding
option '-b' that check if encoding is correct for backend DB (means
encoding is not client only). It's better than
if [ $MULTIBYTEID -gt 31 ]
^^^^^^
in scripts.
For example (Big5 is client only encoding):
$ pg_encoding Big5
16
$ pg_encoding -b Big5
$
- initdb use MULTIBYTE_NAME and "pg_encoding -b"
- ODBC works with old and new names for Shift_JIS and Big5
- the patch doesn't contain docs about encoding names... later :-)
Note for CVS commit:
following files are renamed:
src/utils/mb/Unicode/KOI8_to_utf8.map --> src/utils/mb/Unicode/KOI8R_to_utf8.map
src/utils/mb/Unicode/WIN_to_utf8.map --> src/utils/mb/Unicode/WIN1251_to_utf8.map
src/utils/mb/Unicode/utf8_to_KOI8.map --> src/utils/mb/Unicode/utf8_to_KOI8R.map
src/utils/mb/Unicode/utf8_to_WIN.map --> src/utils/mb/Unicode/utf8_to_WIN1251.map
new file:
src/utils/mb/encname.c
removed file:
src/utils/mb/common.c
The patch doesn't contain large configure script, but only configure.in.
Please before "cvs commit" do autoconf!
Thanks for all suggestion.
New comments?
Karel
--
Karel Zak <zakkr(at)zf(dot)jcu(dot)cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
Attachment | Content-Type | Size |
---|---|---|
mb-08222001.patch.gz | application/x-gzip | 20.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2001-08-22 13:20:04 | Re: [PATCHES] patch for jdbc BigDecimal bug |
Previous Message | Barry Lind | 2001-08-22 11:03:33 | patch for jdbc BigDecimal bug |