@@ -8,7 +8,9 @@ CREATE TYPE ore_64_8_v1 AS (
88 terms ore_64_8_v1_term[]
99);
1010
11- CREATE OR REPLACE FUNCTION compare_ore_64_8_v1_term (a ore_64_8_v1_term, b ore_64_8_v1_term) returns integer AS $$
11+ DROP FUNCTION IF EXISTS compare_ore_64_8_v1_term(a ore_64_8_v1_term, b ore_64_8_v1_term);
12+
13+ CREATE FUNCTION compare_ore_64_8_v1_term (a ore_64_8_v1_term, b ore_64_8_v1_term) returns integer AS $$
1214 DECLARE
1315 eq boolean := true;
1416 unequal_block smallint := 0 ;
@@ -85,30 +87,54 @@ CREATE OR REPLACE FUNCTION compare_ore_64_8_v1_term(a ore_64_8_v1_term, b ore_64
8587$$ LANGUAGE plpgsql;
8688
8789
88- CREATE OR REPLACE FUNCTION ore_64_8_v1_term_eq (a ore_64_8_v1_term, b ore_64_8_v1_term) RETURNS boolean AS $$
90+ DROP FUNCTION IF EXISTS ore_64_8_v1_term_eq(a ore_64_8_v1_term, b ore_64_8_v1_term);
91+
92+ CREATE FUNCTION ore_64_8_v1_term_eq (a ore_64_8_v1_term, b ore_64_8_v1_term)
93+ RETURNS boolean AS $$
8994 SELECT compare_ore_64_8_v1_term(a, b) = 0
9095$$ LANGUAGE SQL;
9196
92- CREATE OR REPLACE FUNCTION ore_64_8_v1_term_neq (a ore_64_8_v1_term, b ore_64_8_v1_term) RETURNS boolean AS $$
97+
98+ DROP FUNCTION IF EXISTS ore_64_8_v1_term_neq(a ore_64_8_v1_term, b ore_64_8_v1_term);
99+
100+ CREATE FUNCTION ore_64_8_v1_term_neq (a ore_64_8_v1_term, b ore_64_8_v1_term)
101+ RETURNS boolean AS $$
93102 SELECT compare_ore_64_8_v1_term(a, b) <> 0
94103$$ LANGUAGE SQL;
95104
96- CREATE OR REPLACE FUNCTION ore_64_8_v1_term_lt (a ore_64_8_v1_term, b ore_64_8_v1_term) RETURNS boolean AS $$
105+
106+ DROP FUNCTION IF EXISTS ore_64_8_v1_term_lt(a ore_64_8_v1_term, b ore_64_8_v1_term);
107+
108+ CREATE FUNCTION ore_64_8_v1_term_lt (a ore_64_8_v1_term, b ore_64_8_v1_term)
109+ RETURNS boolean AS $$
97110 SELECT compare_ore_64_8_v1_term(a, b) = - 1
98111$$ LANGUAGE SQL;
99112
100- CREATE OR REPLACE FUNCTION ore_64_8_v1_term_lte (a ore_64_8_v1_term, b ore_64_8_v1_term) RETURNS boolean AS $$
113+
114+ DROP FUNCTION IF EXISTS ore_64_8_v1_term_lte(a ore_64_8_v1_term, b ore_64_8_v1_term);
115+
116+ CREATE FUNCTION ore_64_8_v1_term_lte (a ore_64_8_v1_term, b ore_64_8_v1_term)
117+ RETURNS boolean AS $$
101118 SELECT compare_ore_64_8_v1_term(a, b) != 1
102119$$ LANGUAGE SQL;
103120
104- CREATE OR REPLACE FUNCTION ore_64_8_v1_term_gt (a ore_64_8_v1_term, b ore_64_8_v1_term) RETURNS boolean AS $$
121+
122+ DROP FUNCTION IF EXISTS ore_64_8_v1_term_gt(a ore_64_8_v1_term, b ore_64_8_v1_term);
123+ RETURNS boolean AS $$
105124 SELECT compare_ore_64_8_v1_term(a, b) = 1
106125$$ LANGUAGE SQL;
107126
108- CREATE OR REPLACE FUNCTION ore_64_8_v1_term_gte (a ore_64_8_v1_term, b ore_64_8_v1_term) RETURNS boolean AS $$
127+
128+ DROP FUNCTION IF EXISTS ore_64_8_v1_term_gte(a ore_64_8_v1_term, b ore_64_8_v1_term);
129+
130+ CREATE FUNCTION ore_64_8_v1_term_gte (a ore_64_8_v1_term, b ore_64_8_v1_term)
131+ RETURNS boolean AS $$
109132 SELECT compare_ore_64_8_v1_term(a, b) != - 1
110133$$ LANGUAGE SQL;
111134
135+
136+ DROP OPERATOR IF EXISTS = (ore_64_8_v1_term, ore_64_8_v1_term);
137+
112138CREATE OPERATOR = (
113139 PROCEDURE= " ore_64_8_v1_term_eq" ,
114140 LEFTARG= ore_64_8_v1_term,
@@ -120,6 +146,9 @@ CREATE OPERATOR = (
120146 MERGES
121147);
122148
149+
150+ DROP OPERATOR IF EXISTS <> (ore_64_8_v1_term, ore_64_8_v1_term);
151+
123152CREATE OPERATOR <> (
124153 PROCEDURE= " ore_64_8_v1_term_neq" ,
125154 LEFTARG= ore_64_8_v1_term,
@@ -131,6 +160,8 @@ CREATE OPERATOR <> (
131160 MERGES
132161);
133162
163+ DROP OPERATOR IF EXISTS > (ore_64_8_v1_term, ore_64_8_v1_term);
164+
134165CREATE OPERATOR > (
135166 PROCEDURE= " ore_64_8_v1_term_gt" ,
136167 LEFTARG= ore_64_8_v1_term,
@@ -141,6 +172,8 @@ CREATE OPERATOR > (
141172 JOIN = scalargtjoinsel
142173);
143174
175+ DROP OPERATOR IF EXISTS < (ore_64_8_v1_term, ore_64_8_v1_term);
176+
144177CREATE OPERATOR < (
145178 PROCEDURE= " ore_64_8_v1_term_lt" ,
146179 LEFTARG= ore_64_8_v1_term,
@@ -151,6 +184,8 @@ CREATE OPERATOR < (
151184 JOIN = scalarltjoinsel
152185);
153186
187+ DROP OPERATOR IF EXISTS <= (ore_64_8_v1_term, ore_64_8_v1_term);
188+
154189CREATE OPERATOR <= (
155190 PROCEDURE= " ore_64_8_v1_term_lte" ,
156191 LEFTARG= ore_64_8_v1_term,
@@ -161,6 +196,8 @@ CREATE OPERATOR <= (
161196 JOIN = scalarlejoinsel
162197);
163198
199+ DROP OPERATOR IF EXISTS >= (ore_64_8_v1_term, ore_64_8_v1_term);
200+
164201CREATE OPERATOR >= (
165202 PROCEDURE= " ore_64_8_v1_term_gte" ,
166203 LEFTARG= ore_64_8_v1_term,
@@ -171,7 +208,13 @@ CREATE OPERATOR >= (
171208 JOIN = scalarlejoinsel
172209);
173210
211+ DROP OPERATOR FAMILY IF EXISTS ore_64_8_v1_term_btree_ops USING btree;
212+
174213CREATE OPERATOR FAMILY ore_64_8_v1_term_btree_ops USING btree;
214+
215+
216+ DROP OPERATOR CLASS IF EXISTS ore_64_8_v1_term_btree_ops USING btree;
217+
175218CREATE OPERATOR CLASS ore_64_8_v1_term_btree_ops DEFAULT FOR TYPE ore_64_8_v1_term USING btree FAMILY ore_64_8_v1_term_btree_ops AS
176219 OPERATOR 1 < ,
177220 OPERATOR 2 <= ,
@@ -187,7 +230,10 @@ CREATE OPERATOR CLASS ore_64_8_v1_term_btree_ops DEFAULT FOR TYPE ore_64_8_v1_te
187230-- doesn't always make sense but it's here for completeness.
188231-- If both are non-empty, we compare the first element. If they are equal
189232-- we need to consider the next block so we recurse, otherwise we return the comparison result.
190- CREATE OR REPLACE FUNCTION compare_ore_array (a ore_64_8_v1_term[], b ore_64_8_v1_term[]) returns integer AS $$
233+ DROP FUNCTION IF EXISTS compare_ore_array(a ore_64_8_v1_term[], b ore_64_8_v1_term[]);
234+
235+ CREATE FUNCTION compare_ore_array (a ore_64_8_v1_term[], b ore_64_8_v1_term[])
236+ RETURNS integer AS $$
191237 DECLARE
192238 cmp_result integer ;
193239 BEGIN
@@ -212,7 +258,10 @@ CREATE OR REPLACE FUNCTION compare_ore_array(a ore_64_8_v1_term[], b ore_64_8_v1
212258$$ LANGUAGE plpgsql;
213259
214260-- This function uses lexicographic comparison
215- CREATE OR REPLACE FUNCTION compare_ore_64_8_v1 (a ore_64_8_v1, b ore_64_8_v1) returns integer AS $$
261+ DROP FUNCTION IF EXISTS compare_ore_64_8_v1(a ore_64_8_v1, b ore_64_8_v1);
262+
263+ CREATE FUNCTION compare_ore_64_8_v1 (a ore_64_8_v1, b ore_64_8_v1)
264+ RETURNS integer AS $$
216265 DECLARE
217266 cmp_result integer ;
218267 BEGIN
@@ -221,30 +270,57 @@ CREATE OR REPLACE FUNCTION compare_ore_64_8_v1(a ore_64_8_v1, b ore_64_8_v1) ret
221270 END
222271$$ LANGUAGE plpgsql;
223272
224- CREATE OR REPLACE FUNCTION ore_64_8_v1_eq (a ore_64_8_v1, b ore_64_8_v1) RETURNS boolean AS $$
273+
274+ DROP FUNCTION IF EXISTS ore_64_8_v1_eq(a ore_64_8_v1, b ore_64_8_v1);
275+
276+ CREATE FUNCTION ore_64_8_v1_eq (a ore_64_8_v1, b ore_64_8_v1)
277+ RETURNS boolean AS $$
225278 SELECT compare_ore_64_8_v1(a, b) = 0
226279$$ LANGUAGE SQL;
227280
228- CREATE OR REPLACE FUNCTION ore_64_8_v1_neq (a ore_64_8_v1, b ore_64_8_v1) RETURNS boolean AS $$
281+
282+ DROP FUNCTION IF EXISTS ore_64_8_v1_neq(a ore_64_8_v1, b ore_64_8_v1);
283+
284+ CREATE FUNCTION ore_64_8_v1_neq (a ore_64_8_v1, b ore_64_8_v1)
285+ RETURNS boolean AS $$
229286 SELECT compare_ore_64_8_v1(a, b) <> 0
230287$$ LANGUAGE SQL;
231288
232- CREATE OR REPLACE FUNCTION ore_64_8_v1_lt (a ore_64_8_v1, b ore_64_8_v1) RETURNS boolean AS $$
289+
290+ DROP FUNCTION IF EXISTS ore_64_8_v1_lt(a ore_64_8_v1, b ore_64_8_v1);
291+
292+ CREATE FUNCTION ore_64_8_v1_lt (a ore_64_8_v1, b ore_64_8_v1)
293+ RETURNS boolean AS $$
233294 SELECT compare_ore_64_8_v1(a, b) = - 1
234295$$ LANGUAGE SQL;
235296
236- CREATE OR REPLACE FUNCTION ore_64_8_v1_lte (a ore_64_8_v1, b ore_64_8_v1) RETURNS boolean AS $$
297+
298+ DROP FUNCTION IF EXISTS ore_64_8_v1_lte(a ore_64_8_v1, b ore_64_8_v1);
299+
300+ CREATE FUNCTION ore_64_8_v1_lte (a ore_64_8_v1, b ore_64_8_v1)
301+ RETURNS boolean AS $$
237302 SELECT compare_ore_64_8_v1(a, b) != 1
238303$$ LANGUAGE SQL;
239304
240- CREATE OR REPLACE FUNCTION ore_64_8_v1_gt (a ore_64_8_v1, b ore_64_8_v1) RETURNS boolean AS $$
305+
306+ DROP FUNCTION IF EXISTS ore_64_8_v1_gt(a ore_64_8_v1, b ore_64_8_v1);
307+
308+ CREATE FUNCTION ore_64_8_v1_gt (a ore_64_8_v1, b ore_64_8_v1)
309+ RETURNS boolean AS $$
241310 SELECT compare_ore_64_8_v1(a, b) = 1
242311$$ LANGUAGE SQL;
243312
244- CREATE OR REPLACE FUNCTION ore_64_8_v1_gte (a ore_64_8_v1, b ore_64_8_v1) RETURNS boolean AS $$
313+
314+ DROP FUNCTION IF EXISTS ore_64_8_v1_gte(a ore_64_8_v1, b ore_64_8_v1);
315+
316+ CREATE FUNCTION ore_64_8_v1_gte (a ore_64_8_v1, b ore_64_8_v1)
317+ RETURNS boolean AS $$
245318 SELECT compare_ore_64_8_v1(a, b) != - 1
246319$$ LANGUAGE SQL;
247320
321+
322+ DROP OPERATOR IF EXISTS = (ore_64_8_v1, ore_64_8_v1);
323+
248324CREATE OPERATOR = (
249325 PROCEDURE= " ore_64_8_v1_eq" ,
250326 LEFTARG= ore_64_8_v1,
@@ -256,6 +332,9 @@ CREATE OPERATOR = (
256332 MERGES
257333);
258334
335+
336+ DROP OPERATOR IF EXISTS <> (ore_64_8_v1, ore_64_8_v1);
337+
259338CREATE OPERATOR <> (
260339 PROCEDURE= " ore_64_8_v1_neq" ,
261340 LEFTARG= ore_64_8_v1,
@@ -267,6 +346,8 @@ CREATE OPERATOR <> (
267346 MERGES
268347);
269348
349+ DROP OPERATOR IF EXISTS > (ore_64_8_v1, ore_64_8_v1);
350+
270351CREATE OPERATOR > (
271352 PROCEDURE= " ore_64_8_v1_gt" ,
272353 LEFTARG= ore_64_8_v1,
@@ -277,6 +358,9 @@ CREATE OPERATOR > (
277358 JOIN = scalargtjoinsel
278359);
279360
361+
362+ DROP OPERATOR IF EXISTS < (ore_64_8_v1, ore_64_8_v1);
363+
280364CREATE OPERATOR < (
281365 PROCEDURE= " ore_64_8_v1_lt" ,
282366 LEFTARG= ore_64_8_v1,
@@ -287,6 +371,9 @@ CREATE OPERATOR < (
287371 JOIN = scalarltjoinsel
288372);
289373
374+
375+ DROP OPERATOR IF EXISTS <= (ore_64_8_v1, ore_64_8_v1);
376+
290377CREATE OPERATOR <= (
291378 PROCEDURE= " ore_64_8_v1_lte" ,
292379 LEFTARG= ore_64_8_v1,
@@ -297,6 +384,9 @@ CREATE OPERATOR <= (
297384 JOIN = scalarlejoinsel
298385);
299386
387+
388+ DROP OPERATOR IF EXISTS >= (ore_64_8_v1, ore_64_8_v1);
389+
300390CREATE OPERATOR >= (
301391 PROCEDURE= " ore_64_8_v1_gte" ,
302392 LEFTARG= ore_64_8_v1,
@@ -307,7 +397,14 @@ CREATE OPERATOR >= (
307397 JOIN = scalarlejoinsel
308398);
309399
400+
401+ DROP OPERATOR FAMILY IF EXISTS ore_64_8_v1_btree_ops USING btree;
402+
310403CREATE OPERATOR FAMILY ore_64_8_v1_btree_ops USING btree;
404+
405+
406+ DROP OPERATOR CLASS IF EXISTS ore_64_8_v1_btree_ops USING btree;
407+
311408CREATE OPERATOR CLASS ore_64_8_v1_btree_ops DEFAULT FOR TYPE ore_64_8_v1 USING btree FAMILY ore_64_8_v1_btree_ops AS
312409 OPERATOR 1 < ,
313410 OPERATOR 2 <= ,
0 commit comments