1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-09 22:41:56 +03:00

Proper unpack de_DE.ISO-8859-1

This commit is contained in:
Bruce Momjian
2000-03-19 19:52:44 +00:00
parent d6429e552d
commit 3e0321f6e9
16 changed files with 568 additions and 0 deletions

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,2 @@
de_DE.ISO-8859-1 (German) locale test.
Created by Armin Diehl <diehl@net-connection.de>

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 +
chr#129 +
chr#130 +
chr#131 +
chr#132 +
chr#133 +
chr#134 +
chr#135 +
chr#136 +
chr#137 +
chr#138 +
chr#139 +
chr#140 +
chr#141 +
chr#142 +
chr#143 +
chr#144 +
chr#145 +
chr#146 +
chr#147 +
chr#148 +
chr#149 +
chr#150 +
chr#151 +
chr#152 +
chr#153 +
chr#154 +
chr#155 +
chr#156 +
chr#157 +
chr#158 +
chr#159 +
chr#160 +
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> <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 + + + + +

View File

@ -0,0 +1,23 @@
name_en | name_de
----------------------+--------------------------------
AAA | <20><><EFBFBD>
aaaaaa | <20><><EFBFBD><EFBFBD>
AAAAa | <20><><EFBFBD><EFBFBD><EFBFBD>
aaaaaaa | aaaaaa
BBBB | BBBB
bbbbbb | bbbbb
BBBBBB | BBBBBBB
CCC | CCCC
ddddd | ddddd
OOOOO | <20><><EFBFBD><EFBFBD><EFBFBD>
oooooo | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO | OOOOOOO
ooooooo | oooooooo
ssssss | ssssss
SSSSSSSS | SSSSSSSS
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UU | UU
uuuu | <20><><EFBFBD><EFBFBD>
UUUUU | <20><><EFBFBD><EFBFBD><EFBFBD>
(19 rows)

View File

@ -0,0 +1,7 @@
name_en | name_de
----------------------+---------
AAA | <20><><EFBFBD>
aaaaaa | <20><><EFBFBD><EFBFBD>
AAAAa | <20><><EFBFBD><EFBFBD><EFBFBD>
(3 rows)

View File

@ -0,0 +1,20 @@
Bording
Burg
B<EFBFBD>rger
Butter
drang
drang
dr<EFBFBD>ngeln
DR<EFBFBD>NGELN2
hoardin
hoch
h<EFBFBD>he
hose
Saat
S<EFBFBD>ge
Sarg
Sorting
<EFBFBD>ber
Unter
Z<EFBFBD>gern
Zoll

View File

@ -0,0 +1,23 @@
name_en | name_de
----------------------+----------
AAA | <20><><EFBFBD>
aaaaaa | <20><><EFBFBD><EFBFBD>
AAAAa | <20><><EFBFBD><EFBFBD><EFBFBD>
aaaaaaa | aaaaaa
BBBB | BBBB
bbbbbb | bbbbb
BBBBBB | BBBBBBB
CCC | CCCC
ddddd | ddddd
OOOOO | <20><><EFBFBD><EFBFBD><EFBFBD>
oooooo | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO | OOOOOOO
ooooooo | oooooooo
ssssss | ssssss
SSSSSSSS | SSSSSSSS
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UU | UU
uuuu | <20><><EFBFBD><EFBFBD>
UUUUU | <20><><EFBFBD><EFBFBD><EFBFBD>
(19 rows)

View File

@ -0,0 +1,23 @@
upper
--------------------------------
<20><><EFBFBD>
<20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>
AAAAAA
BBBB
BBBBB
BBBBBBB
CCCC
DDDDD
<20><><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO
OOOOOOOO
SSSSSS
SSSSSSSS
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UU
<20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>
(19 rows)

View File

@ -0,0 +1,23 @@
upper
----------
<20><><EFBFBD>
<20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>
AAAAAA
BBBB
BBBBB
BBBBBBB
CCCC
DDDDD
<20><><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO
OOOOOOOO
SSSSSS
SSSSSSSS
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UU
<20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>
(19 rows)

View File

@ -0,0 +1,23 @@
upper
----------
<20><><EFBFBD>
<20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>
AAAAAA
BBBB
BBBBB
BBBBBBB
CCCC
DDDDD
<20><><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO
OOOOOOOO
SSSSSS
SSSSSSSS
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UU
<20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>
(19 rows)

View File

@ -0,0 +1,23 @@
name_en | name_de
----------------------+----------
AAA | <20><><EFBFBD>
aaaaaa | <20><><EFBFBD><EFBFBD>
AAAAa | <20><><EFBFBD><EFBFBD><EFBFBD>
aaaaaaa | aaaaaa
BBBB | BBBB
bbbbbb | bbbbb
BBBBBB | BBBBBBB
CCC | CCCC
ddddd | ddddd
OOOOO | <20><><EFBFBD><EFBFBD><EFBFBD>
oooooo | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO | OOOOOOO
ooooooo | oooooooo
ssssss | ssssss
SSSSSSSS | SSSSSSSS
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UU | UU
uuuu | <20><><EFBFBD><EFBFBD>
UUUUU | <20><><EFBFBD><EFBFBD><EFBFBD>
(19 rows)

View File

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

View File

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

View File

@ -0,0 +1,20 @@
Sorting
DR<EFBFBD>NGELN2
Sarg
Z<EFBFBD>gern
drang
Zoll
h<EFBFBD>he
<EFBFBD>ber
B<EFBFBD>rger
Burg
hoch
hose
Bording
dr<EFBFBD>ngeln
Unter
Butter
Saat
S<EFBFBD>ge
drang
hoarding

View File

@ -0,0 +1,22 @@
COPY wordlist FROM stdin USING DELIMITERS '|';
AAA |<EFBFBD><EFBFBD><EFBFBD>
AAAAa |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BBBB |BBBB
oooooooo |oooooooo
uuuu |<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UUUUU |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CCC |CCCC
aaaaaa |<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aaaaaaa |aaaaaa
bbbbbb |bbbbb
UU |UU
oooooo |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ddddd |ddddd
OOOOO |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO |OOOOOOO
BBBBBB |BBBBBBB
SSSSSSSS |SSSSSSSS
ssssss |ssssss
\.
SELECT upper (name_de) FROM wordlist ORDER BY upper (name_de);

View File

@ -0,0 +1,22 @@
COPY wordlist FROM stdin USING DELIMITERS '|';
AAA |<EFBFBD><EFBFBD><EFBFBD>
AAAAa |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BBBB |BBBB
ooooooo |oooooooo
uuuu |<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UUUUU |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CCC |CCCC
aaaaaa |<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aaaaaaa |aaaaaa
bbbbbb |bbbbb
UU |UU
oooooo |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ddddd |ddddd
OOOOO |<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OOOOOOO |OOOOOOO
BBBBBB |BBBBBBB
SSSSSSSS |SSSSSSSS
ssssss |ssssss
\.
SELECT * FROM wordlist ORDER BY name_de;