1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-17 06:41:09 +03:00
Attached to the mail is locale-patch.tar.gz. In the archive
   there are:

file README.locale
   short description

directory src/test/locale
   test suite; currently only koi8-r tests, but the suite can be
   easily extended

file locale.patch
   the very patch; to apply: patch < locale.patch; should be applied
   to postgres-6.3.2 (at least I created it with 6.3.2 without any
additional
   patches)

   Files touched by the patch:  src/include/utils/builtins.h
src/backend/utils/adt/char.c src/backend/utils/adt/varchar.c
src/backend/utils/adt/varlena.c

Oleg
This commit is contained in:
Bruce Momjian
1998-06-16 06:42:02 +00:00
parent 67a636918a
commit 8d8bcda253
21 changed files with 824 additions and 99 deletions

33
src/test/locale/Makefile Normal file
View File

@ -0,0 +1,33 @@
#
# Makefile for example programs
#
SRCDIR= ../..
include ../../Makefile.global
#
# And where libpq goes, so goes the authentication stuff...
#
ifdef KRBVERS
LDFLAGS+= $(KRBLIBS)
CFLAGS+= $(KRBFLAGS)
endif
PROGS = test-pgsql-locale test-ctype
DIRS = koi8-r
all: $(PROGS)
$(PROGS): % : %.c
$(CC) $(CFLAGS) -o $@ $@.c $(LDFLAGS)
clean:
rm -f $(PROGS) *.out
for d in $(DIRS); do \
cd $$d; \
$(MAKE) clean; \
cd ..; \
done
test-%: all
@cd `echo $@ | sed s/^test-//` && $(MAKE) test

27
src/test/locale/README Normal file
View File

@ -0,0 +1,27 @@
1998 May 25
This directory contains a set of tests for locales. I provided one C
program test-ctype.c to test CTYPE support in libc and installed
localedata. Then there are test-sort.pl and test-sort.py that tests
collating. (Also there is test-sort.py but it is commented out in scripts;
uncomment it if you have Python interpreter installed).
To run a test for some locale (koi8, e.g) run
make all test-$locale
(for example)
make all test-koi8
Currently, only tests for koi8 locale (russian cyrillic for UN*X)
provided in koi8 directory. Script `runall' calls test-pgsql-locale to test
whether locale support had been compiled into PotgreSQL, test-ctype to test
libc and localedata, test-sort.pl (uncomment test-sort.py, if you have
Python interpreter installed) and does tests on PostgreSQL with
test-koi8*.sql.in.
To add locale tests one need to create directory $locale and create
Makefile (and other files) similar to koi8-r/*. Actually, the simplest (I
think) method is just copy koi8-r directory and edit/replace files.
Oleg.
----
Oleg Broytmann http://members.tripod.com/~phd2/ phd2@earthling.net

View File

@ -0,0 +1,12 @@
#
# Makefile for example programs
#
all:
-@echo "make: Nothing to be done for \`all'."
test:
@./runall
clean:
rm -f *.out

View File

@ -0,0 +1,257 @@
char# char alnum alpha cntrl digit lower graph print punct space upper xdigit lo up
chr#0 +
chr#1 +
chr#2 +
chr#3 +
chr#4 +
chr#5 +
chr#6 +
chr#7 +
chr#8 +
chr#9 + +
chr#10 + +
chr#11 + +
chr#12 + +
chr#13 + +
chr#14 +
chr#15 +
chr#16 +
chr#17 +
chr#18 +
chr#19 +
chr#20 +
chr#21 +
chr#22 +
chr#23 +
chr#24 +
chr#25 +
chr#26 +
chr#27 +
chr#28 +
chr#29 +
chr#30 +
chr#31 +
chr#32 + +
chr#33 ! + + + ! !
chr#34 " + + + " "
chr#35 # + + + # #
chr#36 $ + + + $ $
chr#37 % + + + % %
chr#38 & + + + & &
chr#39 ' + + + ' '
chr#40 ( + + + ( (
chr#41 ) + + + ) )
chr#42 * + + + * *
chr#43 + + + + + +
chr#44 , + + + , ,
chr#45 - + + + - -
chr#46 . + + + . .
chr#47 / + + + / /
chr#48 0 + + + + + 0 0
chr#49 1 + + + + + 1 1
chr#50 2 + + + + + 2 2
chr#51 3 + + + + + 3 3
chr#52 4 + + + + + 4 4
chr#53 5 + + + + + 5 5
chr#54 6 + + + + + 6 6
chr#55 7 + + + + + 7 7
chr#56 8 + + + + + 8 8
chr#57 9 + + + + + 9 9
chr#58 : + + + : :
chr#59 ; + + + ; ;
chr#60 < + + + < <
chr#61 = + + + = =
chr#62 > + + + > >
chr#63 ? + + + ? ?
chr#64 @ + + + @ @
chr#65 A + + + + + + a A
chr#66 B + + + + + + b B
chr#67 C + + + + + + c C
chr#68 D + + + + + + d D
chr#69 E + + + + + + e E
chr#70 F + + + + + + f F
chr#71 G + + + + + g G
chr#72 H + + + + + h H
chr#73 I + + + + + i I
chr#74 J + + + + + j J
chr#75 K + + + + + k K
chr#76 L + + + + + l L
chr#77 M + + + + + m M
chr#78 N + + + + + n N
chr#79 O + + + + + o O
chr#80 P + + + + + p P
chr#81 Q + + + + + q Q
chr#82 R + + + + + r R
chr#83 S + + + + + s S
chr#84 T + + + + + t T
chr#85 U + + + + + u U
chr#86 V + + + + + v V
chr#87 W + + + + + w W
chr#88 X + + + + + x X
chr#89 Y + + + + + y Y
chr#90 Z + + + + + z Z
chr#91 [ + + + [ [
chr#92 \ + + + \ \
chr#93 ] + + + ] ]
chr#94 ^ + + + ^ ^
chr#95 _ + + + _ _
chr#96 ` + + + ` `
chr#97 a + + + + + + a A
chr#98 b + + + + + + b B
chr#99 c + + + + + + c C
chr#100 d + + + + + + d D
chr#101 e + + + + + + e E
chr#102 f + + + + + + f F
chr#103 g + + + + + g G
chr#104 h + + + + + h H
chr#105 i + + + + + i I
chr#106 j + + + + + j J
chr#107 k + + + + + k K
chr#108 l + + + + + l L
chr#109 m + + + + + m M
chr#110 n + + + + + n N
chr#111 o + + + + + o O
chr#112 p + + + + + p P
chr#113 q + + + + + q Q
chr#114 r + + + + + r R
chr#115 s + + + + + s S
chr#116 t + + + + + t T
chr#117 u + + + + + u U
chr#118 v + + + + + v V
chr#119 w + + + + + w W
chr#120 x + + + + + x X
chr#121 y + + + + + y Y
chr#122 z + + + + + z Z
chr#123 { + + + { {
chr#124 | + + + | |
chr#125 } + + + } }
chr#126 ~ + + + ~ ~
chr#127 +
chr#128 <20> + + + <20> <20>
chr#129 <20> + + + <20> <20>
chr#130 <20> + + + <20> <20>
chr#131 <20> + + + <20> <20>
chr#132 <20> + + + <20> <20>
chr#133 <20> + + + <20> <20>
chr#134 <20> + + + <20> <20>
chr#135 <20> + + + <20> <20>
chr#136 <20> + + + <20> <20>
chr#137 <20> + + + <20> <20>
chr#138 <20> + + + <20> <20>
chr#139 <20> + + + <20> <20>
chr#140 <20> + + + <20> <20>
chr#141 <20> + + + <20> <20>
chr#142 <20> + + + <20> <20>
chr#143 <20> + + + <20> <20>
chr#144 <20> + + + <20> <20>
chr#145 <20> + + + <20> <20>
chr#146 <20> + + + <20> <20>
chr#147 <20> + + + <20> <20>
chr#148 <20> + + + <20> <20>
chr#149 <20> + + + <20> <20>
chr#150 <20> + + + <20> <20>
chr#151 <20> + + + <20> <20>
chr#152 <20> + + + <20> <20>
chr#153 <20> + + + <20> <20>
chr#154 +
chr#155 <20> + + + <20> <20>
chr#156 <20> + + + <20> <20>
chr#157 <20> + + + <20> <20>
chr#158 <20> + + + <20> <20>
chr#159 <20> + + + <20> <20>
chr#160 <20> + + + <20> <20>
chr#161 <20> + + + <20> <20>
chr#162 <20> + + + <20> <20>
chr#163 <20> + + + + + <20> <20>
chr#164 <20> + + + <20> <20>
chr#165 <20> + + + <20> <20>
chr#166 <20> + + + <20> <20>
chr#167 <20> + + + <20> <20>
chr#168 <20> + + + <20> <20>
chr#169 <20> + + + <20> <20>
chr#170 <20> + + + <20> <20>
chr#171 <20> + + + <20> <20>
chr#172 <20> + + + <20> <20>
chr#173 <20> + + + <20> <20>
chr#174 <20> + + + <20> <20>
chr#175 <20> + + + <20> <20>
chr#176 <20> + + + <20> <20>
chr#177 <20> + + + <20> <20>
chr#178 <20> + + + <20> <20>
chr#179 <20> + + + + + <20> <20>
chr#180 <20> + + + <20> <20>
chr#181 <20> + + + <20> <20>
chr#182 <20> + + + <20> <20>
chr#183 <20> + + + <20> <20>
chr#184 <20> + + + <20> <20>
chr#185 <20> + + + <20> <20>
chr#186 <20> + + + <20> <20>
chr#187 <20> + + + <20> <20>
chr#188 <20> + + + <20> <20>
chr#189 <20> + + + <20> <20>
chr#190 <20> + + + <20> <20>
chr#191 <20> + + + <20> <20>
chr#192 <20> + + + + + <20> <20>
chr#193 <20> + + + + + <20> <20>
chr#194 <20> + + + + + <20> <20>
chr#195 <20> + + + + + <20> <20>
chr#196 <20> + + + + + <20> <20>
chr#197 <20> + + + + + <20> <20>
chr#198 <20> + + + + + <20> <20>
chr#199 <20> + + + + + <20> <20>
chr#200 <20> + + + + + <20> <20>
chr#201 <20> + + + + + <20> <20>
chr#202 <20> + + + + + <20> <20>
chr#203 <20> + + + + + <20> <20>
chr#204 <20> + + + + + <20> <20>
chr#205 <20> + + + + + <20> <20>
chr#206 <20> + + + + + <20> <20>
chr#207 <20> + + + + + <20> <20>
chr#208 <20> + + + + + <20> <20>
chr#209 <20> + + + + + <20> <20>
chr#210 <20> + + + + + <20> <20>
chr#211 <20> + + + + + <20> <20>
chr#212 <20> + + + + + <20> <20>
chr#213 <20> + + + + + <20> <20>
chr#214 <20> + + + + + <20> <20>
chr#215 <20> + + + + + <20> <20>
chr#216 <20> + + + + + <20> <20>
chr#217 <20> + + + + + <20> <20>
chr#218 <20> + + + + + <20> <20>
chr#219 <20> + + + + + <20> <20>
chr#220 <20> + + + + + <20> <20>
chr#221 <20> + + + + + <20> <20>
chr#222 <20> + + + + + <20> <20>
chr#223 <20> + + + + + <20>
chr#224 <20> + + + + + <20> <20>
chr#225 <20> + + + + + <20> <20>
chr#226 <20> + + + + + <20> <20>
chr#227 <20> + + + + + <20> <20>
chr#228 <20> + + + + + <20> <20>
chr#229 <20> + + + + + <20> <20>
chr#230 <20> + + + + + <20> <20>
chr#231 <20> + + + + + <20> <20>
chr#232 <20> + + + + + <20> <20>
chr#233 <20> + + + + + <20> <20>
chr#234 <20> + + + + + <20> <20>
chr#235 <20> + + + + + <20> <20>
chr#236 <20> + + + + + <20> <20>
chr#237 <20> + + + + + <20> <20>
chr#238 <20> + + + + + <20> <20>
chr#239 <20> + + + + + <20> <20>
chr#240 <20> + + + + + <20> <20>
chr#241 <20> + + + + + <20> <20>
chr#242 <20> + + + + + <20> <20>
chr#243 <20> + + + + + <20> <20>
chr#244 <20> + + + + + <20> <20>
chr#245 <20> + + + + + <20> <20>
chr#246 <20> + + + + + <20> <20>
chr#247 <20> + + + + + <20> <20>
chr#248 <20> + + + + + <20> <20>
chr#249 <20> + + + + + <20> <20>
chr#250 <20> + + + + + <20> <20>
chr#251 <20> + + + + + <20> <20>
chr#252 <20> + + + + + <20> <20>
chr#253 <20> + + + + + <20> <20>
chr#254 <20> + + + + + <20> <20>
chr#255 + + + + + <20>

View File

@ -0,0 +1,55 @@
abbrev|name_en |name_ru
------+--------------------+------------------------------------------------------------
ID |Idaho |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IA |Iowa |<7C><><EFBFBD><EFBFBD><EFBFBD>
AL |Alabama |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AK |Alaska |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AZ |Arizona |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AR |Arkansas |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WY |Wyoming |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WA |Washington |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VT |Vermont |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VA |Virginia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WI |Wisconsin |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DE |Delaware |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GA |Georgia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WV |West Virginia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IL |Illinois |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IN |Indiana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CA |California |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KA |Kansas |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KY |Kentucky |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CO |Colorado |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CT |Connecticut |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LA |Louisiana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MA |Massachusetts |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MN |Minnesota |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MS |Mississippi |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MO |Missouri |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MI |Michigan |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MT |Montana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ME |Maine |<7C><><EFBFBD>
MD |Maryland |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NE |Nebraska |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NV |Nevada |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NH |New Hampshire |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NJ |New Jersey |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NY |New York |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD>
NM |New Mexico |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OH |Ohio |<7C><><EFBFBD><EFBFBD><EFBFBD>
OK |Oklahoma |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DC |Washington DC |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
OR |Oregon |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PA |Pennsylvania |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RI |Rhode Island |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ND |North Dakota |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NC |North Carolina |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TN |Tennessee |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TX |Texas |<7C><><EFBFBD><EFBFBD><EFBFBD>
FL |Florida |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SD |South Dakota |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SC |South Carolina |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UT |Utah |<7C><><EFBFBD>
(50 rows)
EOF

View File

@ -0,0 +1,9 @@
abbrev|name_en |name_ru
------+--------------------+----------------------------------------------
OH |Ohio |<7C><><EFBFBD><EFBFBD><EFBFBD>
OK |Oklahoma |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DC |Washington DC |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
OR |Oregon |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(4 rows)
EOF

View File

@ -0,0 +1,9 @@
Bording
hoarding
Vesta
vesta
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>

View File

@ -0,0 +1,55 @@
abbrev|name_en |name_ru
------+--------------------+----------------------------------------------
ID |Idaho |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IA |Iowa |<7C><><EFBFBD><EFBFBD><EFBFBD>
AL |Alabama |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AK |Alaska |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AZ |Arizona |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AR |Arkansas |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WY |Wyoming |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WA |Washington |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VT |Vermont |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VA |Virginia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WI |Wisconsin |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DE |Delaware |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GA |Georgia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WV |West Virginia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IL |Illinois |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IN |Indiana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CA |California |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KA |Kansas |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KY |Kentucky |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CO |Colorado |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CT |Connecticut |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LA |Louisiana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MA |Massachusetts |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MN |Minnesota |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MS |Mississippi |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MO |Missouri |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MI |Michigan |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MT |Montana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ME |Maine |<7C><><EFBFBD>
MD |Maryland |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NE |Nebraska |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NV |Nevada |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NH |New Hampshire |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NJ |New Jersey |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NY |New York |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD>
NM |New Mexico |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OH |Ohio |<7C><><EFBFBD><EFBFBD><EFBFBD>
OK |Oklahoma |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DC |Washington DC |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
OR |Oregon |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PA |Pennsylvania |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RI |Rhode Island |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ND |North Dakota |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NC |North Carolina |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TN |Tennessee |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TX |Texas |<7C><><EFBFBD><EFBFBD><EFBFBD>
FL |Florida |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SD |South Dakota |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SC |South Carolina |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UT |Utah |<7C><><EFBFBD>
(50 rows)
EOF

View File

@ -0,0 +1,55 @@
abbrev|name_en |name_ru
------+--------------------+----------------------------------------------
ID |Idaho |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IA |Iowa |<7C><><EFBFBD><EFBFBD><EFBFBD>
AL |Alabama |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AK |Alaska |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AZ |Arizona |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AR |Arkansas |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WY |Wyoming |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WA |Washington |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VT |Vermont |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VA |Virginia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WI |Wisconsin |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DE |Delaware |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GA |Georgia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WV |West Virginia |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IL |Illinois |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IN |Indiana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CA |California |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KA |Kansas |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KY |Kentucky |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CO |Colorado |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CT |Connecticut |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LA |Louisiana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MA |Massachusetts |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MN |Minnesota |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MS |Mississippi |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MO |Missouri |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MI |Michigan |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MT |Montana |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ME |Maine |<7C><><EFBFBD>
MD |Maryland |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NE |Nebraska |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NV |Nevada |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NH |New Hampshire |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NJ |New Jersey |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NY |New York |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD>
NM |New Mexico |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OH |Ohio |<7C><><EFBFBD><EFBFBD><EFBFBD>
OK |Oklahoma |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DC |Washington DC |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
OR |Oregon |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PA |Pennsylvania |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RI |Rhode Island |<7C><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ND |North Dakota |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NC |North Carolina |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TN |Tennessee |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TX |Texas |<7C><><EFBFBD><EFBFBD><EFBFBD>
FL |Florida |<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SD |South Dakota |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SC |South Carolina |<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UT |Utah |<7C><><EFBFBD>
(50 rows)
EOF

52
src/test/locale/koi8-r/runall Executable file
View File

@ -0,0 +1,52 @@
#! /bin/sh
PATH=..:$PATH
echo "Testing PostgreSQL compilation..."
if ! test-pgsql-locale; then
exit 1
fi
LC_CTYPE=ru_RU.KOI8-R
LC_COLLATE=$LC_CTYPE
export LC_CTYPE LC_COLLATE
echo "Testing LC_CTYPE..."
if ! test-ctype > koi8-ctype.out; then
exit 1
fi
diff expected/koi8-ctype.out koi8-ctype.out
echo "Testing LC_COLLATE..."
perl ../sort-test.pl test-koi8-sort.in > test-koi8-sort.out
diff expected/test-koi8-sort.out test-koi8-sort.out
### If you have Python - uncomment the following two lines
#python ../sort-test.py test-koi8-sort.in > test-koi8-sort.out
#diff expected/test-koi8-sort.out test-koi8-sort.out
abort() {
[ "$1" ] && echo "$*"
exit 1
}
for f in char varchar text; do
if echo $f | grep -q char; then
ftype="$f(60)"
else
ftype="$f"
fi
echo "Testing PgSQL: sort on $ftype type..."
destroydb testlocale >/dev/null 2>&1
createdb testlocale || abort "createdb failed"
psql -d testlocale -c "CREATE TABLE usastates (abbrev char2, name_en char(20), name_ru $ftype);" >/dev/null 2>&1 || abort "createtable failed"
psql testlocale < test-koi8.sql.in > test-koi8-$f.sql.out 2>/dev/null || abort "test query failed"
diff expected/test-koi8-$f.sql.out test-koi8-$f.sql.out
done
echo "Testing PgSQL: select on regexp..."
psql testlocale < test-koi8-select.sql.in > test-koi8-select.sql.out 2>/dev/null || abort "select query failed"
diff expected/test-koi8-select.sql.out test-koi8-select.sql.out
destroydb testlocale || abort "destroydb failed"
echo "Finished."

View File

@ -0,0 +1 @@
SELECT * FROM usastates WHERE name_ru ~* '^<5E>.*' ORDER BY name_ru;

View File

@ -0,0 +1,9 @@
Vesta
vesta
<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Bording
hoarding

View File

@ -0,0 +1,53 @@
COPY usastates FROM stdin USING DELIMITERS '|';
AK|Alaska |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WA|Washington |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OR|Oregon |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CA|California |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NV|Nevada |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ID|Idaho |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UT|Utah |<EFBFBD><EFBFBD><EFBFBD>
AZ|Arizona |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MT|Montana |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WY|Wyoming |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CO|Colorado |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NM|New Mexico |<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ND|North Dakota |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SD|South Dakota |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NE|Nebraska |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KA|Kansas |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OK|Oklahoma |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TX|Texas |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MN|Minnesota |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IA|Iowa |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MO|Missouri |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AR|Arkansas |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LA|Louisiana |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WI|Wisconsin |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IL|Illinois |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IN|Indiana |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MS|Mississippi |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AL|Alabama |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MI|Michigan |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OH|Ohio |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KY|Kentucky |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TN|Tennessee |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GA|Georgia |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FL|Florida |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PA|Pennsylvania |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WV|West Virginia |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VA|Virginia |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NC|North Carolina|<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SC|South Carolina|<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NY|New York |<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NJ|New Jersey |<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DE|Delaware |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MD|Maryland |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DC|Washington DC |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
VT|Vermont |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MA|Massachusetts |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CT|Connecticut |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ME|Maine |<EFBFBD><EFBFBD><EFBFBD>
NH|New Hampshire |<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RI|Rhode Island |<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\.
SELECT * FROM usastates ORDER BY name_ru;

12
src/test/locale/sort-test.pl Executable file
View File

@ -0,0 +1,12 @@
#!/usr/local/bin/perl -w
use locale;
open(INFILE, "<$ARGV[0]");
chop(my(@words) = <INFILE>);
close(INFILE);
$"="\n";
my(@result) = sort @words;
print "@result\n";

18
src/test/locale/sort-test.py Executable file
View File

@ -0,0 +1,18 @@
#! /usr/local/bin/python
import sys, string, locale
locale.setlocale(locale.LC_ALL, "")
if len(sys.argv) <> 2:
sys.stderr.write("Usage: sort.py filename\n")
sys.exit(1)
infile = open(sys.argv[1], 'r')
list = infile.readlines()
infile.close()
for i in range(0, len(list)):
list[i] = list[i][:-1] # chop!
list.sort(locale.strcoll)
print string.join(list, '\n')

View File

@ -0,0 +1,65 @@
/*
test-ctype.c
Written by Oleg BroytMann, phd2@earthling.net
with help from Oleg Bartunov, oleg@sai.msu.su
Copyright (C) 1998 PhiloSoft Design
This is copyrighted but free software. You can use it, modify and distribute
in original or modified form providing that the author's names and the above
copyright notice will remain.
Disclaimer, legal notice and absence of warranty.
This software provided "as is" without any kind of warranty. In no event
the author shall be liable for any damage, etc.
*/
#include <stdio.h>
#include <locale.h>
#include <ctype.h>
char * flag(int b);
void describe_char(int c);
#undef LONG_FLAG
char * flag(int b)
{
#ifdef LONG_FLAG
return b ? "yes" : "no";
#else
return b ? "+" : " ";
#endif
}
void describe_char(int c)
{
char cp = c, up = toupper(c), lo = tolower(c);
if (!isprint(cp)) cp = ' ';
if (!isprint(up)) up = ' ';
if (!isprint(lo)) lo = ' ';
printf("chr#%-4d%2c%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%4c%4c\n", c, cp, flag(isalnum(c)), flag(isalpha(c)), flag(iscntrl(c)), flag(isdigit(c)), flag(islower(c)), flag(isgraph(c)), flag(isprint(c)), flag(ispunct(c)), flag(isspace(c)), flag(isupper(c)), flag(isxdigit(c)), lo, up);
}
int main() {
short c;
char * cur_locale;
cur_locale = setlocale(LC_ALL, "");
if (cur_locale) {
fprintf(stderr, "Successfulle set locale to %s\n", cur_locale);
} else {
fprintf(stderr, "Cannot setup locale. Either your libc does not provide\nlocale support, or your locale data is corrupt, or you have not set\nLANG or LC_CTYPE environment variable to proper value. Program aborted.\n");
return 1;
}
printf("char# char alnum alpha cntrl digit lower graph print punct space upper xdigit lo up\n");
for (c = 0; c <= 255; c++)
describe_char(c);
return 0;
}

View File

@ -0,0 +1,13 @@
#include <stdio.h>
#include "postgres.h"
int main() {
#ifdef USE_LOCALE
printf("PostgreSQL compiled with locale support\n");
return 0;
#else
printf("PostgreSQL compiled without locale support\n");
return 1;
#endif
}