mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-27 07:21:09 +08:00
f554af0a9f
Hi, here are patches I promised (against 6.3.2): * character_length(), position(), substring() are now aware of multi-byte characters * add octet_length() * add --with-mb option to configure * new regression tests for EUC_KR (contributed by "Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr>) * add some test cases to the EUC_JP regression test * fix problem in regress/regress.sh in case of System V * fix toupper(), tolower() to handle 8bit chars note that: o patches for both configure.in and configure are included. maybe the one for configure is not necessary. o pg_proc.h was modified to add octet_length(). I used OIDs (1374-1379) for that. Please let me know if these numbers are not appropriate.
4.3 KiB
4.3 KiB
postgresql 6.3.2 multi-byte (MB) support README 1998/4/21 $B:n@.
$B@P0fC#IW
t-ishii@sra.co.jp
http://www.sra.co.jp/people/t-ishii/PostgreSQL/
$B$O$8$a$K!'
PostgreSQL $B$K$*$1$k%^%k%A%P%$%H%5%]!<%H$O0J2<$N$h$&$JFCD'$r;}$C$F$$$^$9!#
1.$B%^%k%A%P%$%HJ8;z$H$7$F!"F|K\8l!"Cf9q8l$J$I$N3F9q$N EUC$B!"Unicode$B!"
mule internal code $B$,%3%s%Q%$%k;~$KA*Br2DG=!#%G!<%?%Y!<%9$K$O
$B$3$N%3!<%I$N$^$^3JG<$5$l$^$9!#
2.$B%F!<%V%kL>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=($B$?$@$7!"OS $B$,%^%k%A%P%$%H
$B$N%U%!%$%kL>$r5v$7$F$$$k$3$H$,I,MW)
3.$B%+%i%`L>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=
4.$B%G!<%?$=$N$b$N$K$b%^%k%A%P%$%HJ8;z$,;HMQ2DG=
5.$B%^%k%A%P%$%HJ8;z$N@55,I=8=8!:w$,;HMQ2DG=
6.$B%^%k%A%P%$%HJ8;z$N LIKE $B8!:w$,;HMQ2DG=
7.character_length(), position(), substring() $B$G$N%^%k%A%P%$%H
$B%5%]!<%H
$B%$%s%9%H!<%k!'
$B%G%U%)%k%H$G$O PostgreSQL $B$O%^%k%A%P%$%H$r%5%]!<%H$7$F$$$^$;$s!#
$B%^%k%A%P%$%H%5%]!<%H$rM-8z$K$9$kJ}K!$r@bL@$7$^$9!#
src/Makefile.custom $B$H$$$&%U%!%$%k$r:n$j!"
MB=EUC_JP
$B$N 1 $B9T$rDI2C$7$^$9!#$"$k$$$O!"configure $B5/F0;~$K0J2<$N$h$&$K;XDj$7$^$9!#
% configure --with-mb=EUC_JP
$BJ8;z%3!<%I$H$7$F$O EUC_JP $B$r4^$a!"0J2<$N%3!<%I$,;XDj$G$-$^$9!#
($B8=:_$N<BAu$G$O!"J8;z%3!<%I$O%3%s%Q%$%k;~$K7hDj$5$l!"<B9T;~$K
$BF0E*$KJQ99$9$k$3$H$O$G$-$^$;$s)
EUC_JP $BF|K\8l EUC
EUC_CN GB $B$r%Y!<%9$K$7$?CfJ8EUC$B!#code set 2 $B$O
SS2+2$B%P%$%H%3!<%I = 3$B%P%$%HI=8=$G$9!#
EUC_KR $B4Z9q8l EUC$B!#
EUC_TW $BBfOQ$N EUC$B!#code set 2 $B$O
SS2+$BLLHV9f+2$B%P%$%H%3!<%I = 4$B%P%$%HI=8=$G$9!#
UNICODE UTF-8$B!#$?$@$7%5%]!<%H$9$k$N$O UCS-2 $B$NHO0O!"
$B$9$J$o$A 0xffff $B$^$G$G$9!#
MULE_INTERNAL mule $B$NFbIt%3!<%I!#$?$@$7!"Type N $B$NITDjD9J8;z$O
$B%5%]!<%H$7$F$$$^$;$s!#
$BA*Br$NL\0B$H$7$F$O!"1Q8l$HF|K\8l$7$+;H$o$J$$>l9g$O EUC_JP($BF1MM$K!"Cf
$B9q8l$7$+;H$o$J$$>l9g$O EUC_CN... $B$J$I$H$J$j$^$9)$B!"$=$NB>$N8@8l$b;H$$$?
$B$$>l9g$O UNICODE $B$b$7$/$O MULE_INTERNAL $B$H$J$k$G$7$g$&!#
$BCm0U!'MULE_INTERNAL $B$rA*$V$H!"$?$/$5$s$NJ8;z=89g$KBP1~$G$-$FJXMx$G$9
$B$,!"@55,I=8=$GJ#?t$NJ8;z=89g$K$^$?$,$k$h$&$JHO0O;XDj($B$?$H$($P!"[a-$BHO]
$B$H$+!"[abc$BHO0O]$B$N$h$&$J)$B$O;H$($^$;$s!#J#?t$NHO0O;XDj$G0[$J$kJ8;z=89g
$B$r;H$&$N$O9=$$$^$;$s($B$?$H$($P [abc][$BHO-$B0O])$B!#$^$?!"[^a] $B$N$h$&$JI=8=
$B$O!""a" $B$NB0$9$kJ8;z=89g($B$3$N>l9g!"US-ASCII)$B$K$*$$$F "a" $B0J30$G$"$k
$B$3$H$rI=$7$^$9!#7h$7$F4A;z$dJ?2>L>$J$I "a" $B0J30$r$9$Y$FI=$9$o$1$G$O
$B$J$$$3$H$KCm0U$7$F2<$5$$!#
$B%$%s%9%H!<%k$OIaDL$K9T$J$$$^$9!#%$%s%9%H!<%k$N>\:Y$O INSTALL $B$H$$$&
$B%F%-%9%H%U%!%$%k$r8fMw2<$5$$!#$^$?!"
http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B$G$b4JC1$J%$%s%9%H!<
$B%kJ}K!$r>R2p$7$F$$$^$9!#
$B<U<-!'
o $B3F<oJ8;z%;%C%H!"%3!<%I7O$K$D$$$F!"F|K\8l PostgreSQL $B%a!<%j%s%0%j%9%H
$B$N%a%s%P$NJ}$+$i%"%I%P%$%9$rD:$-$^$7$?!#$3$3$K46<U$7$^$9!#
$B2~DjMzNr!'
1998/4/21 $B5!G=DI2C!?%P%0=$@5
* character_length(), position(), substring() $B$N%^%k%A%P%$%H
$BBP1~
* octet_length() $BDI2C $B"* initdb $B$N$d$jD>$7I,MW
* configure $B$N%*%W%7%g%s$K MB $B%5%]!<%HDI2C
(ex. configure --with-mb=EUC_JP)
* EUC_KR $B$N regression test $BDI2C
("Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr> $B$5$sDs6!)
* EUC_JP $B$N regression test $B$K character_length(), position(),
substring(), octet_length() $BDI2C
* regress.sh $B$N SystemV $B$K$*$1$kHs8_49@-=$@5
* toupper(), tolower() $B$K 8bit $BJ8;z$,EO$k$HMn$A$k$3$H$,
$B$"$k$N$r=$@5
1998/3/25 PostgreSQL 6.3.1 $B%j%j!<%9!"MB PL2 $B$,<h$j9~$^$l$k
1998/3/10 PL2 $B$r%j%j!<%9
* EUC_JP, EUC_CN, MULE_INTERNAL $B$N regression test $B$rDI2C
(EUC_CN $B$N%G!<%?$O he@sra.co.jp $B$5$sDs6!)
* regexp $B$K$*$$$F!"isalpha $B$J$I$K unsigend char $B0J30$NCM$,
$BEO$i$J$$$h$&$K%,!<%I$r$+$1$k
* $B1Q8l$N%I%-%e%a%s%H$rDI2C
* MB $B$rDj5A$7$J$$>l9g$KH/@8$9$k%P%0$r=$@5
1998/3/1 PL1 $B$r%j%j!<%9
$B0J>e!#
$B@P0fC#IW
t-ishii@sra.co.jp
http://www.sra.co.jp/people/t-ishii/PostgreSQL/
$B$O$8$a$K!'
PostgreSQL $B$K$*$1$k%^%k%A%P%$%H%5%]!<%H$O0J2<$N$h$&$JFCD'$r;}$C$F$$$^$9!#
1.$B%^%k%A%P%$%HJ8;z$H$7$F!"F|K\8l!"Cf9q8l$J$I$N3F9q$N EUC$B!"Unicode$B!"
mule internal code $B$,%3%s%Q%$%k;~$KA*Br2DG=!#%G!<%?%Y!<%9$K$O
$B$3$N%3!<%I$N$^$^3JG<$5$l$^$9!#
2.$B%F!<%V%kL>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=($B$?$@$7!"OS $B$,%^%k%A%P%$%H
$B$N%U%!%$%kL>$r5v$7$F$$$k$3$H$,I,MW)
3.$B%+%i%`L>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=
4.$B%G!<%?$=$N$b$N$K$b%^%k%A%P%$%HJ8;z$,;HMQ2DG=
5.$B%^%k%A%P%$%HJ8;z$N@55,I=8=8!:w$,;HMQ2DG=
6.$B%^%k%A%P%$%HJ8;z$N LIKE $B8!:w$,;HMQ2DG=
7.character_length(), position(), substring() $B$G$N%^%k%A%P%$%H
$B%5%]!<%H
$B%$%s%9%H!<%k!'
$B%G%U%)%k%H$G$O PostgreSQL $B$O%^%k%A%P%$%H$r%5%]!<%H$7$F$$$^$;$s!#
$B%^%k%A%P%$%H%5%]!<%H$rM-8z$K$9$kJ}K!$r@bL@$7$^$9!#
src/Makefile.custom $B$H$$$&%U%!%$%k$r:n$j!"
MB=EUC_JP
$B$N 1 $B9T$rDI2C$7$^$9!#$"$k$$$O!"configure $B5/F0;~$K0J2<$N$h$&$K;XDj$7$^$9!#
% configure --with-mb=EUC_JP
$BJ8;z%3!<%I$H$7$F$O EUC_JP $B$r4^$a!"0J2<$N%3!<%I$,;XDj$G$-$^$9!#
($B8=:_$N<BAu$G$O!"J8;z%3!<%I$O%3%s%Q%$%k;~$K7hDj$5$l!"<B9T;~$K
$BF0E*$KJQ99$9$k$3$H$O$G$-$^$;$s)
EUC_JP $BF|K\8l EUC
EUC_CN GB $B$r%Y!<%9$K$7$?CfJ8EUC$B!#code set 2 $B$O
SS2+2$B%P%$%H%3!<%I = 3$B%P%$%HI=8=$G$9!#
EUC_KR $B4Z9q8l EUC$B!#
EUC_TW $BBfOQ$N EUC$B!#code set 2 $B$O
SS2+$BLLHV9f+2$B%P%$%H%3!<%I = 4$B%P%$%HI=8=$G$9!#
UNICODE UTF-8$B!#$?$@$7%5%]!<%H$9$k$N$O UCS-2 $B$NHO0O!"
$B$9$J$o$A 0xffff $B$^$G$G$9!#
MULE_INTERNAL mule $B$NFbIt%3!<%I!#$?$@$7!"Type N $B$NITDjD9J8;z$O
$B%5%]!<%H$7$F$$$^$;$s!#
$BA*Br$NL\0B$H$7$F$O!"1Q8l$HF|K\8l$7$+;H$o$J$$>l9g$O EUC_JP($BF1MM$K!"Cf
$B9q8l$7$+;H$o$J$$>l9g$O EUC_CN... $B$J$I$H$J$j$^$9)$B!"$=$NB>$N8@8l$b;H$$$?
$B$$>l9g$O UNICODE $B$b$7$/$O MULE_INTERNAL $B$H$J$k$G$7$g$&!#
$BCm0U!'MULE_INTERNAL $B$rA*$V$H!"$?$/$5$s$NJ8;z=89g$KBP1~$G$-$FJXMx$G$9
$B$,!"@55,I=8=$GJ#?t$NJ8;z=89g$K$^$?$,$k$h$&$JHO0O;XDj($B$?$H$($P!"[a-$BHO]
$B$H$+!"[abc$BHO0O]$B$N$h$&$J)$B$O;H$($^$;$s!#J#?t$NHO0O;XDj$G0[$J$kJ8;z=89g
$B$r;H$&$N$O9=$$$^$;$s($B$?$H$($P [abc][$BHO-$B0O])$B!#$^$?!"[^a] $B$N$h$&$JI=8=
$B$O!""a" $B$NB0$9$kJ8;z=89g($B$3$N>l9g!"US-ASCII)$B$K$*$$$F "a" $B0J30$G$"$k
$B$3$H$rI=$7$^$9!#7h$7$F4A;z$dJ?2>L>$J$I "a" $B0J30$r$9$Y$FI=$9$o$1$G$O
$B$J$$$3$H$KCm0U$7$F2<$5$$!#
$B%$%s%9%H!<%k$OIaDL$K9T$J$$$^$9!#%$%s%9%H!<%k$N>\:Y$O INSTALL $B$H$$$&
$B%F%-%9%H%U%!%$%k$r8fMw2<$5$$!#$^$?!"
http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B$G$b4JC1$J%$%s%9%H!<
$B%kJ}K!$r>R2p$7$F$$$^$9!#
$B<U<-!'
o $B3F<oJ8;z%;%C%H!"%3!<%I7O$K$D$$$F!"F|K\8l PostgreSQL $B%a!<%j%s%0%j%9%H
$B$N%a%s%P$NJ}$+$i%"%I%P%$%9$rD:$-$^$7$?!#$3$3$K46<U$7$^$9!#
$B2~DjMzNr!'
1998/4/21 $B5!G=DI2C!?%P%0=$@5
* character_length(), position(), substring() $B$N%^%k%A%P%$%H
$BBP1~
* octet_length() $BDI2C $B"* initdb $B$N$d$jD>$7I,MW
* configure $B$N%*%W%7%g%s$K MB $B%5%]!<%HDI2C
(ex. configure --with-mb=EUC_JP)
* EUC_KR $B$N regression test $BDI2C
("Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr> $B$5$sDs6!)
* EUC_JP $B$N regression test $B$K character_length(), position(),
substring(), octet_length() $BDI2C
* regress.sh $B$N SystemV $B$K$*$1$kHs8_49@-=$@5
* toupper(), tolower() $B$K 8bit $BJ8;z$,EO$k$HMn$A$k$3$H$,
$B$"$k$N$r=$@5
1998/3/25 PostgreSQL 6.3.1 $B%j%j!<%9!"MB PL2 $B$,<h$j9~$^$l$k
1998/3/10 PL2 $B$r%j%j!<%9
* EUC_JP, EUC_CN, MULE_INTERNAL $B$N regression test $B$rDI2C
(EUC_CN $B$N%G!<%?$O he@sra.co.jp $B$5$sDs6!)
* regexp $B$K$*$$$F!"isalpha $B$J$I$K unsigend char $B0J30$NCM$,
$BEO$i$J$$$h$&$K%,!<%I$r$+$1$k
* $B1Q8l$N%I%-%e%a%s%H$rDI2C
* MB $B$rDj5A$7$J$$>l9g$KH/@8$9$k%P%0$r=$@5
1998/3/1 PL1 $B$r%j%j!<%9
$B0J>e!#