Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 0b2c218

Browse files
committed
PGPRO-1509: Applied new mchar_eyo_extension-v10.patch
1 parent b9d915c commit 0b2c218

File tree

10 files changed

+769
-20
lines changed

10 files changed

+769
-20
lines changed

contrib/fasttrun/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
MODULE_big = fasttrun
22
OBJS = fasttrun.o $(WIN32RES)
33
EXTENSION = fasttrun
4-
DATA = fasttrun--1.0.sql
4+
DATA = fasttrun--1.0.sql fasttrun--unpackaged--1.0.sql
55
DOCS = README.fasttrun
66
REGRESS = fasttrun
77
PGFIELDDESC = "fasttrun - functions to truncates the temporary table and doesn't grow pg_class size."
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
\echo Use "CREATE EXTENSION fasttrun FROM unpackaged" to load this file. \quit
2+
3+
ALTER EXTENSION fasttrun ADD function fasttruncate(text);
4+

contrib/fulleq/Makefile

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
MODULE_big = fulleq
22
OBJS = fulleq.o
33
EXTENSION = fulleq
4-
DATA = fulleq--1.0.sql
4+
DATA = fulleq--1.0.sql fulleq--unpackaged--1.0.sql
55
DOCS = README.fulleq
66
REGRESS = fulleq
77
PGFIELDDESC = "fulleq - introduce operator == which returns true when operands are equal or both are nulls."
@@ -11,7 +11,7 @@ ARGTYPE = bool bytea char name int8 int2 int4 text \
1111
inet cidr varchar date time timestamp timestamptz \
1212
interval timetz
1313

14-
#EXTRA_CLEAN = fulleq--1.0.sql
14+
#EXTRA_CLEAN = fulleq--1.0.sql fulleq--unpackaged--1.0.sql
1515

1616
ifdef USE_PGXS
1717
PGXS := $(shell pg_config --pgxs)
@@ -23,6 +23,8 @@ include $(top_builddir)/src/Makefile.global
2323
include $(top_srcdir)/contrib/contrib-global.mk
2424
endif
2525

26+
all: fulleq--1.0.sql fulleq--unpackaged--1.0.sql
27+
2628
fulleq--1.0.sql: fulleq--1.0.sql.in.in
2729
echo '\echo Use "CREATE EXTENSION fulleq" to load this file. \quit' > $@
2830
echo 'SET search_path = public;' >> $@
@@ -31,3 +33,14 @@ fulleq--1.0.sql: fulleq--1.0.sql.in.in
3133
sed -e "s/ARGTYPE/$$type/g" < $< >> $@; \
3234
done
3335

36+
fulleq--unpackaged--1.0.sql: fulleq-unpackaged.sql.in.in
37+
echo '\echo Use "CREATE EXTENSION fulleq FROM unpackaged" to load this file. \quit' > $@
38+
echo 'DROP OPERATOR CLASS IF EXISTS int2vector_fill_ops USING hash;' >> $@
39+
echo 'DROP OPERATOR FAMILY IF EXISTS int2vector_fill_ops USING hash;' >> $@
40+
echo 'DROP FUNCTION IF EXISTS fullhash_int2vector(int2vector);' >> $@
41+
echo 'DROP OPERATOR IF EXISTS == (int2vector, int2vector);' >> $@
42+
echo 'DROP FUNCTION IF EXISTS isfulleq_int2vector(int2vector, int2vector);' >> $@
43+
for type in $(ARGTYPE); \
44+
do \
45+
sed -e "s/ARGTYPE/$$type/g" < $< >> $@; \
46+
done
Lines changed: 266 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,266 @@
1+
cho Use "CREATE EXTENSION fulleq FROM unpackaged" to load this file. \quit
2+
DROP OPERATOR CLASS IF EXISTS int2vector_fill_ops USING hash;
3+
DROP OPERATOR FAMILY IF EXISTS int2vector_fill_ops USING hash;
4+
DROP FUNCTION IF EXISTS fullhash_int2vector(int2vector);
5+
DROP OPERATOR IF EXISTS == (int2vector, int2vector);
6+
DROP FUNCTION IF EXISTS isfulleq_int2vector(int2vector, int2vector);
7+
-- For bool
8+
9+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_bool(bool, bool);
10+
11+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_bool(bool);
12+
13+
ALTER EXTENSION fulleq ADD OPERATOR == (bool, bool);
14+
15+
ALTER EXTENSION fulleq ADD OPERATOR CLASS bool_fill_ops USING hash;
16+
17+
-- For bytea
18+
19+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_bytea(bytea, bytea);
20+
21+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_bytea(bytea);
22+
23+
ALTER EXTENSION fulleq ADD OPERATOR == (bytea, bytea);
24+
25+
ALTER EXTENSION fulleq ADD OPERATOR CLASS bytea_fill_ops USING hash;
26+
27+
-- For char
28+
29+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_char(char, char);
30+
31+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_char(char);
32+
33+
ALTER EXTENSION fulleq ADD OPERATOR == (char, char);
34+
35+
ALTER EXTENSION fulleq ADD OPERATOR CLASS char_fill_ops USING hash;
36+
37+
-- For name
38+
39+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_name(name, name);
40+
41+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_name(name);
42+
43+
ALTER EXTENSION fulleq ADD OPERATOR == (name, name);
44+
45+
ALTER EXTENSION fulleq ADD OPERATOR CLASS name_fill_ops USING hash;
46+
47+
-- For int8
48+
49+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_int8(int8, int8);
50+
51+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_int8(int8);
52+
53+
ALTER EXTENSION fulleq ADD OPERATOR == (int8, int8);
54+
55+
ALTER EXTENSION fulleq ADD OPERATOR CLASS int8_fill_ops USING hash;
56+
57+
-- For int2
58+
59+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_int2(int2, int2);
60+
61+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_int2(int2);
62+
63+
ALTER EXTENSION fulleq ADD OPERATOR == (int2, int2);
64+
65+
ALTER EXTENSION fulleq ADD OPERATOR CLASS int2_fill_ops USING hash;
66+
67+
-- For int4
68+
69+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_int4(int4, int4);
70+
71+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_int4(int4);
72+
73+
ALTER EXTENSION fulleq ADD OPERATOR == (int4, int4);
74+
75+
ALTER EXTENSION fulleq ADD OPERATOR CLASS int4_fill_ops USING hash;
76+
77+
-- For text
78+
79+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_text(text, text);
80+
81+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_text(text);
82+
83+
ALTER EXTENSION fulleq ADD OPERATOR == (text, text);
84+
85+
ALTER EXTENSION fulleq ADD OPERATOR CLASS text_fill_ops USING hash;
86+
87+
-- For oid
88+
89+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_oid(oid, oid);
90+
91+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_oid(oid);
92+
93+
ALTER EXTENSION fulleq ADD OPERATOR == (oid, oid);
94+
95+
ALTER EXTENSION fulleq ADD OPERATOR CLASS oid_fill_ops USING hash;
96+
97+
-- For xid
98+
99+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_xid(xid, xid);
100+
101+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_xid(xid);
102+
103+
ALTER EXTENSION fulleq ADD OPERATOR == (xid, xid);
104+
105+
ALTER EXTENSION fulleq ADD OPERATOR CLASS xid_fill_ops USING hash;
106+
107+
-- For cid
108+
109+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_cid(cid, cid);
110+
111+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_cid(cid);
112+
113+
ALTER EXTENSION fulleq ADD OPERATOR == (cid, cid);
114+
115+
ALTER EXTENSION fulleq ADD OPERATOR CLASS cid_fill_ops USING hash;
116+
117+
-- For oidvector
118+
119+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_oidvector(oidvector, oidvector);
120+
121+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_oidvector(oidvector);
122+
123+
ALTER EXTENSION fulleq ADD OPERATOR == (oidvector, oidvector);
124+
125+
ALTER EXTENSION fulleq ADD OPERATOR CLASS oidvector_fill_ops USING hash;
126+
127+
-- For float4
128+
129+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_float4(float4, float4);
130+
131+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_float4(float4);
132+
133+
ALTER EXTENSION fulleq ADD OPERATOR == (float4, float4);
134+
135+
ALTER EXTENSION fulleq ADD OPERATOR CLASS float4_fill_ops USING hash;
136+
137+
-- For float8
138+
139+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_float8(float8, float8);
140+
141+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_float8(float8);
142+
143+
ALTER EXTENSION fulleq ADD OPERATOR == (float8, float8);
144+
145+
ALTER EXTENSION fulleq ADD OPERATOR CLASS float8_fill_ops USING hash;
146+
147+
-- For abstime
148+
149+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_abstime(abstime, abstime);
150+
151+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_abstime(abstime);
152+
153+
ALTER EXTENSION fulleq ADD OPERATOR == (abstime, abstime);
154+
155+
ALTER EXTENSION fulleq ADD OPERATOR CLASS abstime_fill_ops USING hash;
156+
157+
-- For reltime
158+
159+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_reltime(reltime, reltime);
160+
161+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_reltime(reltime);
162+
163+
ALTER EXTENSION fulleq ADD OPERATOR == (reltime, reltime);
164+
165+
ALTER EXTENSION fulleq ADD OPERATOR CLASS reltime_fill_ops USING hash;
166+
167+
-- For macaddr
168+
169+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_macaddr(macaddr, macaddr);
170+
171+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_macaddr(macaddr);
172+
173+
ALTER EXTENSION fulleq ADD OPERATOR == (macaddr, macaddr);
174+
175+
ALTER EXTENSION fulleq ADD OPERATOR CLASS macaddr_fill_ops USING hash;
176+
177+
-- For inet
178+
179+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_inet(inet, inet);
180+
181+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_inet(inet);
182+
183+
ALTER EXTENSION fulleq ADD OPERATOR == (inet, inet);
184+
185+
ALTER EXTENSION fulleq ADD OPERATOR CLASS inet_fill_ops USING hash;
186+
187+
-- For cidr
188+
189+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_cidr(cidr, cidr);
190+
191+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_cidr(cidr);
192+
193+
ALTER EXTENSION fulleq ADD OPERATOR == (cidr, cidr);
194+
195+
ALTER EXTENSION fulleq ADD OPERATOR CLASS cidr_fill_ops USING hash;
196+
197+
-- For varchar
198+
199+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_varchar(varchar, varchar);
200+
201+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_varchar(varchar);
202+
203+
ALTER EXTENSION fulleq ADD OPERATOR == (varchar, varchar);
204+
205+
ALTER EXTENSION fulleq ADD OPERATOR CLASS varchar_fill_ops USING hash;
206+
207+
-- For date
208+
209+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_date(date, date);
210+
211+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_date(date);
212+
213+
ALTER EXTENSION fulleq ADD OPERATOR == (date, date);
214+
215+
ALTER EXTENSION fulleq ADD OPERATOR CLASS date_fill_ops USING hash;
216+
217+
-- For time
218+
219+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_time(time, time);
220+
221+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_time(time);
222+
223+
ALTER EXTENSION fulleq ADD OPERATOR == (time, time);
224+
225+
ALTER EXTENSION fulleq ADD OPERATOR CLASS time_fill_ops USING hash;
226+
227+
-- For timestamp
228+
229+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_timestamp(timestamp, timestamp);
230+
231+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_timestamp(timestamp);
232+
233+
ALTER EXTENSION fulleq ADD OPERATOR == (timestamp, timestamp);
234+
235+
ALTER EXTENSION fulleq ADD OPERATOR CLASS timestamp_fill_ops USING hash;
236+
237+
-- For timestamptz
238+
239+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_timestamptz(timestamptz, timestamptz);
240+
241+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_timestamptz(timestamptz);
242+
243+
ALTER EXTENSION fulleq ADD OPERATOR == (timestamptz, timestamptz);
244+
245+
ALTER EXTENSION fulleq ADD OPERATOR CLASS timestamptz_fill_ops USING hash;
246+
247+
-- For interval
248+
249+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_interval(interval, interval);
250+
251+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_interval(interval);
252+
253+
ALTER EXTENSION fulleq ADD OPERATOR == (interval, interval);
254+
255+
ALTER EXTENSION fulleq ADD OPERATOR CLASS interval_fill_ops USING hash;
256+
257+
-- For timetz
258+
259+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_timetz(timetz, timetz);
260+
261+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_timetz(timetz);
262+
263+
ALTER EXTENSION fulleq ADD OPERATOR == (timetz, timetz);
264+
265+
ALTER EXTENSION fulleq ADD OPERATOR CLASS timetz_fill_ops USING hash;
266+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-- For ARGTYPE
2+
3+
ALTER EXTENSION fulleq ADD FUNCTION isfulleq_ARGTYPE(ARGTYPE, ARGTYPE);
4+
5+
ALTER EXTENSION fulleq ADD FUNCTION fullhash_ARGTYPE(ARGTYPE);
6+
7+
ALTER EXTENSION fulleq ADD OPERATOR == (ARGTYPE, ARGTYPE);
8+
9+
ALTER EXTENSION fulleq ADD OPERATOR CLASS ARGTYPE_fill_ops USING hash;
10+

contrib/mchar/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ MODULE_big = mchar
22
OBJS = mchar_io.o mchar_proc.o mchar_op.o mchar_recode.o \
33
mchar_like.o
44
EXTENSION = mchar
5-
DATA = mchar--1.0.sql
5+
DATA = mchar--1.0.sql mchar--unpackaged--1.0.sql
66
DOCS = README.mchar
77
REGRESS = init mchar mvarchar like
8+
ENCODING = UTF8
89
ifndef NO_LOCALE
910
REGRESS += mm compat
1011
endif

contrib/mchar/expected/mm.out

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,3 +803,53 @@ SELECT * FROM a, c WHERE mvarchar255 = mchar2;
803803

804804
DROP TABLE a;
805805
DROP TABLE c;
806+
select * from (values
807+
('е'::mchar),('ё'),('еа'),('еб'),('ее'),('еж'),('ёа'),('ёб'),('ёё'),('ёж'),('ёе'),('её'))
808+
z order by 1;
809+
column1
810+
---------
811+
е
812+
ё
813+
еа
814+
ёа
815+
еб
816+
ёб
817+
ее
818+
её
819+
ёе
820+
ёё
821+
еж
822+
ёж
823+
(12 rows)
824+
825+
select 'ё'::mchar = 'е';
826+
?column?
827+
----------
828+
f
829+
(1 row)
830+
831+
select 'Ё'::mchar = 'Е';
832+
?column?
833+
----------
834+
f
835+
(1 row)
836+
837+
select 'й'::mchar = 'и';
838+
?column?
839+
----------
840+
f
841+
(1 row)
842+
843+
select 'Й'::mchar = 'И';
844+
?column?
845+
----------
846+
f
847+
(1 row)
848+
849+
select mvarchar_icase_cmp('ёа','еб'), mvarchar_icase_cmp('еб','ё'),
850+
mvarchar_icase_cmp('ё', 'ёа');
851+
mvarchar_icase_cmp | mvarchar_icase_cmp | mvarchar_icase_cmp
852+
--------------------+--------------------+--------------------
853+
-1 | 1 | -1
854+
(1 row)
855+

0 commit comments

Comments
 (0)