mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-27 07:21:09 +08:00
.. | ||
src | ||
TODO.detail | ||
bug.template | ||
FAQ | ||
FAQ_AIX | ||
FAQ_BSDI | ||
FAQ_DEV | ||
FAQ_german | ||
FAQ_HPUX | ||
FAQ_MSWIN | ||
FAQ_QNX4 | ||
FAQ_SCO | ||
FAQ_Solaris | ||
internals.ps | ||
KNOWN_BUGS | ||
Makefile | ||
MISSING_FEATURES | ||
README.mb.big5 | ||
README.mb.jp | ||
TODO |
PostgreSQL 7.1 multi-byte (MB) support README 2001/1/6 $B:n@.(B $B@P0fC#IW(B ishii@postgresql.org http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B"#$O$8$a$K(B PostgreSQL $B$K$*$1$k%^%k%A%P%$%H%5%]!<%H$O0J2<$N$h$&$JFCD'$r;}$C$F$$$^$9!%(B 1. $B%^%k%A%P%$%HJ8;z$H$7$F!$F|K\8l!$Cf9q8l$J$I$N3F9q$N(B EUC$B!$(BUnicode$B!$(B mule internal code, ISO-8859-* $B$,%G!<%?%Y!<%9:n@.;~$KA*Br2DG=!%(B $B%G!<%?%Y!<%9$K$O$3$N%3!<%I$N$^$^3JG<$5$l$^$9!%(B 2. $B%F!<%V%kL>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=(B($B$?$@$7!$(BOS $B$,%^%k%A%P%$%H(B $B$N%U%!%$%kL>$r5v$7$F$$$k$3$H$,I,MW(B) 3. $B%+%i%`L>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=(B 4. $B%G!<%?$=$N$b$N$K$b%^%k%A%P%$%HJ8;z$,;HMQ2DG=(B 5. $B%^%k%A%P%$%HJ8;z$N@55,I=8=8!:w$,;HMQ2DG=(B 6. $B%^%k%A%P%$%HJ8;z$N(B LIKE $B8!:w$,;HMQ2DG=(B 7. character_length(), position(), substring() $B$G$N%^%k%A%P%$%H(B $B%5%]!<%H(B 8. $B%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$,%P%C%/%(%s%IB&$H0[$k>l9g$K!$(B $B<+F0E*$K%3!<%IJQ49$r9T$J$$$^$9!%(B $B"#%$%s%9%H!<%k(B $B%G%U%)%k%H$N%3%s%U%#%.%e%l!<%7%g%s$G$O(B PostgreSQL $B$O%^%k%A%P%$%H$r(B $B%5%]!<%H$7$F$$$^$;$s!%%^%k%A%P%$%H%5%]!<%H$rM-8z$K$9$kJ}K!$r@bL@$7$^$9!%(B $B$?$H$($PF|K\8l(B EUC $B$r<g$KMxMQ$9$k>l9g$O!$(Bconfigure $B5/F0;~$K0J2<$N$h(B $B$&$K;XDj$7$^$9!%(B % ./configure --enable-multibyte=EUC_JP UNICODE$B$HB>$N%(%s%3!<%G%#%s%0$H$NAj8_JQ495!G=$rMxMQ$9$k>l9g$O!$99$K(B --enable-unicode-conversion $B%*%W%7%g%s$rDI2C$7$F$/$@$5$$(B(7.1$B0J9_$GMx(B $BMQ2DG=(B)$B!%(B $B%(%s%3!<%G%#%s%0$H$7$F$O(B EUC_JP $B$NB>!$0J2<$,;XDj$G$-$^$9!%(B SQL_ASCII ASCII EUC_JP $BF|K\8l(B EUC EUC_CN GB $B$r%Y!<%9$K$7$?CfJ8(BEUC$B!%(Bcode set 2 $B$O(B SS2+2$B%P%$%H%3!<%I(B = 3$B%P%$%HI=8=$G$9!%(B EUC_KR $B4Z9q8l(B EUC$B!%(B EUC_TW $BBfOQ$N(B EUC$B!%(Bcode set 2 $B$O(B SS2+$BLLHV9f(B+2$B%P%$%H%3!<%I(B = 4$B%P%$%HI=8=$G$9!%(B UNICODE UTF-8$B!%$?$@$7%5%]!<%H$9$k$N$O(B UCS-2 $B$NHO0O!$(B $B$9$J$o$A(B 0xffff $B$^$G$G$9!%(B MULE_INTERNAL mule $B$NFbIt%3!<%I!%$?$@$7!$(BType N $B$NITDjD9J8;z$O(B $B%5%]!<%H$7$F$$$^$;$s!%(B LATIN* ISO8859 Latin $B%7%j!<%:!%(B* $B$O(B 1 $B$+$i(B 5 $B$^$G;XDj(B $B$G$-$^$9!%(B $B%-%j%kJ8;z(B KOI8(KOI8-R), WIN(CP1251), ALT(CP866)$B$r%5%]!<%H(B $B$7$F$$$^$9!%$b$A$m$s(B ISO 8859-5 $B$b;HMQ2DG=$G$9!%(B $B$3$N>l9g!$(B"LATIN5" $B$H$7$F;XDj$7$F2<$5$$!%(B $BA*Br$NL\0B$H$7$F$O!$1Q8l$HF|K\8l$7$+;H$o$J$$>l9g$O(B EUC_JP($BF1MM$K!$Cf(B $B9q8l$7$+;H$o$J$$>l9g$O(B EUC_CN... $B$J$I$H$J$j$^$9(B)$B!$$=$NB>$N8@8l$b;H$$$?(B $B$$>l9g$O(B UNICODE $B$b$7$/$O(B MULE_INTERNAL $B$H$J$k$G$7$g$&!%(B $B%(%s%3!<%G%#%s%0$r>JN,$7$?>l9g!$%G%U%)%k%HCM$H$7$F(B SQL_ASCII $B$,:NMQ(B $B$5$l$^$9!%(B $B$J$*!$(Bconfigure $B$GA*Br$7$?%(%s%3!<%G%#%s%0$O!$$"$/$^$G(B initdb $B$N$?$a$N(B $B%G%U%)%k%HCMDxEY$N0UL#$7$+$"$j$^$;$s(B(initdb $B$G$O0z?t$G%(%s%3!<%G%#%s%0$,(B $B;XDj$G$-$^$9(B)$B!%$7$?$,$C$F!$0[$J$k%(%s%3!<%G%#%s%0$r;HMQ$9$k$?$a$K(B $B$o$6$o$6(B PostgreSQL $B$r%j%3%s%Q%$%k$9$kI,MW$"$j$^$;$s!%(B initdb $B$O(B shell script $B$J$N$G!$%G%U%)%k%H$N%(%s%3!<%G%#%s%0$O(B script $B$r(B $BE,Ev$J%(%G%#%?$GJT=8$9$k$3$H$K$h$j4JC1$KJQ99$G$-$^$9!%(Binitdb $B$N(B 42$B9TL\(B $BIU6a$K!$(B MULTIBYTE=EUC_JP $B$N$h$&$J9T$,$"$k$N$G!$(B= $B0J9_$r4uK>$9$k%(%s%3!<%G%#%s%0$KJQ$($k$@$1$G$9!%(B $BCm0U!'(BMULE_INTERNAL $B$rA*$V$H!$$?$/$5$s$NJ8;z=89g$KBP1~$G$-$FJXMx$G$9(B $B$,!$@55,I=8=$GJ#?t$NJ8;z=89g$K$^$?$,$k$h$&$JHO0O;XDj(B($B$?$H$($P!$(B[a-$BHO(B] $B$H$+!$(B[abc$BHO0O(B]$B$N$h$&$J(B)$B$O;H$($^$;$s!%J#?t$NHO0O;XDj$G0[$J$kJ8;z=89g(B $B$r;H$&$N$O9=$$$^$;$s(B($B$?$H$($P(B [abc][$BHO(B-$B0O(B])$B!%$^$?!$(B[^a] $B$N$h$&$JI=8=(B $B$O!$(B"a" $B$NB0$9$kJ8;z=89g(B($B$3$N>l9g!$(BUS-ASCII)$B$K$*$$$F(B "a" $B0J30$G$"$k(B $B$3$H$rI=$7$^$9!%7h$7$F4A;z$dJ?2>L>$J$I(B "a" $B0J30$r$9$Y$FI=$9$o$1$G$O(B $B$J$$$3$H$KCm0U$7$F2<$5$$!%(B $B%$%s%9%H!<%k$O(B --enable-multibye $B$J$7$N>l9g$HF1MM$K9T$J$$$^$9!%%$%s(B $B%9%H!<%k$N>\:Y$O(B INSTALL $B$H$$$&%F%-%9%H%U%!%$%k$r8fMw2<$5$$!%$^$?!$(B http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B$G$b4JC1$J%$%s%9%H!<(B $B%kJ}K!$r>R2p$7$F$$$^$9!%(B $B"#(Binitdb/createdb/create database $B$K$*$1$k%(%s%3!<%G%#%s%0$N;XDj$K$D$$$F(B initdb $B$G$O0J2<$N%*%W%7%g%s$G%(%s%3!<%G%#%s%0$,;XDj$G$-$^$9!%(B -E $B%(%s%3!<%G%#%s%0(B --encoding=$B%(%s%3!<%G%#%s%0(B $B$3$3$G;XDj$7$?%(%s%3!<%G%#%s%0$O!$0J8e(B createdb/create database $B$G%((B $B%s%3!<%G%#%s%0$r>JN,$7$?>l9g$K@_Dj$5$l$k%(%s%3!<%G%#%s%0$K$J$j$^$9!%(B -E $B$^$?$O(B --encoding $B%*%W%7%g%s$r>JN,$7$?>l9g$O!$(Bconfigure $B$G;XDj$7(B $B$?%(%s%3!<%G%#%s%0$,:NMQ$5$l$^$9!%(B createdb $B$G$O0J2<$N%*%W%7%g%s$G%(%s%3!<%G%#%s%0$,;XDj$G$-$^$9!%(B -E $B%(%s%3!<%G%#%s%0(B --encoding=$B%(%s%3!<%G%#%s%0(B create database $B$G$O0J2<$N%*%W%7%g%s$G%(%s%3!<%G%#%s%0$,;XDj$G$-$^$9!%(B CREATE DATABASE dbanme WITH ENCODING = '$B%(%s%3!<%G%#%s%0(B'; LOCATION $B$rF1;~$K;XDj$9$k>l9g$O0J2<$N$h$&$K$J$j$^$9!%(B CREATE DATABASE dbanme WITH LOCATION = 'path' ENCODING = '$B%(%s%3!<%G%#%s%0(B'; createdb/create database $B$G$O!$%(%s%3!<%G%#%s%0;XDj$r>JN,$7$?>l9g$O!$(Binitdb $B$G;XDj$7$?%(%s%3!<%G%#%s%0$,:NMQ$5$l$^$9!%$3$l$O!$(Binitdb $B$,:n@.$9$k(B $B%F%s%W%l!<%H%G!<%?%Y!<%9(B(template1)$B$N(B encoding $B%"%H%j%S%e!<%H$r7Q>5(B $B$9$k$+$i$G$9!%(B $B%G!<%?%Y!<%9$N%(%s%3!<%G%#%s%0$O!$(Bpsql -l$B!$(Bpsql $B$N(B \l $B$G;2>H$G$-$^$9!%(B $ psql -l List of databases Database | Owner | Encoding ---------------+---------+--------------- euc_cn | t-ishii | EUC_CN euc_jp | t-ishii | EUC_JP euc_kr | t-ishii | EUC_KR euc_tw | t-ishii | EUC_TW mule_internal | t-ishii | MULE_INTERNAL regression | t-ishii | SQL_ASCII template1 | t-ishii | EUC_JP test | t-ishii | EUC_JP unicode | t-ishii | UNICODE (9 rows) $B"#%U%m%s%H%(%s%I$H%P%C%/%(%s%I$N<+F0%(%s%3!<%G%#%s%0JQ49$K$D$$$F(B $B%P%C%/%(%s%I(B($B%G!<%?%Y!<%9(B)$B$H(B psql $B$J$I$N%U%m%s%H%(%s%I$N%(%s%3!<%G%#(B $B%s%0$O0lCW$7$F$$$k$N$,86B'$G$9$,!$$$$/$D$+$N%(%s%3!<%G%#%s%0$K$D$$$F(B $B$O%P%C%/%(%s%I$H%U%m%s%H%(%s%I$N4V$G0[$J$k$b$N$r;HMQ$9$k$3$H$,$G$-$^(B $B$9!%$3$N>l9g!$<+F0E*$K%P%C%/%(%s%I$G%(%s%3!<%G%#%s%0JQ49$,9T$o$l$^$9!%(B $B%P%C%/%(%s%I$N%(%s%3!<%G%#%s%0(B $B5vMF$5$l$k%U%m%s%H%(%s%I$N(B $B%(%s%3!<%G%#%s%0(B ---------------------------------------------------------------- EUC_JP EUC_JP, SJIS, UNICODE EUC_TW EUC_TW, BIG5, UNICODE LATIN1,3,4 LATIN1,3,4, UNICODE LATIN2 LATIN2, WIN1250, UNICODE LATIN5 LATIN5, WIN, ALT, UNICODE MULE_INTERNAL EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, BIG5, LATIN1$B$+$i(B5, WIN, ALT, WIN1250 UNICODE EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, BIG5, LATIN1$B$+$i(B5, WIN, ALT, WIN1250 ---------------------------------------------------------------- * UNICODE$B$r<+F0%(%s%3!<%G%#%s%0JQ49$NBP>]$K$9$k>l9g$O!$(B --enable-unicode-conversion $B%*%W%7%g%s(Bconfigure$B;~$KDI2C$7$F$/$@$5$$!%(B $B%P%C%/%(%s%I$H%U%m%s%H%(%s%I$N%(%s%3!<%G%#%s%0$,0[$J$k>l9g!$$=$N$3$H(B $B$r%P%C%/%(%s%I$KEA$($kI,MW$,$"$j$^$9!%$=$N$?$a$NJ}K!$,$$$/$D$+$"$j$^(B $B$9!%(B o psql $B$N(B \encoding $B%3%^%s%I$r;H$&J}K!(B psql$B$G$O!$(B\encoding$B%3%^%s%I$r;H$C$FF0E*$K%U%m%s%H%(%s%IB&$NJ8;z%3!<(B $B%I$r@ZBX$($k$3$H$,$G$-$^$9!%Nc(B: \encoding SJIS o libpq $B$N4X?t(B PQsetClientEncoding $B$r;H$&J}K!(B 7.0 $B$+$i?7$7$$(B libpq $B4X?t(B PQsetClientEncoding $B$,DI2C$5$l$F$$$^$9!%(B PQsetClientEncoding(PGconn *conn, const char *encoding) $B$3$N4X?t$r;H$($P!$%3%M%/%7%g%sKh$K%(%s%3!<%G%#%s%0$r@ZBX$($k$3$H$,$G(B $B$-$^$9!%8=:_$N%(%s%3!<%G%#%s%0$NLd$$9g$o$;$O(B int PQclientEncoding(const PGconn *conn) $B$G$9!%(B o $B4D6-JQ?t(B PGCLIENTENCODING $B$r;H$&J}K!(B $B>e5-J}K!$GBP1~$G$-$J$$>l9g!$$"$k$$$O%U%m%s%H%(%s%I$G;H$o$l$k%(%s%3!<(B $B%G%#%s%0$,$"$i$+$8$aJ,$+$C$F$$$k>l9g$O4D6-JQ?t(B PGCLIENTENCODING $B$r;H(B $B$&$N$,JXMx$G$9!%$3$NJ}K!$O99$KBg$-$/(B2$B$D$KJ,$+$l$^$9!%(B (1) postmaster $B5/F0;~$K4D6-JQ?t$r@_Dj$9$kJ}K!(B $B$9$Y$F$N%/%i%$%"%s%H(B($B%U%m%s%H%(%s%I(B)$B$,F1$8%(%s%3!<%G%#%s%0$r;H$&$N$,(B $BJ,$+$C$F$$$k>l9g!$(Bpostmaster $B5/F0;~$K4D6-JQ?t(B PGCLIENTENCODING $B$r@_(B $BDj$7$^$9!%$3$N>l9g$G$b!$(B(2)$B$NJ}K!$G8D!9$N%/%i%$%"%s%HKh$KJL$N%(%s%3!<(B $B%G%#%s%0$r@_Dj$9$k$3$H$,$G$-$^$9!%(B (2) $B%/%i%$%"%s%H!$%U%m%s%H%(%s%IKh$K%(%s%3!<%G%#%s%0$r@_Dj$7$?$$>l9g(B $B$3$N>l9g$O$=$N%U%m%s%H%(%s%I(B($B$?$H$($P(B psql)$B$r5/F0$9$kA0$K4D6-JQ?t(B PGCLIENTENCODING $B$r@_Dj$7$^$9!%(B o set client_encoding $B%3%^%s%I$r;H$&J}K!(B $B>e5-(B(2)$B$NJ}K!$O!$(Blibpq $B$r;H$C$F$$$J$$(B JDBC $B$d(B ODBC $B$G$O;HMQ$G$-$^$;(B $B$s!%$3$N>l9g!$(BSQL$B%3%^%s%I$G$"$k(B set client_encoding $B%3%^%s%I$rMxMQ$7(B $B$^$9!%Nc!'(B set client_encoding to 'sjis'; $B"#8=:_@_Dj$5$l$F$$$k%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$rD4$Y$k(B $B8=:_@_Dj$5$l$F$$$k%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$O(B show client_encoding; $B$G;2>H$G$-$^$9!%(B $B"#%G%U%)%k%H$N%(%s%3!<%G%#%s%0$X$NI|5"(B SQL$B%3%^%s%I(B: reset client_encoding; $B$O!$%G%U%)%k%H$N%U%m%s%H%(%s%I%(%s%3!<%G%#%s%0@_Dj$KI|5"$5$;$^$9!%(B postmaster$B$rN)$A>e$2$k$H$-$K4D6-JQ?t(B PGCLIENTENCODING $B$,@_Dj$5$l$F$$(B $B$k$H$=$N%(%s%3!<%G%#%s%0$K!$$=$&$G$J$1$l$P%G!<%?%Y!<%9$N%(%s%3!<%G%#(B $B%s%0$HF1$8$K$J$j$^$9!%(B $B"#%(%s%3!<%G%#%s%0JQ49ITG=$N>l9g$N=hM}(B $B%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0$H%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0(B $B$,$$$D$bAj8_JQ49$G$-$k$H$O8B$j$^$;$s!%6KC<$JOC!$%P%C%/%(%s%IB&$,(B EUC_JP $B$J$N$K!$%U%m%s%H%(%s%IB&$,(B EUC_KR $B$@$C$?$i$I$&$J$k$G$7$g$&!%(B $B$3$N>l9g(B PostgreSQL $B$OJQ49$G$-$J$$%3!<%I$r(B 16$B?JI=8=$KJQ49$7$^$9!%(B $B$?$H$($P!$(B"(bdae)" $B$N$h$&$K!%$J$*!$$3$N(B 16$B?JI=8=$O(B mule internal code $B$N%3!<%I$G$"$k$3$H$KCm0U$7$F2<$5$$!%$3$l$O!$D>@\%U%m%s(B $B%H%(%s%I(B <--> $B%P%C%/%(%s%I$N%(%s%3!<%G%#%s%0$rJQ49$9$k$N$G$O$J$/!$0l(B $BEYFbItI=8=$G$"$k(B mule internal code $B$r7PM3$7$F$$$k$?$a$G$9!%(B $B"#(BSJIS$B%f!<%6Dj5AJ8;z$X$NBP1~(B 7.0 $B$+$i(B SJIS$B%f!<%6Dj5AJ8;z(B (UDC) $B$KBP1~$7$F$$$^$9!%(BUDC $B$r$I$&07$&$+(B $B$H8@$&$3$H$K$D$$$FCf>r$5$s(B(nak@email.com)$B$+$iLdBjDs5/$H>\:Y$J2r@b$r(B $BD:$-$^$7$?$N$G!$;29M$N$?$a$K$3$N%I%-%e%a%s%H$N:G8e$KIU$1$F$*$-$^$9!%(B $B$^$?!$$3$NLdBj$K$D$$$F$O!$(BPostgreSQL$BF|K\8l%a!<%j%s%0%j%9%H$N(B [pgsql-jp 12288] (1999/12/17$BIU(B)$B$H(B [pgsql-jp 12486] (2000/1/5$BIU(B) $B$+$i(B $B;O$^$k%9%l%C%I$G5DO@$r8+$k$3$H$,$G$-$^$9(B($B%a!<%k$N%"!<%+%$%V$O(B http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B$G;2>H$G$-$^$9(B)$B!%(B $B$3$3$G$O!$$=$l$i$N5DO@$r$U$^$(!$4JC1$K2r@b$7$^$9!%(B PostgreSQL$B$G$O!$F|K\8l$r;HMQ$9$k:]$K%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0(B $B$r(B EUC_JP $B$^$?$O(B MULE_INTERNAL or Unicode $B$K$9$kI,MW$,$"$j$^$9!%(B MULE_INTERNAL $B$O(B EUC_JP $B$KJ8;z=89g$rI=$9%3!<%I$rIU$1$?$b$N$J$N$G!$K\(B $B<AE*$KF1$8$G$9!%$^$?!$(BUnicode <---> SJIS $BJQ49$O8=:_$N$H$3$m%5%]!<%H(B $B$5$l$F$$$^$;$s$N$GL5;k$7$^$9!%$7$?$,$C$F!$$3$3$G$O(B EUC_JP $B$H(B SJIS $B$N(B $BAj8_JQ49$N$_$r9M$($^$9!%(B $BM=HwCN<1(B $B0l8}$K(B EUC_JP $B$H$$$C$F$b!$<B:]$K$OCf?H$OJ#?t$NJ8;z=89g$+$i@.$jN)$C$F(B $B$$$^$9!%(B G0: JIS ROMAN (ASCII $B$H$[$\F1$8(B) G1: JIS X 0208 (JIS $B4A;z(B) G2: JIS X 0201 (1$B%P%$%H%+%J(B) G3: JIS X 0212 (JIS $BJd=u4A;z(B) $B0lJ}(B SJIS $B$O$3$N$&$A4pK\E*$K(B G0, G1, G2 $B$r%5%]!<%H$7$F$*$j!$(BG3 $B$O%5(B $B%]!<%H$7$F$$$^$;$s!%$7$?$,$C$F!$(BSJIS $B$O(B EUC_JP $B$NItJ,=89g$H$_$J$9$3(B $B$H$,$G$-!$<B:](B PostgreSQL 6.5 $B$^$G$O$3$N9M$($G<BAu$5$l$F$$$^$7$?!%(B $B$H$3$m$,!$(BWindows PC $B$N(B SJIS $B$N@$3&$G$O!$>e5-(B JIS $B5,3J$GDj5A$5$l$F$$(B $B$J$$J8;z%3!<%I$,0lItMxMQ$5$l$F$*$j!$$3$NItJ,(B (UDC) $B$O=>Mh(B PostgreSQL $B$G$OA4$/9MN8$5$l$F$$$^$;$s$G$7$?!%<B:](B UDC $B$r4^$`(B SJIS $B$r(B EUC_JP $B$K(B $BJQ49$9$k$H$-$KIT@5$JJQ49$,9T$o$l$F$$$^$7$?!%$=$3$G(B PostgreSQL 7.0 $B$G(B $B$O!$$^$:$3$NLdBj$r2r7h$9$k$3$H$K$7$^$7$?!%(B $B$^$?!$(BUDC $B$NMxMQJ}$K$D$$$F$OI8=`5,3J$N$h$&$J$b$N$O$"$j$^$;$s$,!$<B$O(B $B6H3&CDBN$G$N<h$j7h$a$,$"$j!$$$$o$f$k%G%U%!%/%H%9%?%s%@!<%I$J$i$PB8:_(B $B$9$k$3$H$,J,$+$j$^$7$?!%$=$3$G$3$l$K$D$$$F$b$G$-$k$@$1%5%]!<%H$9$k$3(B $B$H$K$7$^$7$?!%(B PostgreSQL 7.0 $B$G$N(B UDC $BBP1~$N<BAu(B (1) $B%f!<%6Dj5AJ8;zNN0h$O(B JIS $B$N%f!<%6Dj5AJ8;zNN0h$K%^%C%T%s%0$9$k!%(B SJIS $B$H(B EUC_JP $B$G(B1$BBP(B1$B$NBP1~$K$J$j$^$9!%(B - SJIS $B%f!<%6Dj5AJ8;zNN0h(B A ($B2>>N(B) 95$B!A(B104 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G1 (JIS X 0208) 85$B!A(B95 $B6h(B - SJIS $B%f!<%6Dj5AJ8;zNN0h(B B ($B2>>N(B) 105$B!A(B114 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G3 (JIS X 0212) 85$B!A(B95 $B6h(B (2) IBM $B3HD%J8;zNN0h(B (SJIS 115$B!A(B120 $B6h(B) $BJQ49%F!<%V%k$K$h$C$F(B G1 (JIS X 0208)$B$H!$(BG3 (JIS X 0212)$B$KJQ49$5$l$^(B $B$9!%$J$*!$$3$NJQ49$K$*$$$F$O!$(BSJIS --> EUC_JP $B$GJQ49$7!$:F$S(B EUC_JP -- > SJIS $B$KJQ49$9$k$H85$N(B SJIS $B$KLa$i$J$$$3$H$,$"$j$^$9!%$^$?!$(BEUC_JP -- > SJIS $B$NJQ49$G$O!$$9$Y$F$NJ8;z$rJQ49$G$-$k$o$1$G$O$J$$$N$G!$$=$N>l(B $B9g$OJQ49ITG=J8;z$H$7$F!V".!W$KCV$-49$($^$9!%(B *$B6H3&CDBN$N<h$j7h$a$G$O!$JQ49ITG=J8;z$O!V<BAu0MB8!W$H$J$C$F$$$^$9$,!$(B Solaris $B$r$O$8$a!$B?$/$N%7%9%F%`$,!V".!W$rJQ49ITG=J8;z$K:NMQ$7$F$$$^(B $B$9!%(BPostgreSQL$B$b$3$l$K9g$o$;$^$7$?!%(B (3) NEC $BA*Dj(B IBM $B3HD%J8;zNN0h(B (SJIS 89$B!A(B92 $B6h(B) PostgreSQL 7.0$B$G$O$9$Y$FJQ49ITG=J8;z!V".!W$KCV$-49$($i$l$^$9!%(B PostgreSQL 7.0.1$B0J9_$G$O!$0lC6(B IBM $B3HD%J8;zNN0h$KJQ49$5$l$?8e!$(BG1 (JIS X 0208)$B$H!$(BG3 (JIS X 0212)$B$KJQ49$5$l$^$9!%(B $B<U<-!'(B o $BFA2H(B@$B;06(1?M"%5!<%S%9$5$s$+$i!$(BNEC $BA*Dj(B IBM $B4A;zBP1~%Q%C%A$rDs6!$7(B $B$F$$$?$@$-$^$7$?!%(B o $B3F<oJ8;z%;%C%H!$%3!<%I7O$K$D$$$F!$F|K\8l(B PostgreSQL $B%a!<%j%s%0%j%9%H(B $B$N%a%s%P$NJ}$+$i%"%I%P%$%9$rD:$-$^$7$?!%$3$3$K46<U$7$^$9!%(B $B$^$?!$(BSJIS $BBP1~$K$D$$$F$O!$;T@n(B@$B$*CcBg$5$s$N%Q%C%A$r;29M$K$5$;$F$$(B $B$?$@$-$^$7$?!%(B o SJIS$B%f!<%6Dj5AJ8;z(B (UDC) $B$r$I$&07$&$+$H8@$&$3$H$K$D$$$FCf>r$5$s(B (nak@email.com)$B$+$iLdBjDs5/$H>\:Y$J2r@b$rD:$-$^$7$?!%(B $B;29M(B1$B!'(B Pavel Behal$B;a$K$h$jDs6!$5$l$?(BWIN1250$B%5%]!<%H$G$9$,!$(BWindows$B4D6-$G$N(B $BMxMQ$N;EJ}$K$D$$$F;29M$K$J$k%I%-%e%a%s%H$,IUB0$7$F$$$k$N$G!$$3$3$KE:(B $BIU$7$F$*$-$^$9!%(B ------------------------------------------------------------------- Version: 0.91 for PgSQL 6.5 Author: Pavel Behal Revised by: Tatsuo Ishii Email: behal@opf.slu.cz Licence: The Same as PostgreSQL Sorry for my Eglish and C code, I'm not native :-) !!!!!!!!!!!!!!!!!!!!!!!!! NO WARRANTY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Instalation: ------------ 1) Change three affected files in source directories (I don't have time to create proper patch diffs, I don't know how) [PostgreSQL 6.5.1$B$G$O$3$N%9%F%C%W$OI,MW$"$j$^$;$s!%(B-- $B@P0f(B] 2) Compile with enabled locale and multibyte set to LATIN2 3) Setup properly your instalation, do not forget to create locale variables in your profile (environment). Ex. (may not be exactly true): LC_ALL=cs_CZ.ISO8859-2 LC_COLLATE=cs_CZ.ISO8859-2 LC_CTYPE=cs_CZ.ISO8859-2 LC_MONETARY=cs_CZ.ISO8859-2 LC_NUMERIC=cs_CZ.ISO8859-2 LC_TIME=cs_CZ.ISO8859-2 4) You have to start the postmaster with locales set! 5) Try it with Czech language, it have to sort 5) Install ODBC driver for PgSQL into your M$ Windows 6) Setup properly your data source. Include this line in your ODBC configuration dialog in field "Connect Settings:" : SET CLIENT_ENCODING = 'WIN1250'; 7) Now try it again, but in Windows with ODBC. Description: ------------ - Depends on proper system locales, tested with RH6.0 and Slackware 3.6, with cs_CZ.iso8859-2 loacle - Never try to set-up server multibyte database encoding to WIN1250, always use LATIN2 instead. There is not WIN1250 locale in Unix - WIN1250 encoding is useable only for M$W ODBC clients. The characters are on thy fly re-coded, to be displayed and stored back properly Important: ---------- - it reorders your sort order depending on your LC_... setting, so don't be confused with regression tests, they don't use locale - "ch" is corectly sorted only in some newer locales (Ex. RH6.0) - you have to insert money as '162,50' (with comma in aphostrophes!) - not tested properly ------------------------------------------------------------------- $B;29M(B2$B!'(BSJIS$B%f!<%6Dj5AJ8;z(B (UDC) $B$r$I$&07$&$+$H8@$&$3$H$K$D$$$FCf>r$5$s(B (nak@email.com)$B$+$i$$$?$@$$$?LdBjDs5/$H2r@b$G$9!%(B -------------------------- $B0zMQ3+;O(B ---------------------------------- --- 1. SJIS $B%3!<%I$NHO0O(B 1 $B%P%$%HL\(B 0x81 - 0x9F$B!$(B0xE0 - 0xFC 2 $B%P%$%HL\(B 0x40 - 0x7E$B!$(B0x80 - 0xFC $B$$$o$f$k!V30;zNN0h!W$NHO0O(B: - X0208 $B6&DL<+M3NN0h(B |-------------------- | 85 $B6h(B 0xEB40 $B!A(B |... |-------------------- | 89 $B6h(B 0xED40 $B!A(B ; 89$B!A(B92 $B6h$O(B |... ; $B!V(BNEC $BA*Dj(B IBM $B3HD%J8;zNN0h!W(B |-------------------- ; $B$H8F$P$l$k(B | 93 $B6h(B 0xEF40 $B!A(B | 94 $B6h(B 0xEF9F $B!A(B 0xEFFC - $B%f!<%6Dj5AJ8;zNN0h(B |-------------------- | 95 $B6h(B 0xF040 $B!A(B ; 95$B!A(B104 $B6h(B |... ; $B!V%f!<%6Dj5AJ8;zNN0h(B A$B!W(B($B2>>N(B) |-------------------- |105 $B6h(B 0xF540 $B!A(B ; 105$B!A(B114 $B6h(B |... ; $B!V%f!<%6Dj5AJ8;zNN0h(B B$B!W(B($B2>>N(B) |-------------------- |115 $B6h(B 0xFA40 $B!A(B ; 115$B!A(B120 $B6h$O0lHL$K(B |... ; $B!V(BIBM $B3HD%J8;zNN0h!W(B |120 $B6h(B ... ; $B$H8F$P$l$k(B |-------------------- --- 2. i-mode $BC<Kv$,;H$C$F$$$k?^7AJ8;z%3!<%I$NHO0O(B 0xF89F - 0xF8FC (112 $B6h(B) 0xF940 - 0xF949 (113 $B6h(B) 0xF972 - 0xF97E (113 $B6h(B) 0xF980 - 0xF990 (113 $B6h(B) 0xF9B0 (114 $B6h(B) --- 3. $B0lHLE*$J(B EUC $BF|K\8l%3!<%I$NDj5A(B G0 : [0x21-0x7E] ; $B$$$o$f$k(B JIS ROMAN G1 : [0xA1-0xFE] [0xA1-0xFE] ; JIS X 0208 G2 : 0x8E [0xA1-0xDF] ; JIS X 0201 $B%+%J(B G3 : 0x8F [0xA1-0xFE] [0x21-0x7E] ; JIS X 0212 $BJd=u4A;z(B --- [$BLdBjE@(B] SJIS 95$B!A(B120 $B6h$O(B JIS X0208 $B$K3:Ev$9$kNN0h$,B8:_$7$J$$(B $B$?$a!$$3$NNN0h$N(B EUC - SJIS $BJ8;z%3!<%IJQ49$O3F%Y%s%@$K(B $B$h$C$F0[$J$k$N$G$O$J$$$+!$$H$$$&$N$,@P0fMM$+$i$N$4;XE&(B $B$G$7$?!%(B --- [$B5DO@(B] $BD4::$N7k2L!$(BSJIS 95$B!A(B120 $B6h$r(B EUC $B$KJQ49$9$k$?$a$NI8=`E*$J(B $B%k!<%k$,$J$$$o$1$G$O$J$$!$$H$$$&$3$H$,$o$+$j$^$7$?!%>\:Y$O(B $B8e=R$N;29M;qNA$r$4Mw$$$?$@$/$H$7$F!$$3$3$G$O$=$N%k!<%k$r(B $B4JC1$K$4@bL@$$$?$7$^$9!%(B - SJIS $B%f!<%6Dj5AJ8;zNN0h(B A ($B2>>N(B) 95$B!A(B104 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G1 85$B!A(B95 $B6h(B $B$?$H$($P(B SJIS $B$N(B (95, 1) = 0xF040 $B$O(B EUC $B$N(B 0xF5A1 $B$K$J$j$^$9!%(B - SJIS $B%f!<%6Dj5AJ8;zNN0h(B B ($B2>>N(B) 105$B!A(B114 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G3 85$B!A(B95 $B6h(B $B$?$H$($P(B SJIS $B$N(B (105, 1) = 0xF540 $B$O(B EUC $B$N(B 0x8FF5A1 $B$K$J$j$^$9!%(B - IBM $B3HD%J8;zNN0h(B 115$B!A(B120 $B6h(B JIS X 0208 ($BF|K\8l(B EUC / G1)$B!$(BJIS X 0212 ($BF|K\8l(B EUC / G3) $B$K3:Ev$9$kJ8;z$,$"$k>l9g(B $B$O$=$NJ8;z$K%^%C%T%s%0!%$=$&$G$J$$>l9g$O(B $BF|K\8l(B EUC / G3 83$B!A(B84 $B6h$r!$6hE@%3!<%I$N>e0L(B $B$+$i=g$K3d$jEv$F$F$$$/(B ($BJQ49%F!<%V%kJ}<0(B) $B$3$N;EMM$O!$9-$/;H$o$l$F$$$k(B SJIS $B$H(B EUC $B$N%^%C%T%s%0$,%Y%s%@$K(B $B$h$C$F0[$J$k$?$a!$Aj8_1?MQ$N:]$KLdBj$K$J$C$F$$$k$3$H$+$i!$(B1996 $BG/$K(B OSF $BF|K\%Y%s%@6(5D2q$,8!F$:n@.$7$?Js9p=q$,%Y!<%9$K$J$C$F$$(B $B$k$h$&$G$9!%(B Solaris $B$N%I%-%e%a%s%H$K$O!V(BTOG $BF|K\%Y%s%@6(5D2q?d>)(B EUC$B!&%7%U%H(B JIS $B%3!<%IJQ49;EMM!W$K$b$H$E$/$H=q$$$F$"$j!$(BSolaris 2.6 $B$+$iF3F~(B $B$7$F$$$k$N$@$=$&$G!$;d$+$i8+$l$P;v<B>e$NI8=`$H9M$($F$bIT<+A3$G$O(B $B$J$$$H46$8$^$9!%(B $B$J$*!$>/$J$/$H$b(B 1996 $BG/Ev;~$K$*$$$F$O!$(BOracle $B$d(B Sybase $B$O(B SJIS $B$N%f!<%6Dj5A(B/$B%Y%s%@Dj5AJ8;zNN0h$r(B EUC $B$KJQ49$9$k:]!$H=JLIT(B $B2DG=J8;z$H$7$F07$C$F$$$k$i$7$$$H$$$&$3$H$bJdB-$7$F$*$-$^$9!%(B --- [$B;29M;qNA(B] // URL $B$,D9$$$N$G!$ESCf$G@Z$l$J$$$H$$$$$N$G$9$,(B... -$B!VF|K\8l(B EUC$B!&%7%U%H(B JIS $B%3!<%IJQ49;EMM$H%3!<%I7O<BBVD4::!W(B 1966, OSF $BF|K\%Y%s%@6(5D2q(B http://www.opengroup.or.jp/jvc/cde/sjis-euc.html -$B!VJ8;z%3!<%IJQ495,B'!W(B Solaris 7$B!$(BJFP $B%f!<%6!<%:%,%$%I(B http://docs.sun.com/ab2/coll.139.3/JFPUG/@Ab2PageView/11683?Ab2Lang=ja&Ab2Enc=euc-jp -$B!VF|K\8lJ8;z%3!<%I!W(B Solaris 7$B!$(BJFP $B%f!<%6!<%:%,%$%I(B http://docs.sun.com/ab2/coll.139.3/JFPUG/@Ab2PageView/879;td=5?Ab2Lang=ja&Ab2Enc=euc-jp // $BFf$N!V(B1$B!A(B20 $B6h!W$N5-=R$O$3$3$+$i$-$F$$$^$9!%(B --- -------------------------- $B0zMQ$3$3$^$G(B --------------------------------- $B2~DjMzNr!'(B 2000/1/6 * UNICODE$B$HB>$N%(%s%3!<%G%#%s%0$H$NAj8_JQ495!G=$rDI2C!%(B * 7.1$B$KH?1G$5$l$^$9!%(B 2000/5/20 * NEC $BA*Dj(B IBM $B4A;zBP1~$rDI2C$7$^$7$?!%$3$l$O(B $BFA2H(B@$B;06(1?M"%5!<%S%9(B $B$5$s$+$i$N(B contribute $B$G$9!%(B * $B$3$l$i$O!$(B7.0.1 $B$KH?1G$5$l$^$9!%(B 2000/3/22 * PQsetClientEncoding, PQclientEncoding $B$r(Blibpq $B4X?t$KDI2C!$(B $B%3%M%/%7%g%sKh$K%(%s%3!<%G%#%s%0$rJQ992DG=$K!%(B * SJIS $B%f!<%6Dj5AJ8;z(B (UDC) $B$X$NBP1~(B * ./configure --with-mb=EUC_JP $B$+$i(B ./configure --enable-multibyte=EUC_JP $B$KJQ99(B * SQL_ASCII $B$N(B regression test $BDI2C(B * $B$3$l$i$O(B 7.0 $B$KH?1G$5$l$^$9!%(B 1999/7/11 WIN1250(Windows$BMQ$N%A%'%38l(B)$B%5%]!<%H$rDI2C$7$^$7$?!%(B * WIN1250 $B$,%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$H$7$FMxMQ$G$-$k$h(B $B$&$K$J$j$^$7$?!%$3$N>l9g!$%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0$O(B LATIN2 $B$^$?$O(B MULE_INTERNAL $B$H$7$^$9!%(B (contributed by Pavel Behal) * backend/utils/mb/conv.c$B$K$*$1$k7?$NIT@09g$r=$@5$7$^$7$?!%(B (contributed by Tomoaki Nishiyama) * $B$3$l$i$O(B6.5.1$B$KH?1G$5$l$^$9!%(B 1999/3/23 $B%-%j%kJ8;z%5%]!<%HDI2CB>(B(6.5 $B$KH?1G:Q(B) * $B%(%s%3!<%G%#%s%0$H$7$F(B KOI8(KOI8-R), WIN(CP1251), ALT(CP866) $B$r(B $B%5%]!<%H$7$F$$$^$9!%$3$l$i$O!$%U%m%s%H%(%s%I!$%P%C%/%(%s%I!$(B $B$I$A$i$N%(%s%3!<%G%#%s%0$H$7$F$b;HMQ2DG=$G$"$j!$%(%s%3!<%G%#%s%0$N(B $BAj8_JQ49$,2DG=$G$9!%$^$?!$=>Mh$+$i%5%]!<%H$7$F$$$k(B ISO 8859-5 $B$b(B $BF1MM$K;HMQ2DG=$G$9!%(B $B%-%j%kJ8;z%5%]!<%H$O!$(BOleg Broytmann <phd@sun.med.ru> $B;a$N(B $B%j%/%(%9%H5Z$S6(NO$K$h$j<B8=$7$^$7$?!%$3$l$O!$=>Mh$+$i$"$k(B RCODE $B%5%]!<%H$N5!G=$r<h$j9~$`$b$N$G$b$"$j$^$9!%(B * MB $B$H(B locale $B$rF1;~$K;XDj$7$?>l9g$KBgJ8;z!?>.J8;z$rL5;k$7$?(B $B@55,I=8=8!:w$,@5>o$KF0:n$7$J$$%P%0$r=$@5(B 1999/1/26 Big5 $B%5%]!<%HDI2C(B(6.4.2-patched/6.5 $B$KH?1G:Q(B) * Big5 $B$,%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$H$7$FMxMQ$G$-$k$h(B $B$&$K$J$j$^$7$?!%$3$N>l9g!$%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0$O(B EUC_TW $B$^$?$O(B MULE_INTERNAL $B$H$7$^$9!%(B * EUC_TW $B$N(B regression test $B%1!<%9$rDI2C(B (contributed by Jonah Kuo <jonahkuo@mail.ttn.com.tw>) 1998/12/16 $BK\%I%-%e%a%s%H=$@5(B(6.4.2 $B$KH?1G:Q(B)$B!%(B * Makefile.custom $B$G(B MB=EUC_JP $B$J$I$H@_Dj$9$kJ}K!$O(B 6.4 $B0J9_(B $B%5%]!<%H$5$l$F$$$J$$$N$G:o=|$7$?!%(B * $BJ8;z%3!<%I(B $B"*(B $B%(%s%3!<%G%#%s%0!$%/%i%$%"%s%H"*%U%m%s%H%(%s%I(B $B%5!<%P"*%P%C%/%(%s%I(B $B$K$=$l$>$l8l6g$r=$@5!%(B 1998/12/15 6.4 $B8~$1%P%0=$@5%Q%C%A%j%j!<%9(B(6.4.2 $B$KH?1G:Q(B)$B!%(B * SQL_ASCII $B%5%]!<%H$N%P%0=$@5(B 1998/11/21 6.4 $B8~$1%P%0=$@5%Q%C%A%j%j!<%9(B(6.4.2 $B$KH?1G:Q(B)$B!%(B * BINARY CURSOR $B$NLdBj$r=$@5(B * pg_dumpall $B$N%P%0=$@5(B 1998/11/5 6.4 $B%j%j!<%9!%(B * pg_database $B$N(B encoding $B%+%i%`$,(B MB $B$,M-8z$G$J$$$H$-$K$b(B $BDI2C$5$l$k$h$&$K$J$C$?!%$=$N$?$a!$(BMB $B$,M-8z$G$J$$$H$-$K$O!$(B ASCII $B$N%(%s%3!<%G%#%s%0$rI=$9(B SQL_ASCII $B$r?7$7$$%(%s%3!<%G%#%s%0(B $B$H$7$FDI2C$7$?!%$3$l$K$H$b$J$$!$%(%s%3!<%G%#%s%0L>$KBP1~$9$k(B $B%(%s%3!<%G%#%s%0(BID$B$,(B SQL_ASCII $B$r(B 0 $B$H$9$kHV9f$KJQ99$K$J$C$?!%(B 1998/7/22 6.4 $B&A8~$1$K%Q%C%A$r%j%j!<%9!%(B * initdb/createdb/create database $B$G%P%C%/%(%s%IB&$N(B $B%(%s%3!<%G%#%s%0$r@_Dj$-$k5!G=<BAu!%$3$N$?$a!$%7%9%F%`%+%?%m(B $B%0$N(B pg_database $B$K?7$7$$%+%i%`(B encoding $B$rDI2C(B(MB$B$,M-8z$J;~$@$1(B) * copy $B$,(B PGCLIENTENCODING $B$KBP1~(B * SQL92 $B$N(B "SET NAMES" $B$r%5%]!<%H(B(MB$B$,M-8z$J;~$@$1(B) * LATIN2-5 $B$r%5%]!<%H(B * regression test $B$K(B unicode $B$N%F%9%H%1!<%9$rDI2C(B * MB $B@lMQ$N(B regression $B%F%9%H%G%#%l%/%H%j(B test/mb $B$rDI2C(B * $B%=!<%9%U%!%$%k$NCV$->l=j$rBgI}8+D>$7!%(BMB $B4X78$O(B include/mb, backend/utils/mb $B$KCV$/$h$&$K$7$?(B 1998/5/25 $B%P%0=$@5(B(mb_b3.patch $B$H$7$F(B pgsql-jp ML $B$K%j%j!<%9!$(B $BK\2H$G$O(B 6.4 snapshot $B$K<h$j9~$^$l$kM=Dj(B) 1998/5/18 $B5!G=DI2C!?%P%0=$@5(B(mb_b2.patch $B$H$7$F(B pgsql-jp ML $B$K%j%j!<%9!$(B $BK\2H$G$O(B 6.4 snapshot $B$K<h$j9~$^$l$kM=Dj(B) * $B4D6-JQ?t(B PGCLIENTENCODING $B$N%5%]!<%H!%%U%m%s%H%(%s%IB&$N(B $B%(%s%3!<%G%#%s%0$r;XDj$9$k!%8=:_!$(BSJIS, EUC_*, MULE_INTERNAL, LATIN1 $B$,;XDj$G$-$k!%$^$?!$(B set client_encoding to 'sjis'; $B$G$b2DG=(B * 8bit $BJ8;z$,EO$k$HLdBj$,5/$-$k2U=j$K$G$-$k$@$1BP1~(B 1998/4/21 $B5!G=DI2C!?%P%0=$@5(B(mb_b1.patch $B$H$7$F(B pgsql-jp ML $B$K%j%j!<%9!$(B $BK\2H$G$O(B 6.4 snapshot $B$K<h$j9~$^$l$F$$$k(B) * character_length(), position(), substring() $B$N%^%k%A%P%$%H(B $BBP1~(B * octet_length() $BDI2C(B $B"*(B initdb $B$N$d$jD>$7I,MW(B * configure $B$N%*%W%7%g%s$K(B MB $B%5%]!<%HDI2C(B (ex. configure --with-mb=EUC_JP) * EUC_KR $B$N(B regression test $BDI2C(B ("Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr> $B$5$sDs6!(B) * EUC_JP $B$N(B regression test $B$K(B character_length(), position(), substring(), octet_length() $BDI2C(B * regress.sh $B$N(B SystemV $B$K$*$1$kHs8_49@-=$@5(B * toupper(), tolower() $B$K(B 8bit $BJ8;z$,EO$k$HMn$A$k$3$H$,(B $B$"$k$N$r=$@5(B 1998/3/25 PostgreSQL 6.3.1 $B%j%j!<%9!$(BMB PL2 $B$,<h$j9~$^$l$k(B 1998/3/10 PL2 $B$r%j%j!<%9(B * EUC_JP, EUC_CN, MULE_INTERNAL $B$N(B regression test $B$rDI2C(B (EUC_CN $B$N%G!<%?$O(B he@sra.co.jp $B$5$sDs6!(B) * regexp $B$K$*$$$F!$(Bisalpha $B$J$I$K(B unsigend char $B0J30$NCM$,(B $BEO$i$J$$$h$&$K%,!<%I$r$+$1$k(B * $B1Q8l$N%I%-%e%a%s%H$rDI2C(B * MB $B$rDj5A$7$J$$>l9g$KH/@8$9$k%P%0$r=$@5(B 1998/3/1 PL1 $B$r%j%j!<%9(B $B0J>e!%(B