Fix compiler warnings
[smlar.git] / smlar.sql.in.in
1 SET search_path = public;
2
3 CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray)
4         RETURNS float4
5         AS      'MODULE_PATHNAME', 'arraysml'
6         LANGUAGE C STRICT IMMUTABLE;
7
8 CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray, bool)
9         RETURNS float4
10         AS      'MODULE_PATHNAME', 'arraysmlw'
11         LANGUAGE C STRICT IMMUTABLE;
12
13 CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray, text)
14     RETURNS float4
15         AS  'MODULE_PATHNAME', 'arraysml_func'
16         LANGUAGE C STRICT IMMUTABLE;
17
18 CREATE OR REPLACE FUNCTION set_smlar_limit(float4)
19         RETURNS float4
20         AS 'MODULE_PATHNAME'
21         LANGUAGE C STRICT VOLATILE;
22
23 CREATE OR REPLACE FUNCTION show_smlar_limit()
24         RETURNS float4
25         AS 'MODULE_PATHNAME'
26         LANGUAGE C STRICT STABLE;
27
28 CREATE OR REPLACE FUNCTION smlar_op(anyarray,anyarray)
29         RETURNS bool
30         AS 'MODULE_PATHNAME', 'arraysml_op'
31         LANGUAGE C STRICT STABLE;
32
33 CREATE OPERATOR % (
34         LEFTARG = anyarray,
35         RIGHTARG = anyarray,
36         PROCEDURE = smlar_op,
37         COMMUTATOR = '%',
38         RESTRICT = contsel,
39         JOIN = contjoinsel
40 );
41
42 --
43
44 CREATE OR REPLACE FUNCTION tsvector2textarray(tsvector)
45         RETURNS _text
46         AS 'MODULE_PATHNAME', 'tsvector2textarray'
47         LANGUAGE C STRICT IMMUTABLE;
48
49 CREATE OR REPLACE FUNCTION array_unique(anyarray)
50         RETURNS anyarray
51         AS      'MODULE_PATHNAME', 'array_unique'
52         LANGUAGE C STRICT IMMUTABLE;
53
54 CREATE OR REPLACE FUNCTION inarray(anyarray, anyelement)
55         RETURNS float4
56         AS      'MODULE_PATHNAME', 'inarray'
57         LANGUAGE C STRICT IMMUTABLE;
58
59 CREATE OR REPLACE FUNCTION inarray(anyarray, anyelement, float4, float4)
60         RETURNS float4
61         AS      'MODULE_PATHNAME', 'inarray'
62         LANGUAGE C STRICT IMMUTABLE;
63
64 --gist key
65
66 CREATE OR REPLACE FUNCTION gsmlsign_in(cstring)
67         RETURNS gsmlsign
68         AS 'MODULE_PATHNAME'
69         LANGUAGE C STRICT;
70
71 CREATE OR REPLACE FUNCTION gsmlsign_out(gsmlsign)
72         RETURNS cstring
73         AS 'MODULE_PATHNAME'
74         LANGUAGE C STRICT;
75
76 CREATE TYPE gsmlsign (
77         INTERNALLENGTH = -1,
78         INPUT = gsmlsign_in,
79         OUTPUT = gsmlsign_out
80 );
81
82 -- support functions for gist
83 CREATE OR REPLACE FUNCTION gsmlsign_consistent(gsmlsign,internal,int4)
84         RETURNS bool
85         AS 'MODULE_PATHNAME'
86         LANGUAGE C IMMUTABLE;
87
88 CREATE OR REPLACE FUNCTION gsmlsign_compress(internal)
89         RETURNS internal
90         AS 'MODULE_PATHNAME'
91         LANGUAGE C IMMUTABLE;
92
93 CREATE OR REPLACE FUNCTION gsmlsign_decompress(internal)
94         RETURNS internal
95         AS 'MODULE_PATHNAME'
96         LANGUAGE C IMMUTABLE;
97
98 CREATE OR REPLACE FUNCTION gsmlsign_penalty(internal,internal,internal)
99         RETURNS internal
100         AS 'MODULE_PATHNAME'
101         LANGUAGE C STRICT IMMUTABLE;
102
103 CREATE OR REPLACE FUNCTION gsmlsign_picksplit(internal, internal)
104         RETURNS internal
105         AS 'MODULE_PATHNAME'
106         LANGUAGE C IMMUTABLE;
107
108 CREATE OR REPLACE FUNCTION gsmlsign_union(bytea, internal)
109         RETURNS _int4
110         AS 'MODULE_PATHNAME'
111         LANGUAGE C IMMUTABLE;
112
113 CREATE OR REPLACE FUNCTION gsmlsign_same(gsmlsign, gsmlsign, internal)
114         RETURNS internal
115         AS 'MODULE_PATHNAME'
116         LANGUAGE C IMMUTABLE;
117
118 --create the operator classes for gist
119
120 CREATE OPERATOR CLASS _int2_sml_ops
121 FOR TYPE _int2 USING gist
122 AS
123         OPERATOR        1       && (anyarray, anyarray),
124         OPERATOR        2       % (anyarray, anyarray),
125         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
126         FUNCTION        2       gsmlsign_union (bytea, internal),
127         FUNCTION        3       gsmlsign_compress (internal),
128         FUNCTION        4       gsmlsign_decompress (internal),
129         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
130         FUNCTION        6       gsmlsign_picksplit (internal, internal),
131         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
132 STORAGE         gsmlsign;
133
134 CREATE OPERATOR CLASS _int4_sml_ops
135 FOR TYPE _int4 USING gist
136 AS
137         OPERATOR        1       && (anyarray, anyarray),
138         OPERATOR        2       % (anyarray, anyarray),
139         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
140         FUNCTION        2       gsmlsign_union (bytea, internal),
141         FUNCTION        3       gsmlsign_compress (internal),
142         FUNCTION        4       gsmlsign_decompress (internal),
143         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
144         FUNCTION        6       gsmlsign_picksplit (internal, internal),
145         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
146 STORAGE         gsmlsign;
147
148 CREATE OPERATOR CLASS _int8_sml_ops
149 FOR TYPE _int8 USING gist
150 AS
151         OPERATOR        1       && (anyarray, anyarray),
152         OPERATOR        2       % (anyarray, anyarray),
153         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
154         FUNCTION        2       gsmlsign_union (bytea, internal),
155         FUNCTION        3       gsmlsign_compress (internal),
156         FUNCTION        4       gsmlsign_decompress (internal),
157         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
158         FUNCTION        6       gsmlsign_picksplit (internal, internal),
159         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
160 STORAGE         gsmlsign;
161
162 CREATE OPERATOR CLASS _float4_sml_ops
163 FOR TYPE _float4 USING gist
164 AS
165         OPERATOR        1       && (anyarray, anyarray),
166         OPERATOR        2       % (anyarray, anyarray),
167         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
168         FUNCTION        2       gsmlsign_union (bytea, internal),
169         FUNCTION        3       gsmlsign_compress (internal),
170         FUNCTION        4       gsmlsign_decompress (internal),
171         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
172         FUNCTION        6       gsmlsign_picksplit (internal, internal),
173         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
174 STORAGE         gsmlsign;
175
176 CREATE OPERATOR CLASS _float8_sml_ops
177 FOR TYPE _float8 USING gist
178 AS
179         OPERATOR        1       && (anyarray, anyarray),
180         OPERATOR        2       % (anyarray, anyarray),
181         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
182         FUNCTION        2       gsmlsign_union (bytea, internal),
183         FUNCTION        3       gsmlsign_compress (internal),
184         FUNCTION        4       gsmlsign_decompress (internal),
185         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
186         FUNCTION        6       gsmlsign_picksplit (internal, internal),
187         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
188 STORAGE         gsmlsign;
189
190 -- money type hasn't hash support
191 --CREATE OPERATOR CLASS _money_sml_ops
192 --FOR TYPE _money USING gist
193 --AS
194 --      OPERATOR        1       && (anyarray, anyarray),
195 --      OPERATOR        2       % (anyarray, anyarray),
196 --      FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
197 --      FUNCTION        2       gsmlsign_union (bytea, internal),
198 --      FUNCTION        3       gsmlsign_compress (internal),
199 --      FUNCTION        4       gsmlsign_decompress (internal),
200 --      FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
201 --      FUNCTION        6       gsmlsign_picksplit (internal, internal),
202 --      FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
203 --STORAGE         gsmlsign;
204
205 CREATE OPERATOR CLASS _oid_sml_ops
206 FOR TYPE _oid USING gist
207 AS
208         OPERATOR        1       && (anyarray, anyarray),
209         OPERATOR        2       % (anyarray, anyarray),
210         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
211         FUNCTION        2       gsmlsign_union (bytea, internal),
212         FUNCTION        3       gsmlsign_compress (internal),
213         FUNCTION        4       gsmlsign_decompress (internal),
214         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
215         FUNCTION        6       gsmlsign_picksplit (internal, internal),
216         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
217 STORAGE         gsmlsign;
218
219 CREATE OPERATOR CLASS _timestamp_sml_ops
220 FOR TYPE _timestamp USING gist
221 AS
222         OPERATOR        1       && (anyarray, anyarray),
223         OPERATOR        2       % (anyarray, anyarray),
224         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
225         FUNCTION        2       gsmlsign_union (bytea, internal),
226         FUNCTION        3       gsmlsign_compress (internal),
227         FUNCTION        4       gsmlsign_decompress (internal),
228         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
229         FUNCTION        6       gsmlsign_picksplit (internal, internal),
230         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
231 STORAGE         gsmlsign;
232
233 CREATE OPERATOR CLASS _timestamptz_sml_ops
234 FOR TYPE _timestamptz USING gist
235 AS
236         OPERATOR        1       && (anyarray, anyarray),
237         OPERATOR        2       % (anyarray, anyarray),
238         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
239         FUNCTION        2       gsmlsign_union (bytea, internal),
240         FUNCTION        3       gsmlsign_compress (internal),
241         FUNCTION        4       gsmlsign_decompress (internal),
242         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
243         FUNCTION        6       gsmlsign_picksplit (internal, internal),
244         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
245 STORAGE         gsmlsign;
246
247 CREATE OPERATOR CLASS _time_sml_ops
248 FOR TYPE _time USING gist
249 AS
250         OPERATOR        1       && (anyarray, anyarray),
251         OPERATOR        2       % (anyarray, anyarray),
252         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
253         FUNCTION        2       gsmlsign_union (bytea, internal),
254         FUNCTION        3       gsmlsign_compress (internal),
255         FUNCTION        4       gsmlsign_decompress (internal),
256         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
257         FUNCTION        6       gsmlsign_picksplit (internal, internal),
258         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
259 STORAGE         gsmlsign;
260
261 CREATE OPERATOR CLASS _timetz_sml_ops
262 FOR TYPE _timetz USING gist
263 AS
264         OPERATOR        1       && (anyarray, anyarray),
265         OPERATOR        2       % (anyarray, anyarray),
266         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
267         FUNCTION        2       gsmlsign_union (bytea, internal),
268         FUNCTION        3       gsmlsign_compress (internal),
269         FUNCTION        4       gsmlsign_decompress (internal),
270         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
271         FUNCTION        6       gsmlsign_picksplit (internal, internal),
272         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
273 STORAGE         gsmlsign;
274
275 CREATE OPERATOR CLASS _date_sml_ops
276 FOR TYPE _date USING gist
277 AS
278         OPERATOR        1       && (anyarray, anyarray),
279         OPERATOR        2       % (anyarray, anyarray),
280         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
281         FUNCTION        2       gsmlsign_union (bytea, internal),
282         FUNCTION        3       gsmlsign_compress (internal),
283         FUNCTION        4       gsmlsign_decompress (internal),
284         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
285         FUNCTION        6       gsmlsign_picksplit (internal, internal),
286         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
287 STORAGE         gsmlsign;
288
289 CREATE OPERATOR CLASS _interval_sml_ops
290 FOR TYPE _interval USING gist
291 AS
292         OPERATOR        1       && (anyarray, anyarray),
293         OPERATOR        2       % (anyarray, anyarray),
294         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
295         FUNCTION        2       gsmlsign_union (bytea, internal),
296         FUNCTION        3       gsmlsign_compress (internal),
297         FUNCTION        4       gsmlsign_decompress (internal),
298         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
299         FUNCTION        6       gsmlsign_picksplit (internal, internal),
300         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
301 STORAGE         gsmlsign;
302
303 CREATE OPERATOR CLASS _macaddr_sml_ops
304 FOR TYPE _macaddr USING gist
305 AS
306         OPERATOR        1       && (anyarray, anyarray),
307         OPERATOR        2       % (anyarray, anyarray),
308         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
309         FUNCTION        2       gsmlsign_union (bytea, internal),
310         FUNCTION        3       gsmlsign_compress (internal),
311         FUNCTION        4       gsmlsign_decompress (internal),
312         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
313         FUNCTION        6       gsmlsign_picksplit (internal, internal),
314         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
315 STORAGE         gsmlsign;
316
317 CREATE OPERATOR CLASS _inet_sml_ops
318 FOR TYPE _inet USING gist
319 AS
320         OPERATOR        1       && (anyarray, anyarray),
321         OPERATOR        2       % (anyarray, anyarray),
322         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
323         FUNCTION        2       gsmlsign_union (bytea, internal),
324         FUNCTION        3       gsmlsign_compress (internal),
325         FUNCTION        4       gsmlsign_decompress (internal),
326         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
327         FUNCTION        6       gsmlsign_picksplit (internal, internal),
328         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
329 STORAGE         gsmlsign;
330
331 CREATE OPERATOR CLASS _cidr_sml_ops
332 FOR TYPE _cidr USING gist
333 AS
334         OPERATOR        1       && (anyarray, anyarray),
335         OPERATOR        2       % (anyarray, anyarray),
336         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
337         FUNCTION        2       gsmlsign_union (bytea, internal),
338         FUNCTION        3       gsmlsign_compress (internal),
339         FUNCTION        4       gsmlsign_decompress (internal),
340         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
341         FUNCTION        6       gsmlsign_picksplit (internal, internal),
342         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
343 STORAGE         gsmlsign;
344
345 CREATE OPERATOR CLASS _text_sml_ops
346 FOR TYPE _text USING gist
347 AS
348         OPERATOR        1       && (anyarray, anyarray),
349         OPERATOR        2       % (anyarray, anyarray),
350         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
351         FUNCTION        2       gsmlsign_union (bytea, internal),
352         FUNCTION        3       gsmlsign_compress (internal),
353         FUNCTION        4       gsmlsign_decompress (internal),
354         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
355         FUNCTION        6       gsmlsign_picksplit (internal, internal),
356         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
357 STORAGE         gsmlsign;
358
359 CREATE OPERATOR CLASS _varchar_sml_ops
360 FOR TYPE _varchar USING gist
361 AS
362         OPERATOR        1       && (anyarray, anyarray),
363         OPERATOR        2       % (anyarray, anyarray),
364         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
365         FUNCTION        2       gsmlsign_union (bytea, internal),
366         FUNCTION        3       gsmlsign_compress (internal),
367         FUNCTION        4       gsmlsign_decompress (internal),
368         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
369         FUNCTION        6       gsmlsign_picksplit (internal, internal),
370         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
371 STORAGE         gsmlsign;
372
373 CREATE OPERATOR CLASS _char_sml_ops
374 FOR TYPE _char USING gist
375 AS
376         OPERATOR        1       && (anyarray, anyarray),
377         OPERATOR        2       % (anyarray, anyarray),
378         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
379         FUNCTION        2       gsmlsign_union (bytea, internal),
380         FUNCTION        3       gsmlsign_compress (internal),
381         FUNCTION        4       gsmlsign_decompress (internal),
382         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
383         FUNCTION        6       gsmlsign_picksplit (internal, internal),
384         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
385 STORAGE         gsmlsign;
386
387 CREATE OPERATOR CLASS _bytea_sml_ops
388 FOR TYPE _bytea USING gist
389 AS
390         OPERATOR        1       && (anyarray, anyarray),
391         OPERATOR        2       % (anyarray, anyarray),
392         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
393         FUNCTION        2       gsmlsign_union (bytea, internal),
394         FUNCTION        3       gsmlsign_compress (internal),
395         FUNCTION        4       gsmlsign_decompress (internal),
396         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
397         FUNCTION        6       gsmlsign_picksplit (internal, internal),
398         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
399 STORAGE         gsmlsign;
400
401 --no hash 
402 --CREATE OPERATOR CLASS _bit_sml_ops
403 --FOR TYPE _bit USING gist
404 --AS
405 --      OPERATOR        1       && (anyarray, anyarray),
406 --      OPERATOR        2       % (anyarray, anyarray),
407 --      FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
408 --      FUNCTION        2       gsmlsign_union (bytea, internal),
409 --      FUNCTION        3       gsmlsign_compress (internal),
410 --      FUNCTION        4       gsmlsign_decompress (internal),
411 --      FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
412 --      FUNCTION        6       gsmlsign_picksplit (internal, internal),
413 --      FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
414 --STORAGE         gsmlsign;
415
416 --CREATE OPERATOR CLASS _varbit_sml_ops
417 --FOR TYPE _varbit USING gist
418 --AS
419 --      OPERATOR        1       && (anyarray, anyarray),
420 --      OPERATOR        2       % (anyarray, anyarray),
421 --      FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
422 --      FUNCTION        2       gsmlsign_union (bytea, internal),
423 --      FUNCTION        3       gsmlsign_compress (internal),
424 --      FUNCTION        4       gsmlsign_decompress (internal),
425 --      FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
426 --      FUNCTION        6       gsmlsign_picksplit (internal, internal),
427 --      FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
428 --STORAGE         gsmlsign;
429
430 CREATE OPERATOR CLASS _numeric_sml_ops
431 FOR TYPE _numeric USING gist
432 AS
433         OPERATOR        1       && (anyarray, anyarray),
434         OPERATOR        2       % (anyarray, anyarray),
435         FUNCTION        1       gsmlsign_consistent (gsmlsign, internal, int4),
436         FUNCTION        2       gsmlsign_union (bytea, internal),
437         FUNCTION        3       gsmlsign_compress (internal),
438         FUNCTION        4       gsmlsign_decompress (internal),
439         FUNCTION        5       gsmlsign_penalty (internal, internal, internal),
440         FUNCTION        6       gsmlsign_picksplit (internal, internal),
441         FUNCTION        7       gsmlsign_same (gsmlsign, gsmlsign, internal),
442 STORAGE         gsmlsign;
443
444 --gin support functions
445 CREATE OR REPLACE FUNCTION smlararrayextract(anyarray, internal)
446         RETURNS internal
447         AS 'MODULE_PATHNAME'
448         LANGUAGE C IMMUTABLE;
449
450 CREATE OR REPLACE FUNCTION smlarqueryarrayextract(anyarray, internal, internal)
451         RETURNS internal
452         AS 'MODULE_PATHNAME'
453         LANGUAGE C IMMUTABLE;
454
455 CREATE OR REPLACE FUNCTION smlararrayconsistent(internal, internal, anyarray)
456         RETURNS internal
457         AS 'MODULE_PATHNAME'
458         LANGUAGE C IMMUTABLE;
459
460 --gin opclasses
461
462 CREATE OPERATOR CLASS _int2_sml_ops
463 FOR TYPE _int2  USING gin
464 AS
465         OPERATOR        1       && (anyarray, anyarray),
466         OPERATOR        2       %  (anyarray, anyarray),
467         FUNCTION        1       btint2cmp(int2,int2),
468         FUNCTION        2       smlararrayextract(anyarray, internal),
469         FUNCTION        3       smlarqueryarrayextract(anyarray, internal, internal),
470         FUNCTION        4       smlararrayconsistent(internal, internal, anyarray),
471         STORAGE         int2;
472 CREATE OPERATOR CLASS _int4_sml_ops
473 FOR TYPE _int4  USING gin
474 AS
475     OPERATOR    1   && (anyarray, anyarray),
476         OPERATOR    2   %  (anyarray, anyarray),
477         FUNCTION    1   btint4cmp(int4,int4),
478         FUNCTION    2   smlararrayextract(anyarray, internal),
479         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
480         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
481         STORAGE     int4;
482
483 CREATE OPERATOR CLASS _int8_sml_ops
484 FOR TYPE _int8  USING gin
485 AS
486     OPERATOR    1   && (anyarray, anyarray),
487         OPERATOR    2   %  (anyarray, anyarray),
488         FUNCTION    1   btint8cmp(int8,int8),
489         FUNCTION    2   smlararrayextract(anyarray, internal),
490         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
491         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
492         STORAGE     int8;
493
494 CREATE OPERATOR CLASS _float4_sml_ops
495 FOR TYPE _float4  USING gin
496 AS
497     OPERATOR    1   && (anyarray, anyarray),
498         OPERATOR    2   %  (anyarray, anyarray),
499         FUNCTION    1   btfloat4cmp(float4,float4),
500         FUNCTION    2   smlararrayextract(anyarray, internal),
501         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
502         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
503         STORAGE     float4;
504
505 CREATE OPERATOR CLASS _float8_sml_ops
506 FOR TYPE _float8  USING gin
507 AS
508     OPERATOR    1   && (anyarray, anyarray),
509         OPERATOR    2   %  (anyarray, anyarray),
510         FUNCTION    1   btfloat8cmp(float8,float8),
511         FUNCTION    2   smlararrayextract(anyarray, internal),
512         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
513         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
514         STORAGE     float8;
515
516 CREATE OPERATOR CLASS _money_sml_ops
517 FOR TYPE _money  USING gin
518 AS
519     OPERATOR    1   && (anyarray, anyarray),
520         OPERATOR    2   %  (anyarray, anyarray),
521         FUNCTION    1   cash_cmp(money,money),
522         FUNCTION    2   smlararrayextract(anyarray, internal),
523         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
524         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
525         STORAGE     money;
526
527 CREATE OPERATOR CLASS _oid_sml_ops
528 FOR TYPE _oid  USING gin
529 AS
530     OPERATOR    1   && (anyarray, anyarray),
531         OPERATOR    2   %  (anyarray, anyarray),
532         FUNCTION    1   btoidcmp(oid,oid),
533         FUNCTION    2   smlararrayextract(anyarray, internal),
534         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
535         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
536         STORAGE     oid;
537
538 CREATE OPERATOR CLASS _timestamp_sml_ops
539 FOR TYPE _timestamp  USING gin
540 AS
541     OPERATOR    1   && (anyarray, anyarray),
542         OPERATOR    2   %  (anyarray, anyarray),
543         FUNCTION    1   timestamp_cmp(timestamp,timestamp),
544         FUNCTION    2   smlararrayextract(anyarray, internal),
545         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
546         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
547         STORAGE     timestamp;
548
549 CREATE OPERATOR CLASS _timestamptz_sml_ops
550 FOR TYPE _timestamptz  USING gin
551 AS
552     OPERATOR    1   && (anyarray, anyarray),
553         OPERATOR    2   %  (anyarray, anyarray),
554         FUNCTION    1   timestamptz_cmp(timestamptz,timestamptz),
555         FUNCTION    2   smlararrayextract(anyarray, internal),
556         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
557         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
558         STORAGE     timestamptz;
559
560 CREATE OPERATOR CLASS _time_sml_ops
561 FOR TYPE _time  USING gin
562 AS
563     OPERATOR    1   && (anyarray, anyarray),
564         OPERATOR    2   %  (anyarray, anyarray),
565         FUNCTION    1   time_cmp(time,time),
566         FUNCTION    2   smlararrayextract(anyarray, internal),
567         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
568         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
569         STORAGE     time;
570
571 CREATE OPERATOR CLASS _timetz_sml_ops
572 FOR TYPE _timetz  USING gin
573 AS
574     OPERATOR    1   && (anyarray, anyarray),
575         OPERATOR    2   %  (anyarray, anyarray),
576         FUNCTION    1   timetz_cmp(timetz,timetz),
577         FUNCTION    2   smlararrayextract(anyarray, internal),
578         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
579         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
580         STORAGE     timetz;
581
582 CREATE OPERATOR CLASS _date_sml_ops
583 FOR TYPE _date  USING gin
584 AS
585     OPERATOR    1   && (anyarray, anyarray),
586         OPERATOR    2   %  (anyarray, anyarray),
587         FUNCTION    1   date_cmp(date,date),
588         FUNCTION    2   smlararrayextract(anyarray, internal),
589         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
590         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
591         STORAGE     date;
592
593 CREATE OPERATOR CLASS _interval_sml_ops
594 FOR TYPE _interval  USING gin
595 AS
596     OPERATOR    1   && (anyarray, anyarray),
597         OPERATOR    2   %  (anyarray, anyarray),
598         FUNCTION    1   interval_cmp(interval,interval),
599         FUNCTION    2   smlararrayextract(anyarray, internal),
600         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
601         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
602         STORAGE     interval;
603
604 CREATE OPERATOR CLASS _macaddr_sml_ops
605 FOR TYPE _macaddr  USING gin
606 AS
607     OPERATOR    1   && (anyarray, anyarray),
608         OPERATOR    2   %  (anyarray, anyarray),
609         FUNCTION    1   macaddr_cmp(macaddr,macaddr),
610         FUNCTION    2   smlararrayextract(anyarray, internal),
611         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
612         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
613         STORAGE     macaddr;
614
615 CREATE OPERATOR CLASS _inet_sml_ops
616 FOR TYPE _inet  USING gin
617 AS
618     OPERATOR    1   && (anyarray, anyarray),
619         OPERATOR    2   %  (anyarray, anyarray),
620         FUNCTION    1   network_cmp(inet,inet),
621         FUNCTION    2   smlararrayextract(anyarray, internal),
622         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
623         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
624         STORAGE     inet;
625
626 CREATE OPERATOR CLASS _cidr_sml_ops
627 FOR TYPE _cidr  USING gin
628 AS
629     OPERATOR    1   && (anyarray, anyarray),
630         OPERATOR    2   %  (anyarray, anyarray),
631         FUNCTION    1   network_cmp(inet,inet),
632         FUNCTION    2   smlararrayextract(anyarray, internal),
633         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
634         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
635         STORAGE     cidr;
636
637 CREATE OPERATOR CLASS _text_sml_ops
638 FOR TYPE _text  USING gin
639 AS
640     OPERATOR    1   && (anyarray, anyarray),
641         OPERATOR    2   %  (anyarray, anyarray),
642         FUNCTION    1   bttextcmp(text,text),
643         FUNCTION    2   smlararrayextract(anyarray, internal),
644         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
645         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
646         STORAGE     text;
647
648 CREATE OPERATOR CLASS _varchar_sml_ops
649 FOR TYPE _varchar  USING gin
650 AS
651     OPERATOR    1   && (anyarray, anyarray),
652         OPERATOR    2   %  (anyarray, anyarray),
653         FUNCTION    1   bttextcmp(text,text),
654         FUNCTION    2   smlararrayextract(anyarray, internal),
655         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
656         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
657         STORAGE     varchar;
658
659 CREATE OPERATOR CLASS _char_sml_ops
660 FOR TYPE "_char"  USING gin
661 AS
662     OPERATOR    1   && (anyarray, anyarray),
663         OPERATOR    2   %  (anyarray, anyarray),
664         FUNCTION    1   btcharcmp("char","char"),
665         FUNCTION    2   smlararrayextract(anyarray, internal),
666         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
667         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
668         STORAGE     "char";
669
670 CREATE OPERATOR CLASS _bytea_sml_ops
671 FOR TYPE _bytea  USING gin
672 AS
673     OPERATOR    1   && (anyarray, anyarray),
674         OPERATOR    2   %  (anyarray, anyarray),
675         FUNCTION    1   byteacmp(bytea,bytea),
676         FUNCTION    2   smlararrayextract(anyarray, internal),
677         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
678         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
679         STORAGE     bytea;
680
681 CREATE OPERATOR CLASS _bit_sml_ops
682 FOR TYPE _bit  USING gin
683 AS
684     OPERATOR    1   && (anyarray, anyarray),
685         OPERATOR    2   %  (anyarray, anyarray),
686         FUNCTION    1   bitcmp(bit,bit),
687         FUNCTION    2   smlararrayextract(anyarray, internal),
688         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
689         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
690         STORAGE     bit;
691
692 CREATE OPERATOR CLASS _varbit_sml_ops
693 FOR TYPE _varbit  USING gin
694 AS
695     OPERATOR    1   && (anyarray, anyarray),
696         OPERATOR    2   %  (anyarray, anyarray),
697         FUNCTION    1   varbitcmp(varbit,varbit),
698         FUNCTION    2   smlararrayextract(anyarray, internal),
699         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
700         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
701         STORAGE     varbit;
702
703 CREATE OPERATOR CLASS _numeric_sml_ops
704 FOR TYPE _numeric  USING gin
705 AS
706     OPERATOR    1   && (anyarray, anyarray),
707         OPERATOR    2   %  (anyarray, anyarray),
708         FUNCTION    1   numeric_cmp(numeric,numeric),
709         FUNCTION    2   smlararrayextract(anyarray, internal),
710         FUNCTION    3   smlarqueryarrayextract(anyarray, internal, internal),
711         FUNCTION    4   smlararrayconsistent(internal, internal, anyarray),
712         STORAGE     numeric;
713