1/* contrib/btree_gin/btree_gin--1.0.sql */
2
3-- complain if script is sourced in psql, rather than via CREATE EXTENSION
4\echo Use "CREATE EXTENSION btree_gin" to load this file. \quit
5
6CREATE FUNCTION gin_btree_consistent(internal, int2, anyelement, int4, internal, internal)
7RETURNS bool
8AS 'MODULE_PATHNAME'
9LANGUAGE C STRICT IMMUTABLE;
10
11CREATE FUNCTION gin_extract_value_int2(int2, internal)
12RETURNS internal
13AS 'MODULE_PATHNAME'
14LANGUAGE C STRICT IMMUTABLE;
15
16CREATE FUNCTION gin_compare_prefix_int2(int2, int2, int2, internal)
17RETURNS int4
18AS 'MODULE_PATHNAME'
19LANGUAGE C STRICT IMMUTABLE;
20
21CREATE FUNCTION gin_extract_query_int2(int2, internal, int2, internal, internal)
22RETURNS internal
23AS 'MODULE_PATHNAME'
24LANGUAGE C STRICT IMMUTABLE;
25
26CREATE OPERATOR CLASS int2_ops
27DEFAULT FOR TYPE int2 USING gin
28AS
29    OPERATOR        1       <,
30    OPERATOR        2       <=,
31    OPERATOR        3       =,
32    OPERATOR        4       >=,
33    OPERATOR        5       >,
34    FUNCTION        1       btint2cmp(int2,int2),
35    FUNCTION        2       gin_extract_value_int2(int2, internal),
36    FUNCTION        3       gin_extract_query_int2(int2, internal, int2, internal, internal),
37    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
38    FUNCTION        5       gin_compare_prefix_int2(int2,int2,int2, internal),
39STORAGE         int2;
40
41CREATE FUNCTION gin_extract_value_int4(int4, internal)
42RETURNS internal
43AS 'MODULE_PATHNAME'
44LANGUAGE C STRICT IMMUTABLE;
45
46CREATE FUNCTION gin_compare_prefix_int4(int4, int4, int2, internal)
47RETURNS int4
48AS 'MODULE_PATHNAME'
49LANGUAGE C STRICT IMMUTABLE;
50
51CREATE FUNCTION gin_extract_query_int4(int4, internal, int2, internal, internal)
52RETURNS internal
53AS 'MODULE_PATHNAME'
54LANGUAGE C STRICT IMMUTABLE;
55
56CREATE OPERATOR CLASS int4_ops
57DEFAULT FOR TYPE int4 USING gin
58AS
59    OPERATOR        1       <,
60    OPERATOR        2       <=,
61    OPERATOR        3       =,
62    OPERATOR        4       >=,
63    OPERATOR        5       >,
64    FUNCTION        1       btint4cmp(int4,int4),
65    FUNCTION        2       gin_extract_value_int4(int4, internal),
66    FUNCTION        3       gin_extract_query_int4(int4, internal, int2, internal, internal),
67    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
68    FUNCTION        5       gin_compare_prefix_int4(int4,int4,int2, internal),
69STORAGE         int4;
70
71CREATE FUNCTION gin_extract_value_int8(int8, internal)
72RETURNS internal
73AS 'MODULE_PATHNAME'
74LANGUAGE C STRICT IMMUTABLE;
75
76CREATE FUNCTION gin_compare_prefix_int8(int8, int8, int2, internal)
77RETURNS int4
78AS 'MODULE_PATHNAME'
79LANGUAGE C STRICT IMMUTABLE;
80
81CREATE FUNCTION gin_extract_query_int8(int8, internal, int2, internal, internal)
82RETURNS internal
83AS 'MODULE_PATHNAME'
84LANGUAGE C STRICT IMMUTABLE;
85
86CREATE OPERATOR CLASS int8_ops
87DEFAULT FOR TYPE int8 USING gin
88AS
89    OPERATOR        1       <,
90    OPERATOR        2       <=,
91    OPERATOR        3       =,
92    OPERATOR        4       >=,
93    OPERATOR        5       >,
94    FUNCTION        1       btint8cmp(int8,int8),
95    FUNCTION        2       gin_extract_value_int8(int8, internal),
96    FUNCTION        3       gin_extract_query_int8(int8, internal, int2, internal, internal),
97    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
98    FUNCTION        5       gin_compare_prefix_int8(int8,int8,int2, internal),
99STORAGE         int8;
100
101CREATE FUNCTION gin_extract_value_float4(float4, internal)
102RETURNS internal
103AS 'MODULE_PATHNAME'
104LANGUAGE C STRICT IMMUTABLE;
105
106CREATE FUNCTION gin_compare_prefix_float4(float4, float4, int2, internal)
107RETURNS int4
108AS 'MODULE_PATHNAME'
109LANGUAGE C STRICT IMMUTABLE;
110
111CREATE FUNCTION gin_extract_query_float4(float4, internal, int2, internal, internal)
112RETURNS internal
113AS 'MODULE_PATHNAME'
114LANGUAGE C STRICT IMMUTABLE;
115
116CREATE OPERATOR CLASS float4_ops
117DEFAULT FOR TYPE float4 USING gin
118AS
119    OPERATOR        1       <,
120    OPERATOR        2       <=,
121    OPERATOR        3       =,
122    OPERATOR        4       >=,
123    OPERATOR        5       >,
124    FUNCTION        1       btfloat4cmp(float4,float4),
125    FUNCTION        2       gin_extract_value_float4(float4, internal),
126    FUNCTION        3       gin_extract_query_float4(float4, internal, int2, internal, internal),
127    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
128    FUNCTION        5       gin_compare_prefix_float4(float4,float4,int2, internal),
129STORAGE         float4;
130
131CREATE FUNCTION gin_extract_value_float8(float8, internal)
132RETURNS internal
133AS 'MODULE_PATHNAME'
134LANGUAGE C STRICT IMMUTABLE;
135
136CREATE FUNCTION gin_compare_prefix_float8(float8, float8, int2, internal)
137RETURNS int4
138AS 'MODULE_PATHNAME'
139LANGUAGE C STRICT IMMUTABLE;
140
141CREATE FUNCTION gin_extract_query_float8(float8, internal, int2, internal, internal)
142RETURNS internal
143AS 'MODULE_PATHNAME'
144LANGUAGE C STRICT IMMUTABLE;
145
146CREATE OPERATOR CLASS float8_ops
147DEFAULT FOR TYPE float8 USING gin
148AS
149    OPERATOR        1       <,
150    OPERATOR        2       <=,
151    OPERATOR        3       =,
152    OPERATOR        4       >=,
153    OPERATOR        5       >,
154    FUNCTION        1       btfloat8cmp(float8,float8),
155    FUNCTION        2       gin_extract_value_float8(float8, internal),
156    FUNCTION        3       gin_extract_query_float8(float8, internal, int2, internal, internal),
157    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
158    FUNCTION        5       gin_compare_prefix_float8(float8,float8,int2, internal),
159STORAGE         float8;
160
161CREATE FUNCTION gin_extract_value_money(money, internal)
162RETURNS internal
163AS 'MODULE_PATHNAME'
164LANGUAGE C STRICT IMMUTABLE;
165
166CREATE FUNCTION gin_compare_prefix_money(money, money, int2, internal)
167RETURNS int4
168AS 'MODULE_PATHNAME'
169LANGUAGE C STRICT IMMUTABLE;
170
171CREATE FUNCTION gin_extract_query_money(money, internal, int2, internal, internal)
172RETURNS internal
173AS 'MODULE_PATHNAME'
174LANGUAGE C STRICT IMMUTABLE;
175
176CREATE OPERATOR CLASS money_ops
177DEFAULT FOR TYPE money USING gin
178AS
179    OPERATOR        1       <,
180    OPERATOR        2       <=,
181    OPERATOR        3       =,
182    OPERATOR        4       >=,
183    OPERATOR        5       >,
184    FUNCTION        1       cash_cmp(money,money),
185    FUNCTION        2       gin_extract_value_money(money, internal),
186    FUNCTION        3       gin_extract_query_money(money, internal, int2, internal, internal),
187    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
188    FUNCTION        5       gin_compare_prefix_money(money,money,int2, internal),
189STORAGE         money;
190
191CREATE FUNCTION gin_extract_value_oid(oid, internal)
192RETURNS internal
193AS 'MODULE_PATHNAME'
194LANGUAGE C STRICT IMMUTABLE;
195
196CREATE FUNCTION gin_compare_prefix_oid(oid, oid, int2, internal)
197RETURNS int4
198AS 'MODULE_PATHNAME'
199LANGUAGE C STRICT IMMUTABLE;
200
201CREATE FUNCTION gin_extract_query_oid(oid, internal, int2, internal, internal)
202RETURNS internal
203AS 'MODULE_PATHNAME'
204LANGUAGE C STRICT IMMUTABLE;
205
206CREATE OPERATOR CLASS oid_ops
207DEFAULT FOR TYPE oid USING gin
208AS
209    OPERATOR        1       <,
210    OPERATOR        2       <=,
211    OPERATOR        3       =,
212    OPERATOR        4       >=,
213    OPERATOR        5       >,
214    FUNCTION        1       btoidcmp(oid,oid),
215    FUNCTION        2       gin_extract_value_oid(oid, internal),
216    FUNCTION        3       gin_extract_query_oid(oid, internal, int2, internal, internal),
217    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
218    FUNCTION        5       gin_compare_prefix_oid(oid,oid,int2, internal),
219STORAGE         oid;
220
221CREATE FUNCTION gin_extract_value_timestamp(timestamp, internal)
222RETURNS internal
223AS 'MODULE_PATHNAME'
224LANGUAGE C STRICT IMMUTABLE;
225
226CREATE FUNCTION gin_compare_prefix_timestamp(timestamp, timestamp, int2, internal)
227RETURNS int4
228AS 'MODULE_PATHNAME'
229LANGUAGE C STRICT IMMUTABLE;
230
231CREATE FUNCTION gin_extract_query_timestamp(timestamp, internal, int2, internal, internal)
232RETURNS internal
233AS 'MODULE_PATHNAME'
234LANGUAGE C STRICT IMMUTABLE;
235
236CREATE OPERATOR CLASS timestamp_ops
237DEFAULT FOR TYPE timestamp USING gin
238AS
239    OPERATOR        1       <,
240    OPERATOR        2       <=,
241    OPERATOR        3       =,
242    OPERATOR        4       >=,
243    OPERATOR        5       >,
244    FUNCTION        1       timestamp_cmp(timestamp,timestamp),
245    FUNCTION        2       gin_extract_value_timestamp(timestamp, internal),
246    FUNCTION        3       gin_extract_query_timestamp(timestamp, internal, int2, internal, internal),
247    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
248    FUNCTION        5       gin_compare_prefix_timestamp(timestamp,timestamp,int2, internal),
249STORAGE         timestamp;
250
251CREATE FUNCTION gin_extract_value_timestamptz(timestamptz, internal)
252RETURNS internal
253AS 'MODULE_PATHNAME'
254LANGUAGE C STRICT IMMUTABLE;
255
256CREATE FUNCTION gin_compare_prefix_timestamptz(timestamptz, timestamptz, int2, internal)
257RETURNS int4
258AS 'MODULE_PATHNAME'
259LANGUAGE C STRICT IMMUTABLE;
260
261CREATE FUNCTION gin_extract_query_timestamptz(timestamptz, internal, int2, internal, internal)
262RETURNS internal
263AS 'MODULE_PATHNAME'
264LANGUAGE C STRICT IMMUTABLE;
265
266CREATE OPERATOR CLASS timestamptz_ops
267DEFAULT FOR TYPE timestamptz USING gin
268AS
269    OPERATOR        1       <,
270    OPERATOR        2       <=,
271    OPERATOR        3       =,
272    OPERATOR        4       >=,
273    OPERATOR        5       >,
274    FUNCTION        1       timestamptz_cmp(timestamptz,timestamptz),
275    FUNCTION        2       gin_extract_value_timestamptz(timestamptz, internal),
276    FUNCTION        3       gin_extract_query_timestamptz(timestamptz, internal, int2, internal, internal),
277    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
278    FUNCTION        5       gin_compare_prefix_timestamptz(timestamptz,timestamptz,int2, internal),
279STORAGE         timestamptz;
280
281CREATE FUNCTION gin_extract_value_time(time, internal)
282RETURNS internal
283AS 'MODULE_PATHNAME'
284LANGUAGE C STRICT IMMUTABLE;
285
286CREATE FUNCTION gin_compare_prefix_time(time, time, int2, internal)
287RETURNS int4
288AS 'MODULE_PATHNAME'
289LANGUAGE C STRICT IMMUTABLE;
290
291CREATE FUNCTION gin_extract_query_time(time, internal, int2, internal, internal)
292RETURNS internal
293AS 'MODULE_PATHNAME'
294LANGUAGE C STRICT IMMUTABLE;
295
296CREATE OPERATOR CLASS time_ops
297DEFAULT FOR TYPE time USING gin
298AS
299    OPERATOR        1       <,
300    OPERATOR        2       <=,
301    OPERATOR        3       =,
302    OPERATOR        4       >=,
303    OPERATOR        5       >,
304    FUNCTION        1       time_cmp(time,time),
305    FUNCTION        2       gin_extract_value_time(time, internal),
306    FUNCTION        3       gin_extract_query_time(time, internal, int2, internal, internal),
307    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
308    FUNCTION        5       gin_compare_prefix_time(time,time,int2, internal),
309STORAGE         time;
310
311CREATE FUNCTION gin_extract_value_timetz(timetz, internal)
312RETURNS internal
313AS 'MODULE_PATHNAME'
314LANGUAGE C STRICT IMMUTABLE;
315
316CREATE FUNCTION gin_compare_prefix_timetz(timetz, timetz, int2, internal)
317RETURNS int4
318AS 'MODULE_PATHNAME'
319LANGUAGE C STRICT IMMUTABLE;
320
321CREATE FUNCTION gin_extract_query_timetz(timetz, internal, int2, internal, internal)
322RETURNS internal
323AS 'MODULE_PATHNAME'
324LANGUAGE C STRICT IMMUTABLE;
325
326CREATE OPERATOR CLASS timetz_ops
327DEFAULT FOR TYPE timetz USING gin
328AS
329    OPERATOR        1       <,
330    OPERATOR        2       <=,
331    OPERATOR        3       =,
332    OPERATOR        4       >=,
333    OPERATOR        5       >,
334    FUNCTION        1       timetz_cmp(timetz,timetz),
335    FUNCTION        2       gin_extract_value_timetz(timetz, internal),
336    FUNCTION        3       gin_extract_query_timetz(timetz, internal, int2, internal, internal),
337    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
338    FUNCTION        5       gin_compare_prefix_timetz(timetz,timetz,int2, internal),
339STORAGE         timetz;
340
341CREATE FUNCTION gin_extract_value_date(date, internal)
342RETURNS internal
343AS 'MODULE_PATHNAME'
344LANGUAGE C STRICT IMMUTABLE;
345
346CREATE FUNCTION gin_compare_prefix_date(date, date, int2, internal)
347RETURNS int4
348AS 'MODULE_PATHNAME'
349LANGUAGE C STRICT IMMUTABLE;
350
351CREATE FUNCTION gin_extract_query_date(date, internal, int2, internal, internal)
352RETURNS internal
353AS 'MODULE_PATHNAME'
354LANGUAGE C STRICT IMMUTABLE;
355
356CREATE OPERATOR CLASS date_ops
357DEFAULT FOR TYPE date USING gin
358AS
359    OPERATOR        1       <,
360    OPERATOR        2       <=,
361    OPERATOR        3       =,
362    OPERATOR        4       >=,
363    OPERATOR        5       >,
364    FUNCTION        1       date_cmp(date,date),
365    FUNCTION        2       gin_extract_value_date(date, internal),
366    FUNCTION        3       gin_extract_query_date(date, internal, int2, internal, internal),
367    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
368    FUNCTION        5       gin_compare_prefix_date(date,date,int2, internal),
369STORAGE         date;
370
371CREATE FUNCTION gin_extract_value_interval(interval, internal)
372RETURNS internal
373AS 'MODULE_PATHNAME'
374LANGUAGE C STRICT IMMUTABLE;
375
376CREATE FUNCTION gin_compare_prefix_interval(interval, interval, int2, internal)
377RETURNS int4
378AS 'MODULE_PATHNAME'
379LANGUAGE C STRICT IMMUTABLE;
380
381CREATE FUNCTION gin_extract_query_interval(interval, internal, int2, internal, internal)
382RETURNS internal
383AS 'MODULE_PATHNAME'
384LANGUAGE C STRICT IMMUTABLE;
385
386CREATE OPERATOR CLASS interval_ops
387DEFAULT FOR TYPE interval USING gin
388AS
389    OPERATOR        1       <,
390    OPERATOR        2       <=,
391    OPERATOR        3       =,
392    OPERATOR        4       >=,
393    OPERATOR        5       >,
394    FUNCTION        1       interval_cmp(interval,interval),
395    FUNCTION        2       gin_extract_value_interval(interval, internal),
396    FUNCTION        3       gin_extract_query_interval(interval, internal, int2, internal, internal),
397    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
398    FUNCTION        5       gin_compare_prefix_interval(interval,interval,int2, internal),
399STORAGE         interval;
400
401CREATE FUNCTION gin_extract_value_macaddr(macaddr, internal)
402RETURNS internal
403AS 'MODULE_PATHNAME'
404LANGUAGE C STRICT IMMUTABLE;
405
406CREATE FUNCTION gin_compare_prefix_macaddr(macaddr, macaddr, int2, internal)
407RETURNS int4
408AS 'MODULE_PATHNAME'
409LANGUAGE C STRICT IMMUTABLE;
410
411CREATE FUNCTION gin_extract_query_macaddr(macaddr, internal, int2, internal, internal)
412RETURNS internal
413AS 'MODULE_PATHNAME'
414LANGUAGE C STRICT IMMUTABLE;
415
416CREATE OPERATOR CLASS macaddr_ops
417DEFAULT FOR TYPE macaddr USING gin
418AS
419    OPERATOR        1       <,
420    OPERATOR        2       <=,
421    OPERATOR        3       =,
422    OPERATOR        4       >=,
423    OPERATOR        5       >,
424    FUNCTION        1       macaddr_cmp(macaddr,macaddr),
425    FUNCTION        2       gin_extract_value_macaddr(macaddr, internal),
426    FUNCTION        3       gin_extract_query_macaddr(macaddr, internal, int2, internal, internal),
427    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
428    FUNCTION        5       gin_compare_prefix_macaddr(macaddr,macaddr,int2, internal),
429STORAGE         macaddr;
430
431CREATE FUNCTION gin_extract_value_inet(inet, internal)
432RETURNS internal
433AS 'MODULE_PATHNAME'
434LANGUAGE C STRICT IMMUTABLE;
435
436CREATE FUNCTION gin_compare_prefix_inet(inet, inet, int2, internal)
437RETURNS int4
438AS 'MODULE_PATHNAME'
439LANGUAGE C STRICT IMMUTABLE;
440
441CREATE FUNCTION gin_extract_query_inet(inet, internal, int2, internal, internal)
442RETURNS internal
443AS 'MODULE_PATHNAME'
444LANGUAGE C STRICT IMMUTABLE;
445
446CREATE OPERATOR CLASS inet_ops
447DEFAULT FOR TYPE inet USING gin
448AS
449    OPERATOR        1       <,
450    OPERATOR        2       <=,
451    OPERATOR        3       =,
452    OPERATOR        4       >=,
453    OPERATOR        5       >,
454    FUNCTION        1       network_cmp(inet,inet),
455    FUNCTION        2       gin_extract_value_inet(inet, internal),
456    FUNCTION        3       gin_extract_query_inet(inet, internal, int2, internal, internal),
457    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
458    FUNCTION        5       gin_compare_prefix_inet(inet,inet,int2, internal),
459STORAGE         inet;
460
461CREATE FUNCTION gin_extract_value_cidr(cidr, internal)
462RETURNS internal
463AS 'MODULE_PATHNAME'
464LANGUAGE C STRICT IMMUTABLE;
465
466CREATE FUNCTION gin_compare_prefix_cidr(cidr, cidr, int2, internal)
467RETURNS int4
468AS 'MODULE_PATHNAME'
469LANGUAGE C STRICT IMMUTABLE;
470
471CREATE FUNCTION gin_extract_query_cidr(cidr, internal, int2, internal, internal)
472RETURNS internal
473AS 'MODULE_PATHNAME'
474LANGUAGE C STRICT IMMUTABLE;
475
476CREATE OPERATOR CLASS cidr_ops
477DEFAULT FOR TYPE cidr USING gin
478AS
479    OPERATOR        1       <(inet,inet),
480    OPERATOR        2       <=(inet,inet),
481    OPERATOR        3       =(inet,inet),
482    OPERATOR        4       >=(inet,inet),
483    OPERATOR        5       >(inet,inet),
484    FUNCTION        1       network_cmp(inet,inet),
485    FUNCTION        2       gin_extract_value_cidr(cidr, internal),
486    FUNCTION        3       gin_extract_query_cidr(cidr, internal, int2, internal, internal),
487    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
488    FUNCTION        5       gin_compare_prefix_cidr(cidr,cidr,int2, internal),
489STORAGE         cidr;
490
491CREATE FUNCTION gin_extract_value_text(text, internal)
492RETURNS internal
493AS 'MODULE_PATHNAME'
494LANGUAGE C STRICT IMMUTABLE;
495
496CREATE FUNCTION gin_compare_prefix_text(text, text, int2, internal)
497RETURNS int4
498AS 'MODULE_PATHNAME'
499LANGUAGE C STRICT IMMUTABLE;
500
501CREATE FUNCTION gin_extract_query_text(text, internal, int2, internal, internal)
502RETURNS internal
503AS 'MODULE_PATHNAME'
504LANGUAGE C STRICT IMMUTABLE;
505
506CREATE OPERATOR CLASS text_ops
507DEFAULT FOR TYPE text USING gin
508AS
509    OPERATOR        1       <,
510    OPERATOR        2       <=,
511    OPERATOR        3       =,
512    OPERATOR        4       >=,
513    OPERATOR        5       >,
514    FUNCTION        1       bttextcmp(text,text),
515    FUNCTION        2       gin_extract_value_text(text, internal),
516    FUNCTION        3       gin_extract_query_text(text, internal, int2, internal, internal),
517    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
518    FUNCTION        5       gin_compare_prefix_text(text,text,int2, internal),
519STORAGE         text;
520
521CREATE OPERATOR CLASS varchar_ops
522DEFAULT FOR TYPE varchar USING gin
523AS
524    OPERATOR        1       <(text,text),
525    OPERATOR        2       <=(text,text),
526    OPERATOR        3       =(text,text),
527    OPERATOR        4       >=(text,text),
528    OPERATOR        5       >(text,text),
529    FUNCTION        1       bttextcmp(text,text),
530    FUNCTION        2       gin_extract_value_text(text, internal),
531    FUNCTION        3       gin_extract_query_text(text, internal, int2, internal, internal),
532    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
533    FUNCTION        5       gin_compare_prefix_text(text,text,int2, internal),
534STORAGE         varchar;
535
536CREATE FUNCTION gin_extract_value_char("char", internal)
537RETURNS internal
538AS 'MODULE_PATHNAME'
539LANGUAGE C STRICT IMMUTABLE;
540
541CREATE FUNCTION gin_compare_prefix_char("char", "char", int2, internal)
542RETURNS int4
543AS 'MODULE_PATHNAME'
544LANGUAGE C STRICT IMMUTABLE;
545
546CREATE FUNCTION gin_extract_query_char("char", internal, int2, internal, internal)
547RETURNS internal
548AS 'MODULE_PATHNAME'
549LANGUAGE C STRICT IMMUTABLE;
550
551CREATE OPERATOR CLASS char_ops
552DEFAULT FOR TYPE "char" USING gin
553AS
554    OPERATOR        1       <,
555    OPERATOR        2       <=,
556    OPERATOR        3       =,
557    OPERATOR        4       >=,
558    OPERATOR        5       >,
559    FUNCTION        1       btcharcmp("char","char"),
560    FUNCTION        2       gin_extract_value_char("char", internal),
561    FUNCTION        3       gin_extract_query_char("char", internal, int2, internal, internal),
562    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
563    FUNCTION        5       gin_compare_prefix_char("char","char",int2, internal),
564STORAGE         "char";
565
566CREATE FUNCTION gin_extract_value_bytea(bytea, internal)
567RETURNS internal
568AS 'MODULE_PATHNAME'
569LANGUAGE C STRICT IMMUTABLE;
570
571CREATE FUNCTION gin_compare_prefix_bytea(bytea, bytea, int2, internal)
572RETURNS int4
573AS 'MODULE_PATHNAME'
574LANGUAGE C STRICT IMMUTABLE;
575
576CREATE FUNCTION gin_extract_query_bytea(bytea, internal, int2, internal, internal)
577RETURNS internal
578AS 'MODULE_PATHNAME'
579LANGUAGE C STRICT IMMUTABLE;
580
581CREATE OPERATOR CLASS bytea_ops
582DEFAULT FOR TYPE bytea USING gin
583AS
584    OPERATOR        1       <,
585    OPERATOR        2       <=,
586    OPERATOR        3       =,
587    OPERATOR        4       >=,
588    OPERATOR        5       >,
589    FUNCTION        1       byteacmp(bytea,bytea),
590    FUNCTION        2       gin_extract_value_bytea(bytea, internal),
591    FUNCTION        3       gin_extract_query_bytea(bytea, internal, int2, internal, internal),
592    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
593    FUNCTION        5       gin_compare_prefix_bytea(bytea,bytea,int2, internal),
594STORAGE         bytea;
595
596CREATE FUNCTION gin_extract_value_bit(bit, internal)
597RETURNS internal
598AS 'MODULE_PATHNAME'
599LANGUAGE C STRICT IMMUTABLE;
600
601CREATE FUNCTION gin_compare_prefix_bit(bit, bit, int2, internal)
602RETURNS int4
603AS 'MODULE_PATHNAME'
604LANGUAGE C STRICT IMMUTABLE;
605
606CREATE FUNCTION gin_extract_query_bit(bit, internal, int2, internal, internal)
607RETURNS internal
608AS 'MODULE_PATHNAME'
609LANGUAGE C STRICT IMMUTABLE;
610
611CREATE OPERATOR CLASS bit_ops
612DEFAULT FOR TYPE bit USING gin
613AS
614    OPERATOR        1       <,
615    OPERATOR        2       <=,
616    OPERATOR        3       =,
617    OPERATOR        4       >=,
618    OPERATOR        5       >,
619    FUNCTION        1       bitcmp(bit,bit),
620    FUNCTION        2       gin_extract_value_bit(bit, internal),
621    FUNCTION        3       gin_extract_query_bit(bit, internal, int2, internal, internal),
622    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
623    FUNCTION        5       gin_compare_prefix_bit(bit,bit,int2, internal),
624STORAGE         bit;
625
626CREATE FUNCTION gin_extract_value_varbit(varbit, internal)
627RETURNS internal
628AS 'MODULE_PATHNAME'
629LANGUAGE C STRICT IMMUTABLE;
630
631CREATE FUNCTION gin_compare_prefix_varbit(varbit, varbit, int2, internal)
632RETURNS int4
633AS 'MODULE_PATHNAME'
634LANGUAGE C STRICT IMMUTABLE;
635
636CREATE FUNCTION gin_extract_query_varbit(varbit, internal, int2, internal, internal)
637RETURNS internal
638AS 'MODULE_PATHNAME'
639LANGUAGE C STRICT IMMUTABLE;
640
641CREATE OPERATOR CLASS varbit_ops
642DEFAULT FOR TYPE varbit USING gin
643AS
644    OPERATOR        1       <,
645    OPERATOR        2       <=,
646    OPERATOR        3       =,
647    OPERATOR        4       >=,
648    OPERATOR        5       >,
649    FUNCTION        1       varbitcmp(varbit,varbit),
650    FUNCTION        2       gin_extract_value_varbit(varbit, internal),
651    FUNCTION        3       gin_extract_query_varbit(varbit, internal, int2, internal, internal),
652    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
653    FUNCTION        5       gin_compare_prefix_varbit(varbit,varbit,int2, internal),
654STORAGE         varbit;
655
656CREATE FUNCTION gin_extract_value_numeric(numeric, internal)
657RETURNS internal
658AS 'MODULE_PATHNAME'
659LANGUAGE C STRICT IMMUTABLE;
660
661CREATE FUNCTION gin_compare_prefix_numeric(numeric, numeric, int2, internal)
662RETURNS int4
663AS 'MODULE_PATHNAME'
664LANGUAGE C STRICT IMMUTABLE;
665
666CREATE FUNCTION gin_extract_query_numeric(numeric, internal, int2, internal, internal)
667RETURNS internal
668AS 'MODULE_PATHNAME'
669LANGUAGE C STRICT IMMUTABLE;
670
671CREATE FUNCTION gin_numeric_cmp(numeric, numeric)
672RETURNS int4
673AS 'MODULE_PATHNAME'
674LANGUAGE C STRICT IMMUTABLE;
675
676CREATE OPERATOR CLASS numeric_ops
677DEFAULT FOR TYPE numeric USING gin
678AS
679    OPERATOR        1       <,
680    OPERATOR        2       <=,
681    OPERATOR        3       =,
682    OPERATOR        4       >=,
683    OPERATOR        5       >,
684    FUNCTION        1       gin_numeric_cmp(numeric,numeric),
685    FUNCTION        2       gin_extract_value_numeric(numeric, internal),
686    FUNCTION        3       gin_extract_query_numeric(numeric, internal, int2, internal, internal),
687    FUNCTION        4       gin_btree_consistent(internal, int2, anyelement, int4, internal, internal),
688    FUNCTION        5       gin_compare_prefix_numeric(numeric,numeric,int2, internal),
689STORAGE         numeric;
690