OSDN Git Service

Add textporter_exit_on_segv parameter.
[ludiafuncs/ludia_funcs.git] / sql / ludia_funcs.sql
1 \pset null '(null)'
2
3 -- Load ludia_funcs module
4 CREATE EXTENSION ludia_funcs;
5
6 SET standard_conforming_strings TO off;
7 SET escape_string_warning TO off;
8
9 -- pgs2snippet1() checks
10 SET ludia_funcs.escape_snippet_keyword TO on;
11
12 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\"', '\\');
13 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"¥"', '\\');
14 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"¥"', '¥');
15 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\"', '¥');
16 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"""', '"');
17 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"”"', '"');
18 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"”"', '”');
19 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"""', '”');
20
21 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\"', '\\\\');
22 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\\\"', '\\\\');
23 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\\\"', '\\');
24 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"""', '""');
25 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""""', '""');
26 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""""', '"');
27
28 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\"', 'あ\\');
29 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\"', '\\あ');
30 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ\\"', 'あ\\');
31 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\あ"', '\\あ');
32 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ\\"', '\\');
33 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\あ"', '\\');
34 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ\\"', 'あ');
35 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\あ"', 'あ');
36
37 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"""', 'あ"');
38 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"""', '"あ');
39 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ""', 'あ"');
40 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""あ"', '"あ');
41 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ""', '"');
42 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""あ"', '"');
43 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ""', 'あ');
44 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""あ"', 'あ');
45
46 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う\\え"', 'う\\え');
47 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う\\"', 'う\\え');
48 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\え"', 'う\\え');
49 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\"', 'う\\え');
50 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う\\え"', 'うえ');
51 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う\\"', 'うえ');
52 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\え"', 'うえ');
53 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う\\え"', 'う');
54
55 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う"え"', 'う"え');
56 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う""', 'う"え');
57 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""え"', 'う"え');
58 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"""', 'う"え');
59 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う"え"', 'うえ');
60 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う""', 'うえ');
61 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""え"', 'うえ');
62 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"う"え"', 'う');
63
64 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\\\"', 'あいう\\えお');
65 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\\\"', 'あいう\\\\えお');
66
67 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\""', 'あいう"えお');
68 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"\\""', 'あいう\\"えお');
69
70 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"+"', '+');
71 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"+"', 'あいう+えお');
72 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""+"', 'あいう"+えお');
73 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"-"', '-');
74 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"-"', 'あいう-えお');
75 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""-"', 'あいう"-えお');
76 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '" え"', 'あいう えお');
77 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"" え"', 'あいう" えお');
78
79 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '', 'あ');
80 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, 'あ', '');
81 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""', 'あ');
82 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"あ"', '');
83
84 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '+', '+"\\');
85 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"', '+"\\');
86 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '\\', '+"\\');
87
88 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""', 'あ');
89 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '""', 'あ', 1);
90
91 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"+"BB"', 'AA"A+A\\B+B"BB');
92 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"+""B"', 'AA"A+A\\B+B"BB');
93 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"+"+B"', 'AA"A+A\\B+B"BB');
94 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"+"\\B"', 'AA"A+A\\B+B"BB');
95 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A""+"BB"', 'AA"A+A\\B+B"BB');
96 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A""+""B"', 'AA"A+A\\B+B"BB');
97 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A""+"+B"', 'AA"A+A\\B+B"BB');
98 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A""+"\\B"', 'AA"A+A\\B+B"BB');
99 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A+"+"BB"', 'AA"A+A\\B+B"BB');
100 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A+"+""B"', 'AA"A+A\\B+B"BB');
101 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A+"+"+B"', 'AA"A+A\\B+B"BB');
102 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A+"+"\\B"', 'AA"A+A\\B+B"BB');
103 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A\\"+"BB"', 'AA"A+A\\B+B"BB');
104 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A\\"+""B"', 'AA"A+A\\B+B"BB');
105 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A\\"+"+B"', 'AA"A+A\\B+B"BB');
106 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"A\\"+"\\B"', 'AA"A+A\\B+B"BB');
107
108 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AB"CD"', 'AB"CD');
109 SET ludia_funcs.escape_snippet_keyword TO off;
110 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AB"CD"', 'AB"CD');
111
112 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A" + "BBB" + "CCC"', 'AA"ABBBCCCDDDEEE');
113 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A" + "BBB"   "CCC"', 'AA"ABBBCCCDDDEEE');
114 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A" + "BBB" - "CCC"', 'AA"ABBBCCCDDDEEE');
115 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A"   "BBB" + "CCC"', 'AA"ABBBCCCDDDEEE');
116 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A"   "BBB"   "CCC"', 'AA"ABBBCCCDDDEEE');
117 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A"   "BBB" - "CCC"', 'AA"ABBBCCCDDDEEE');
118 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A" - "BBB" + "CCC"', 'AA"ABBBCCCDDDEEE');
119 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A" - "BBB"   "CCC"', 'AA"ABBBCCCDDDEEE');
120 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA\\"A" - "BBB" - "CCC"', 'AA"ABBBCCCDDDEEE');
121
122 SET ludia_funcs.escape_snippet_keyword TO on;
123 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A" + "BBB" + "CCC"', 'AA"ABBBCCCDDDEEE');
124 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A" + "BBB"   "CCC"', 'AA"ABBBCCCDDDEEE');
125 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A" + "BBB" - "CCC"', 'AA"ABBBCCCDDDEEE');
126 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A"   "BBB" + "CCC"', 'AA"ABBBCCCDDDEEE');
127 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A"   "BBB"   "CCC"', 'AA"ABBBCCCDDDEEE');
128 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A"   "BBB" - "CCC"', 'AA"ABBBCCCDDDEEE');
129 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A" - "BBB" + "CCC"', 'AA"ABBBCCCDDDEEE');
130 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A" - "BBB"   "CCC"', 'AA"ABBBCCCDDDEEE');
131 SELECT pgs2snippet1(1, 300, 1, '@', '@', 0, '"AA"A" - "BBB" - "CCC"', 'AA"ABBBCCCDDDEEE');
132
133 SELECT pgs2snippet1(1,300,1,'∇','∇',0,NULL,'あイうエおabcdeかキくケこjklmn');
134 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'あイうエおabcdeかキくケこjklmn',NULL);
135 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'エおA','あイうエおabcdeかキくケこjklmn');
136 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'えおA','あイうエおabcdeかキくケこjklmn');
137
138 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'エおA',repeat(chr(13078),10) || chr(65018) || 'あイうエおabcde' || chr(65018) || repeat(chr(13078),10) || 'かキくケこjklmn' || chr(65018) || repeat(chr(13078),10));
139 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'""' || chr(13078) || chr(65018) || 'かキ""',chr(65018) || 'あイうエおabcde' || chr(65018) || repeat(chr(13078),10) || 'かキくケこjklmn' || chr(65018)||repeat(chr(13078),10));
140 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'"' || chr(13078) || chr(65018) || 'abカ'|| '"','"' || repeat(chr(13078),10) || chr(65018) || 'あイうエおabcde' || chr(65018) || repeat(chr(13078),10) || 'かキくケこjklmn' || chr(65018) || repeat(chr(13078),10) || '"');
141 SELECT pgs2snippet1(1,3000,1,'∇','∇',0,'"' || chr(13078) || chr(65018) || '"','"' || repeat(chr(13078),10)|| repeat(chr(65018),10) || '"');
142 SELECT pgs2snippet1(1,3000,1,'∇','∇',0,'"' || repeat(chr(13078),10) || repeat(chr(65018),10) || '"','"' || chr(13078) || chr(65018)|| '"');
143
144 SELECT pgs2snippet1(1,300,1,'∇','∇',0,repeat('x',300),'abcde');
145 SELECT pgs2snippet1(1,300,1,'∇','∇',0,repeat('+',300),'+');
146 SELECT pgs2snippet1(1,300,1,'∇','∇',0,'エおA','あイうエおabcdeかキくケこjklmn') FROM generate_series(1,10);
147
148 -- pgs2norm() checks
149 SELECT pgs2norm(NULL);
150
151 SELECT count(pgs2norm(chr(code))) FROM generate_series(1, 55295) code;
152 SELECT count(pgs2norm(chr(code))) FROM generate_series(57344, 1114111) code;
153
154 SELECT pgs2norm('あイうエおabcdeかキくケこjklmn') FROM generate_series(1,10);
155
156 SELECT pgs2norm(repeat(chr(13078),10) || chr(65018) || 'あイうエおabcde' || chr(65018) || repeat(chr(13078),10) || 'かキくケこjklmn' || chr(65018) || repeat(chr(13078),10));
157 SELECT pgs2norm(repeat(chr(13078),10) || chr(65018) || repeat(chr(13078),10) || chr(65018) || repeat(chr(13078),10));
158 SELECT pgs2norm(repeat(chr(8279),8));
159
160 -- Clean up ludia_funcs module
161 DROP EXTENSION ludia_funcs;
162
163 -- Clean up the objects that a prior regression test created
164 SET client_min_messages TO 'warning';
165 DROP DATABASE IF EXISTS regtest_ludia_funcs_eucjp;
166 RESET client_min_messages;
167
168 -- Test the case where database encoding is not UTF8
169 CREATE DATABASE regtest_ludia_funcs_eucjp ENCODING 'EUC_JP' TEMPLATE template0;
170 \c regtest_ludia_funcs_eucjp
171 CREATE EXTENSION ludia_funcs;
172 SELECT * FROM pgs2norm('abc');
173 SELECT pgs2snippet1(1,300,1,'@','@',0,'CDE','abcdefg');