Skip site navigation (1) Skip section navigation (2)

encoding names v2.

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 (view raw or flat)
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: mb-08222001.patch.gz
Description: application/x-gzip (20.3 KB)

Responses

pgsql-patches by date

Next:From: Bruce MomjianDate: 2001-08-22 13:20:04
Subject: Re: [PATCHES] patch for jdbc BigDecimal bug
Previous:From: Barry LindDate: 2001-08-22 11:03:33
Subject: patch for jdbc BigDecimal bug

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group