1 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
2 \echo Use "CREATE EXTENSION smlar" to load this file. \quit
4 CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray)
6 AS 'MODULE_PATHNAME', 'arraysml'
7 LANGUAGE C STRICT IMMUTABLE;
9 CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray, bool)
11 AS 'MODULE_PATHNAME', 'arraysmlw'
12 LANGUAGE C STRICT IMMUTABLE;
14 CREATE OR REPLACE FUNCTION smlar(anyarray, anyarray, text)
16 AS 'MODULE_PATHNAME', 'arraysml_func'
17 LANGUAGE C STRICT IMMUTABLE;
19 CREATE OR REPLACE FUNCTION set_smlar_limit(float4)
22 LANGUAGE C STRICT VOLATILE;
24 CREATE OR REPLACE FUNCTION show_smlar_limit()
27 LANGUAGE C STRICT STABLE;
29 CREATE OR REPLACE FUNCTION smlar_op(anyarray,anyarray)
31 AS 'MODULE_PATHNAME', 'arraysml_op'
32 LANGUAGE C STRICT STABLE;
45 CREATE OR REPLACE FUNCTION tsvector2textarray(tsvector)
47 AS 'MODULE_PATHNAME', 'tsvector2textarray'
48 LANGUAGE C STRICT IMMUTABLE;
50 CREATE OR REPLACE FUNCTION array_unique(anyarray)
52 AS 'MODULE_PATHNAME', 'array_unique'
53 LANGUAGE C STRICT IMMUTABLE;
55 CREATE OR REPLACE FUNCTION inarray(anyarray, anyelement)
57 AS 'MODULE_PATHNAME', 'inarray'
58 LANGUAGE C STRICT IMMUTABLE;
60 CREATE OR REPLACE FUNCTION inarray(anyarray, anyelement, float4, float4)
62 AS 'MODULE_PATHNAME', 'inarray'
63 LANGUAGE C STRICT IMMUTABLE;
67 CREATE OR REPLACE FUNCTION gsmlsign_in(cstring)
72 CREATE OR REPLACE FUNCTION gsmlsign_out(gsmlsign)
77 CREATE TYPE gsmlsign (
83 -- support functions for gist
84 CREATE OR REPLACE FUNCTION gsmlsign_consistent(gsmlsign,internal,int4)
89 CREATE OR REPLACE FUNCTION gsmlsign_compress(internal)
94 CREATE OR REPLACE FUNCTION gsmlsign_decompress(internal)
99 CREATE OR REPLACE FUNCTION gsmlsign_penalty(internal,internal,internal)
102 LANGUAGE C STRICT IMMUTABLE;
104 CREATE OR REPLACE FUNCTION gsmlsign_picksplit(internal, internal)
107 LANGUAGE C IMMUTABLE;
109 CREATE OR REPLACE FUNCTION gsmlsign_union(bytea, internal)
112 LANGUAGE C IMMUTABLE;
114 CREATE OR REPLACE FUNCTION gsmlsign_same(gsmlsign, gsmlsign, internal)
117 LANGUAGE C IMMUTABLE;
119 --create the operator classes for gist
121 CREATE OPERATOR CLASS _int2_sml_ops
122 FOR TYPE _int2 USING gist
124 OPERATOR 1 && (anyarray, anyarray),
125 OPERATOR 2 % (anyarray, anyarray),
126 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
127 FUNCTION 2 gsmlsign_union (bytea, internal),
128 FUNCTION 3 gsmlsign_compress (internal),
129 FUNCTION 4 gsmlsign_decompress (internal),
130 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
131 FUNCTION 6 gsmlsign_picksplit (internal, internal),
132 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
135 CREATE OPERATOR CLASS _int4_sml_ops
136 FOR TYPE _int4 USING gist
138 OPERATOR 1 && (anyarray, anyarray),
139 OPERATOR 2 % (anyarray, anyarray),
140 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
141 FUNCTION 2 gsmlsign_union (bytea, internal),
142 FUNCTION 3 gsmlsign_compress (internal),
143 FUNCTION 4 gsmlsign_decompress (internal),
144 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
145 FUNCTION 6 gsmlsign_picksplit (internal, internal),
146 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
149 CREATE OPERATOR CLASS _int8_sml_ops
150 FOR TYPE _int8 USING gist
152 OPERATOR 1 && (anyarray, anyarray),
153 OPERATOR 2 % (anyarray, anyarray),
154 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
155 FUNCTION 2 gsmlsign_union (bytea, internal),
156 FUNCTION 3 gsmlsign_compress (internal),
157 FUNCTION 4 gsmlsign_decompress (internal),
158 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
159 FUNCTION 6 gsmlsign_picksplit (internal, internal),
160 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
163 CREATE OPERATOR CLASS _float4_sml_ops
164 FOR TYPE _float4 USING gist
166 OPERATOR 1 && (anyarray, anyarray),
167 OPERATOR 2 % (anyarray, anyarray),
168 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
169 FUNCTION 2 gsmlsign_union (bytea, internal),
170 FUNCTION 3 gsmlsign_compress (internal),
171 FUNCTION 4 gsmlsign_decompress (internal),
172 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
173 FUNCTION 6 gsmlsign_picksplit (internal, internal),
174 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
177 CREATE OPERATOR CLASS _float8_sml_ops
178 FOR TYPE _float8 USING gist
180 OPERATOR 1 && (anyarray, anyarray),
181 OPERATOR 2 % (anyarray, anyarray),
182 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
183 FUNCTION 2 gsmlsign_union (bytea, internal),
184 FUNCTION 3 gsmlsign_compress (internal),
185 FUNCTION 4 gsmlsign_decompress (internal),
186 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
187 FUNCTION 6 gsmlsign_picksplit (internal, internal),
188 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
191 -- money type hasn't hash support
192 --CREATE OPERATOR CLASS _money_sml_ops
193 --FOR TYPE _money USING gist
195 -- OPERATOR 1 && (anyarray, anyarray),
196 -- OPERATOR 2 % (anyarray, anyarray),
197 -- FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
198 -- FUNCTION 2 gsmlsign_union (bytea, internal),
199 -- FUNCTION 3 gsmlsign_compress (internal),
200 -- FUNCTION 4 gsmlsign_decompress (internal),
201 -- FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
202 -- FUNCTION 6 gsmlsign_picksplit (internal, internal),
203 -- FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
206 CREATE OPERATOR CLASS _oid_sml_ops
207 FOR TYPE _oid USING gist
209 OPERATOR 1 && (anyarray, anyarray),
210 OPERATOR 2 % (anyarray, anyarray),
211 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
212 FUNCTION 2 gsmlsign_union (bytea, internal),
213 FUNCTION 3 gsmlsign_compress (internal),
214 FUNCTION 4 gsmlsign_decompress (internal),
215 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
216 FUNCTION 6 gsmlsign_picksplit (internal, internal),
217 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
220 CREATE OPERATOR CLASS _timestamp_sml_ops
221 FOR TYPE _timestamp USING gist
223 OPERATOR 1 && (anyarray, anyarray),
224 OPERATOR 2 % (anyarray, anyarray),
225 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
226 FUNCTION 2 gsmlsign_union (bytea, internal),
227 FUNCTION 3 gsmlsign_compress (internal),
228 FUNCTION 4 gsmlsign_decompress (internal),
229 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
230 FUNCTION 6 gsmlsign_picksplit (internal, internal),
231 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
234 CREATE OPERATOR CLASS _timestamptz_sml_ops
235 FOR TYPE _timestamptz USING gist
237 OPERATOR 1 && (anyarray, anyarray),
238 OPERATOR 2 % (anyarray, anyarray),
239 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
240 FUNCTION 2 gsmlsign_union (bytea, internal),
241 FUNCTION 3 gsmlsign_compress (internal),
242 FUNCTION 4 gsmlsign_decompress (internal),
243 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
244 FUNCTION 6 gsmlsign_picksplit (internal, internal),
245 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
248 CREATE OPERATOR CLASS _time_sml_ops
249 FOR TYPE _time USING gist
251 OPERATOR 1 && (anyarray, anyarray),
252 OPERATOR 2 % (anyarray, anyarray),
253 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
254 FUNCTION 2 gsmlsign_union (bytea, internal),
255 FUNCTION 3 gsmlsign_compress (internal),
256 FUNCTION 4 gsmlsign_decompress (internal),
257 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
258 FUNCTION 6 gsmlsign_picksplit (internal, internal),
259 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
262 CREATE OPERATOR CLASS _timetz_sml_ops
263 FOR TYPE _timetz USING gist
265 OPERATOR 1 && (anyarray, anyarray),
266 OPERATOR 2 % (anyarray, anyarray),
267 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
268 FUNCTION 2 gsmlsign_union (bytea, internal),
269 FUNCTION 3 gsmlsign_compress (internal),
270 FUNCTION 4 gsmlsign_decompress (internal),
271 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
272 FUNCTION 6 gsmlsign_picksplit (internal, internal),
273 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
276 CREATE OPERATOR CLASS _date_sml_ops
277 FOR TYPE _date USING gist
279 OPERATOR 1 && (anyarray, anyarray),
280 OPERATOR 2 % (anyarray, anyarray),
281 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
282 FUNCTION 2 gsmlsign_union (bytea, internal),
283 FUNCTION 3 gsmlsign_compress (internal),
284 FUNCTION 4 gsmlsign_decompress (internal),
285 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
286 FUNCTION 6 gsmlsign_picksplit (internal, internal),
287 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
290 CREATE OPERATOR CLASS _interval_sml_ops
291 FOR TYPE _interval USING gist
293 OPERATOR 1 && (anyarray, anyarray),
294 OPERATOR 2 % (anyarray, anyarray),
295 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
296 FUNCTION 2 gsmlsign_union (bytea, internal),
297 FUNCTION 3 gsmlsign_compress (internal),
298 FUNCTION 4 gsmlsign_decompress (internal),
299 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
300 FUNCTION 6 gsmlsign_picksplit (internal, internal),
301 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
304 CREATE OPERATOR CLASS _macaddr_sml_ops
305 FOR TYPE _macaddr USING gist
307 OPERATOR 1 && (anyarray, anyarray),
308 OPERATOR 2 % (anyarray, anyarray),
309 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
310 FUNCTION 2 gsmlsign_union (bytea, internal),
311 FUNCTION 3 gsmlsign_compress (internal),
312 FUNCTION 4 gsmlsign_decompress (internal),
313 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
314 FUNCTION 6 gsmlsign_picksplit (internal, internal),
315 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
318 CREATE OPERATOR CLASS _inet_sml_ops
319 FOR TYPE _inet USING gist
321 OPERATOR 1 && (anyarray, anyarray),
322 OPERATOR 2 % (anyarray, anyarray),
323 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
324 FUNCTION 2 gsmlsign_union (bytea, internal),
325 FUNCTION 3 gsmlsign_compress (internal),
326 FUNCTION 4 gsmlsign_decompress (internal),
327 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
328 FUNCTION 6 gsmlsign_picksplit (internal, internal),
329 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
332 CREATE OPERATOR CLASS _cidr_sml_ops
333 FOR TYPE _cidr USING gist
335 OPERATOR 1 && (anyarray, anyarray),
336 OPERATOR 2 % (anyarray, anyarray),
337 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
338 FUNCTION 2 gsmlsign_union (bytea, internal),
339 FUNCTION 3 gsmlsign_compress (internal),
340 FUNCTION 4 gsmlsign_decompress (internal),
341 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
342 FUNCTION 6 gsmlsign_picksplit (internal, internal),
343 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
346 CREATE OPERATOR CLASS _text_sml_ops
347 FOR TYPE _text USING gist
349 OPERATOR 1 && (anyarray, anyarray),
350 OPERATOR 2 % (anyarray, anyarray),
351 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
352 FUNCTION 2 gsmlsign_union (bytea, internal),
353 FUNCTION 3 gsmlsign_compress (internal),
354 FUNCTION 4 gsmlsign_decompress (internal),
355 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
356 FUNCTION 6 gsmlsign_picksplit (internal, internal),
357 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
360 CREATE OPERATOR CLASS _varchar_sml_ops
361 FOR TYPE _varchar USING gist
363 OPERATOR 1 && (anyarray, anyarray),
364 OPERATOR 2 % (anyarray, anyarray),
365 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
366 FUNCTION 2 gsmlsign_union (bytea, internal),
367 FUNCTION 3 gsmlsign_compress (internal),
368 FUNCTION 4 gsmlsign_decompress (internal),
369 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
370 FUNCTION 6 gsmlsign_picksplit (internal, internal),
371 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
374 CREATE OPERATOR CLASS _char_sml_ops
375 FOR TYPE _char USING gist
377 OPERATOR 1 && (anyarray, anyarray),
378 OPERATOR 2 % (anyarray, anyarray),
379 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
380 FUNCTION 2 gsmlsign_union (bytea, internal),
381 FUNCTION 3 gsmlsign_compress (internal),
382 FUNCTION 4 gsmlsign_decompress (internal),
383 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
384 FUNCTION 6 gsmlsign_picksplit (internal, internal),
385 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
388 CREATE OPERATOR CLASS _bytea_sml_ops
389 FOR TYPE _bytea USING gist
391 OPERATOR 1 && (anyarray, anyarray),
392 OPERATOR 2 % (anyarray, anyarray),
393 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
394 FUNCTION 2 gsmlsign_union (bytea, internal),
395 FUNCTION 3 gsmlsign_compress (internal),
396 FUNCTION 4 gsmlsign_decompress (internal),
397 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
398 FUNCTION 6 gsmlsign_picksplit (internal, internal),
399 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
403 --CREATE OPERATOR CLASS _bit_sml_ops
404 --FOR TYPE _bit USING gist
406 -- OPERATOR 1 && (anyarray, anyarray),
407 -- OPERATOR 2 % (anyarray, anyarray),
408 -- FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
409 -- FUNCTION 2 gsmlsign_union (bytea, internal),
410 -- FUNCTION 3 gsmlsign_compress (internal),
411 -- FUNCTION 4 gsmlsign_decompress (internal),
412 -- FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
413 -- FUNCTION 6 gsmlsign_picksplit (internal, internal),
414 -- FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
417 --CREATE OPERATOR CLASS _varbit_sml_ops
418 --FOR TYPE _varbit USING gist
420 -- OPERATOR 1 && (anyarray, anyarray),
421 -- OPERATOR 2 % (anyarray, anyarray),
422 -- FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
423 -- FUNCTION 2 gsmlsign_union (bytea, internal),
424 -- FUNCTION 3 gsmlsign_compress (internal),
425 -- FUNCTION 4 gsmlsign_decompress (internal),
426 -- FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
427 -- FUNCTION 6 gsmlsign_picksplit (internal, internal),
428 -- FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
431 CREATE OPERATOR CLASS _numeric_sml_ops
432 FOR TYPE _numeric USING gist
434 OPERATOR 1 && (anyarray, anyarray),
435 OPERATOR 2 % (anyarray, anyarray),
436 FUNCTION 1 gsmlsign_consistent (gsmlsign, internal, int4),
437 FUNCTION 2 gsmlsign_union (bytea, internal),
438 FUNCTION 3 gsmlsign_compress (internal),
439 FUNCTION 4 gsmlsign_decompress (internal),
440 FUNCTION 5 gsmlsign_penalty (internal, internal, internal),
441 FUNCTION 6 gsmlsign_picksplit (internal, internal),
442 FUNCTION 7 gsmlsign_same (gsmlsign, gsmlsign, internal),
445 --gin support functions
446 CREATE OR REPLACE FUNCTION smlararrayextract(anyarray, internal)
449 LANGUAGE C IMMUTABLE;
451 CREATE OR REPLACE FUNCTION smlarqueryarrayextract(anyarray, internal, internal)
454 LANGUAGE C IMMUTABLE;
456 CREATE OR REPLACE FUNCTION smlararrayconsistent(internal, internal, anyarray)
459 LANGUAGE C IMMUTABLE;
463 CREATE OPERATOR CLASS _int2_sml_ops
464 FOR TYPE _int2 USING gin
466 OPERATOR 1 && (anyarray, anyarray),
467 OPERATOR 2 % (anyarray, anyarray),
468 FUNCTION 1 btint2cmp(int2,int2),
469 FUNCTION 2 smlararrayextract(anyarray, internal),
470 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
471 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
473 CREATE OPERATOR CLASS _int4_sml_ops
474 FOR TYPE _int4 USING gin
476 OPERATOR 1 && (anyarray, anyarray),
477 OPERATOR 2 % (anyarray, anyarray),
478 FUNCTION 1 btint4cmp(int4,int4),
479 FUNCTION 2 smlararrayextract(anyarray, internal),
480 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
481 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
484 CREATE OPERATOR CLASS _int8_sml_ops
485 FOR TYPE _int8 USING gin
487 OPERATOR 1 && (anyarray, anyarray),
488 OPERATOR 2 % (anyarray, anyarray),
489 FUNCTION 1 btint8cmp(int8,int8),
490 FUNCTION 2 smlararrayextract(anyarray, internal),
491 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
492 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
495 CREATE OPERATOR CLASS _float4_sml_ops
496 FOR TYPE _float4 USING gin
498 OPERATOR 1 && (anyarray, anyarray),
499 OPERATOR 2 % (anyarray, anyarray),
500 FUNCTION 1 btfloat4cmp(float4,float4),
501 FUNCTION 2 smlararrayextract(anyarray, internal),
502 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
503 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
506 CREATE OPERATOR CLASS _float8_sml_ops
507 FOR TYPE _float8 USING gin
509 OPERATOR 1 && (anyarray, anyarray),
510 OPERATOR 2 % (anyarray, anyarray),
511 FUNCTION 1 btfloat8cmp(float8,float8),
512 FUNCTION 2 smlararrayextract(anyarray, internal),
513 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
514 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
517 CREATE OPERATOR CLASS _money_sml_ops
518 FOR TYPE _money USING gin
520 OPERATOR 1 && (anyarray, anyarray),
521 OPERATOR 2 % (anyarray, anyarray),
522 FUNCTION 1 cash_cmp(money,money),
523 FUNCTION 2 smlararrayextract(anyarray, internal),
524 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
525 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
528 CREATE OPERATOR CLASS _oid_sml_ops
529 FOR TYPE _oid USING gin
531 OPERATOR 1 && (anyarray, anyarray),
532 OPERATOR 2 % (anyarray, anyarray),
533 FUNCTION 1 btoidcmp(oid,oid),
534 FUNCTION 2 smlararrayextract(anyarray, internal),
535 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
536 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
539 CREATE OPERATOR CLASS _timestamp_sml_ops
540 FOR TYPE _timestamp USING gin
542 OPERATOR 1 && (anyarray, anyarray),
543 OPERATOR 2 % (anyarray, anyarray),
544 FUNCTION 1 timestamp_cmp(timestamp,timestamp),
545 FUNCTION 2 smlararrayextract(anyarray, internal),
546 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
547 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
550 CREATE OPERATOR CLASS _timestamptz_sml_ops
551 FOR TYPE _timestamptz USING gin
553 OPERATOR 1 && (anyarray, anyarray),
554 OPERATOR 2 % (anyarray, anyarray),
555 FUNCTION 1 timestamptz_cmp(timestamptz,timestamptz),
556 FUNCTION 2 smlararrayextract(anyarray, internal),
557 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
558 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
561 CREATE OPERATOR CLASS _time_sml_ops
562 FOR TYPE _time USING gin
564 OPERATOR 1 && (anyarray, anyarray),
565 OPERATOR 2 % (anyarray, anyarray),
566 FUNCTION 1 time_cmp(time,time),
567 FUNCTION 2 smlararrayextract(anyarray, internal),
568 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
569 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
572 CREATE OPERATOR CLASS _timetz_sml_ops
573 FOR TYPE _timetz USING gin
575 OPERATOR 1 && (anyarray, anyarray),
576 OPERATOR 2 % (anyarray, anyarray),
577 FUNCTION 1 timetz_cmp(timetz,timetz),
578 FUNCTION 2 smlararrayextract(anyarray, internal),
579 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
580 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
583 CREATE OPERATOR CLASS _date_sml_ops
584 FOR TYPE _date USING gin
586 OPERATOR 1 && (anyarray, anyarray),
587 OPERATOR 2 % (anyarray, anyarray),
588 FUNCTION 1 date_cmp(date,date),
589 FUNCTION 2 smlararrayextract(anyarray, internal),
590 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
591 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
594 CREATE OPERATOR CLASS _interval_sml_ops
595 FOR TYPE _interval USING gin
597 OPERATOR 1 && (anyarray, anyarray),
598 OPERATOR 2 % (anyarray, anyarray),
599 FUNCTION 1 interval_cmp(interval,interval),
600 FUNCTION 2 smlararrayextract(anyarray, internal),
601 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
602 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
605 CREATE OPERATOR CLASS _macaddr_sml_ops
606 FOR TYPE _macaddr USING gin
608 OPERATOR 1 && (anyarray, anyarray),
609 OPERATOR 2 % (anyarray, anyarray),
610 FUNCTION 1 macaddr_cmp(macaddr,macaddr),
611 FUNCTION 2 smlararrayextract(anyarray, internal),
612 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
613 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
616 CREATE OPERATOR CLASS _inet_sml_ops
617 FOR TYPE _inet USING gin
619 OPERATOR 1 && (anyarray, anyarray),
620 OPERATOR 2 % (anyarray, anyarray),
621 FUNCTION 1 network_cmp(inet,inet),
622 FUNCTION 2 smlararrayextract(anyarray, internal),
623 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
624 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
627 CREATE OPERATOR CLASS _cidr_sml_ops
628 FOR TYPE _cidr USING gin
630 OPERATOR 1 && (anyarray, anyarray),
631 OPERATOR 2 % (anyarray, anyarray),
632 FUNCTION 1 network_cmp(inet,inet),
633 FUNCTION 2 smlararrayextract(anyarray, internal),
634 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
635 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
638 CREATE OPERATOR CLASS _text_sml_ops
639 FOR TYPE _text USING gin
641 OPERATOR 1 && (anyarray, anyarray),
642 OPERATOR 2 % (anyarray, anyarray),
643 FUNCTION 1 bttextcmp(text,text),
644 FUNCTION 2 smlararrayextract(anyarray, internal),
645 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
646 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
649 CREATE OPERATOR CLASS _varchar_sml_ops
650 FOR TYPE _varchar USING gin
652 OPERATOR 1 && (anyarray, anyarray),
653 OPERATOR 2 % (anyarray, anyarray),
654 FUNCTION 1 bttextcmp(text,text),
655 FUNCTION 2 smlararrayextract(anyarray, internal),
656 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
657 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
660 CREATE OPERATOR CLASS _char_sml_ops
661 FOR TYPE "_char" USING gin
663 OPERATOR 1 && (anyarray, anyarray),
664 OPERATOR 2 % (anyarray, anyarray),
665 FUNCTION 1 btcharcmp("char","char"),
666 FUNCTION 2 smlararrayextract(anyarray, internal),
667 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
668 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
671 CREATE OPERATOR CLASS _bytea_sml_ops
672 FOR TYPE _bytea USING gin
674 OPERATOR 1 && (anyarray, anyarray),
675 OPERATOR 2 % (anyarray, anyarray),
676 FUNCTION 1 byteacmp(bytea,bytea),
677 FUNCTION 2 smlararrayextract(anyarray, internal),
678 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
679 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
682 CREATE OPERATOR CLASS _bit_sml_ops
683 FOR TYPE _bit USING gin
685 OPERATOR 1 && (anyarray, anyarray),
686 OPERATOR 2 % (anyarray, anyarray),
687 FUNCTION 1 bitcmp(bit,bit),
688 FUNCTION 2 smlararrayextract(anyarray, internal),
689 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
690 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
693 CREATE OPERATOR CLASS _varbit_sml_ops
694 FOR TYPE _varbit USING gin
696 OPERATOR 1 && (anyarray, anyarray),
697 OPERATOR 2 % (anyarray, anyarray),
698 FUNCTION 1 varbitcmp(varbit,varbit),
699 FUNCTION 2 smlararrayextract(anyarray, internal),
700 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
701 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),
704 CREATE OPERATOR CLASS _numeric_sml_ops
705 FOR TYPE _numeric USING gin
707 OPERATOR 1 && (anyarray, anyarray),
708 OPERATOR 2 % (anyarray, anyarray),
709 FUNCTION 1 numeric_cmp(numeric,numeric),
710 FUNCTION 2 smlararrayextract(anyarray, internal),
711 FUNCTION 3 smlarqueryarrayextract(anyarray, internal, internal),
712 FUNCTION 4 smlararrayconsistent(internal, internal, anyarray),