1#include "sqldefines.h"
2#if POSTGIS_PGSQL_VERSION > 100
3-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
4-- SP-GiST 2D Support Functions
5-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
6-- Availability: 2.5.0
7CREATE OR REPLACE FUNCTION geometry_spgist_config_2d(internal, internal)
8	RETURNS void
9	AS 'MODULE_PATHNAME' ,'gserialized_spgist_config_2d'
10	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
11-- Availability: 2.5.0
12CREATE OR REPLACE FUNCTION geometry_spgist_choose_2d(internal, internal)
13	RETURNS void
14	AS 'MODULE_PATHNAME' ,'gserialized_spgist_choose_2d'
15	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
16-- Availability: 2.5.0
17CREATE OR REPLACE FUNCTION geometry_spgist_picksplit_2d(internal, internal)
18	RETURNS void
19	AS 'MODULE_PATHNAME' ,'gserialized_spgist_picksplit_2d'
20	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
21-- Availability: 2.5.0
22CREATE OR REPLACE FUNCTION geometry_spgist_inner_consistent_2d(internal, internal)
23	RETURNS void
24	AS 'MODULE_PATHNAME' ,'gserialized_spgist_inner_consistent_2d'
25	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
26-- Availability: 2.5.0
27CREATE OR REPLACE FUNCTION geometry_spgist_leaf_consistent_2d(internal, internal)
28	RETURNS bool
29	AS 'MODULE_PATHNAME' ,'gserialized_spgist_leaf_consistent_2d'
30	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
31-- Availability: 2.5.0
32CREATE OR REPLACE FUNCTION geometry_spgist_compress_2d(internal)
33	RETURNS internal
34	AS 'MODULE_PATHNAME' ,'gserialized_spgist_compress_2d'
35	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
36
37-- Availability: 2.5.0
38CREATE OPERATOR CLASS spgist_geometry_ops_2d
39	DEFAULT FOR TYPE geometry USING SPGIST AS
40	OPERATOR        1        <<  ,
41	OPERATOR        2        &<	 ,
42	OPERATOR        3        &&  ,
43	OPERATOR        4        &>	 ,
44	OPERATOR        5        >>	 ,
45	OPERATOR        6        ~=	 ,
46	OPERATOR        7        ~	 ,
47	OPERATOR        8        @	 ,
48	OPERATOR        9        &<| ,
49	OPERATOR        10       <<| ,
50	OPERATOR        11       |>> ,
51	OPERATOR        12       |&> ,
52	FUNCTION		1		geometry_spgist_config_2d(internal, internal),
53	FUNCTION		2		geometry_spgist_choose_2d(internal, internal),
54	FUNCTION		3		geometry_spgist_picksplit_2d(internal, internal),
55	FUNCTION		4		geometry_spgist_inner_consistent_2d(internal, internal),
56	FUNCTION		5		geometry_spgist_leaf_consistent_2d(internal, internal),
57	FUNCTION		6		geometry_spgist_compress_2d(internal);
58
59-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
60-- 3-D GEOMETRY Operators
61-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
62
63-- Availability: 2.5.0
64CREATE OR REPLACE FUNCTION geometry_overlaps_3d(geom1 geometry, geom2 geometry)
65	RETURNS boolean
66	AS 'MODULE_PATHNAME' ,'gserialized_overlaps_3d'
67	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
68
69-- Availability: 2.5.0
70CREATE OR REPLACE FUNCTION geometry_contains_3d(geom1 geometry, geom2 geometry)
71	RETURNS boolean
72	AS 'MODULE_PATHNAME' ,'gserialized_contains_3d'
73	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
74
75-- Availability: 2.5.0
76CREATE OR REPLACE FUNCTION geometry_contained_3d(geom1 geometry, geom2 geometry)
77	RETURNS boolean
78	AS 'MODULE_PATHNAME' ,'gserialized_contained_3d'
79	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
80
81-- Availability: 2.5.0
82CREATE OR REPLACE FUNCTION geometry_same_3d(geom1 geometry, geom2 geometry)
83	RETURNS boolean
84	AS 'MODULE_PATHNAME' ,'gserialized_same_3d'
85	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
86
87-- Availability: 2.5.0
88CREATE OPERATOR &/& (
89	PROCEDURE = geometry_overlaps_3d,
90	LEFTARG = geometry, RIGHTARG = geometry,
91	COMMUTATOR = &/&,
92	RESTRICT = gserialized_gist_sel_nd, JOIN = gserialized_gist_joinsel_nd
93);
94
95-- Availability: 2.5.0
96CREATE OPERATOR @>> (
97	PROCEDURE = geometry_contains_3d,
98	LEFTARG = geometry, RIGHTARG = geometry,
99	COMMUTATOR = <<@,
100	RESTRICT = gserialized_gist_sel_nd, JOIN = gserialized_gist_joinsel_nd
101);
102
103-- Availability: 2.5.0
104CREATE OPERATOR <<@ (
105	PROCEDURE = geometry_contained_3d,
106	LEFTARG = geometry, RIGHTARG = geometry,
107	COMMUTATOR = @>>,
108	RESTRICT = gserialized_gist_sel_nd, JOIN = gserialized_gist_joinsel_nd
109);
110
111-- Availability: 2.5.0
112CREATE OPERATOR ~== (
113	PROCEDURE = geometry_same_3d,
114	LEFTARG = geometry, RIGHTARG = geometry,
115	COMMUTATOR = ~==,
116	RESTRICT = gserialized_gist_sel_nd, JOIN = gserialized_gist_joinsel_nd
117);
118
119-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
120-- SP-GiST 3D Support Functions
121-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
122-- Availability: 2.5.0
123CREATE OR REPLACE FUNCTION geometry_spgist_config_3d(internal, internal)
124	RETURNS void
125	AS 'MODULE_PATHNAME', 'gserialized_spgist_config_3d'
126	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
127-- Availability: 2.5.0
128CREATE OR REPLACE FUNCTION geometry_spgist_choose_3d(internal, internal)
129	RETURNS void
130	AS 'MODULE_PATHNAME', 'gserialized_spgist_choose_3d'
131	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
132-- Availability: 2.5.0
133CREATE OR REPLACE FUNCTION geometry_spgist_picksplit_3d(internal, internal)
134	RETURNS void
135	AS 'MODULE_PATHNAME', 'gserialized_spgist_picksplit_3d'
136	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
137-- Availability: 2.5.0
138CREATE OR REPLACE FUNCTION geometry_spgist_inner_consistent_3d(internal, internal)
139	RETURNS void
140	AS 'MODULE_PATHNAME', 'gserialized_spgist_inner_consistent_3d'
141	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
142-- Availability: 2.5.0
143CREATE OR REPLACE FUNCTION geometry_spgist_leaf_consistent_3d(internal, internal)
144	RETURNS bool
145	AS 'MODULE_PATHNAME', 'gserialized_spgist_leaf_consistent_3d'
146	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
147-- Availability: 2.5.0
148CREATE OR REPLACE FUNCTION geometry_spgist_compress_3d(internal)
149	RETURNS internal
150	AS 'MODULE_PATHNAME', 'gserialized_spgist_compress_3d'
151	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
152
153-- Availability: 2.5.0
154CREATE OPERATOR CLASS spgist_geometry_ops_3d
155	FOR TYPE geometry USING SPGIST AS
156	OPERATOR        3        &/&	,
157	OPERATOR        6        ~==	,
158	OPERATOR        7        @>>	,
159	OPERATOR        8        <<@	,
160	FUNCTION	1	geometry_spgist_config_3d(internal, internal),
161	FUNCTION	2	geometry_spgist_choose_3d(internal, internal),
162	FUNCTION	3	geometry_spgist_picksplit_3d(internal, internal),
163	FUNCTION	4	geometry_spgist_inner_consistent_3d(internal, internal),
164	FUNCTION	5	geometry_spgist_leaf_consistent_3d(internal, internal),
165	FUNCTION	6	geometry_spgist_compress_3d(internal);
166
167-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
168-- SP-GiST ND Support Functions
169-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
170
171-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
172-- Geometry
173-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
174
175-- Availability: 3.0.0
176CREATE OR REPLACE FUNCTION geometry_spgist_config_nd(internal, internal)
177	RETURNS void
178	AS 'MODULE_PATHNAME' ,'gserialized_spgist_config_nd'
179	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
180-- Availability: 3.0.0
181CREATE OR REPLACE FUNCTION geometry_spgist_choose_nd(internal, internal)
182	RETURNS void
183	AS 'MODULE_PATHNAME' ,'gserialized_spgist_choose_nd'
184	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
185-- Availability: 3.0.0
186CREATE OR REPLACE FUNCTION geometry_spgist_picksplit_nd(internal, internal)
187	RETURNS void
188	AS 'MODULE_PATHNAME' ,'gserialized_spgist_picksplit_nd'
189	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
190-- Availability: 3.0.0
191CREATE OR REPLACE FUNCTION geometry_spgist_inner_consistent_nd(internal, internal)
192	RETURNS void
193	AS 'MODULE_PATHNAME' ,'gserialized_spgist_inner_consistent_nd'
194	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
195-- Availability: 3.0.0
196CREATE OR REPLACE FUNCTION geometry_spgist_leaf_consistent_nd(internal, internal)
197	RETURNS bool
198	AS 'MODULE_PATHNAME' ,'gserialized_spgist_leaf_consistent_nd'
199	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
200-- Availability: 3.0.0
201CREATE OR REPLACE FUNCTION geometry_spgist_compress_nd(internal)
202	RETURNS internal
203	AS 'MODULE_PATHNAME' ,'gserialized_spgist_compress_nd'
204	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
205
206-- Availability: 3.0.0
207CREATE OPERATOR CLASS spgist_geometry_ops_nd
208	FOR TYPE geometry USING SPGIST AS
209	OPERATOR        3        &&& ,
210	OPERATOR        6        ~~=	,
211	OPERATOR        7        ~~	,
212	OPERATOR        8       @@ 	,
213	FUNCTION		1		geometry_spgist_config_nd(internal, internal),
214	FUNCTION		2		geometry_spgist_choose_nd(internal, internal),
215	FUNCTION		3		geometry_spgist_picksplit_nd(internal, internal),
216	FUNCTION		4		geometry_spgist_inner_consistent_nd(internal, internal),
217	FUNCTION		5		geometry_spgist_leaf_consistent_nd(internal, internal),
218	FUNCTION		6		geometry_spgist_compress_nd(internal);
219
220-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
221-- Geography
222-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
223
224-- Availability: 3.0.0
225CREATE OR REPLACE FUNCTION geography_spgist_config_nd(internal, internal)
226	RETURNS void
227	AS 'MODULE_PATHNAME' ,'gserialized_spgist_config_nd'
228	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
229-- Availability: 3.0.0
230CREATE OR REPLACE FUNCTION geography_spgist_choose_nd(internal, internal)
231	RETURNS void
232	AS 'MODULE_PATHNAME' ,'gserialized_spgist_choose_nd'
233	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
234-- Availability: 3.0.0
235CREATE OR REPLACE FUNCTION geography_spgist_picksplit_nd(internal, internal)
236	RETURNS void
237	AS 'MODULE_PATHNAME' ,'gserialized_spgist_picksplit_nd'
238	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
239-- Availability: 3.0.0
240CREATE OR REPLACE FUNCTION geography_spgist_inner_consistent_nd(internal, internal)
241	RETURNS void
242	AS 'MODULE_PATHNAME' ,'gserialized_spgist_inner_consistent_nd'
243	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
244-- Availability: 3.0.0
245CREATE OR REPLACE FUNCTION geography_spgist_leaf_consistent_nd(internal, internal)
246	RETURNS bool
247	AS 'MODULE_PATHNAME' ,'gserialized_spgist_leaf_consistent_nd'
248	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
249-- Availability: 3.0.0
250CREATE OR REPLACE FUNCTION geography_spgist_compress_nd(internal)
251	RETURNS internal
252	AS 'MODULE_PATHNAME' ,'gserialized_spgist_compress_nd'
253	LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
254
255-- Availability: 3.0.0
256CREATE OPERATOR CLASS spgist_geography_ops_nd
257	DEFAULT FOR TYPE geography USING SPGIST AS
258	OPERATOR        3        && ,
259--	OPERATOR        6        ~=	,
260--	OPERATOR        7        ~	,
261--	OPERATOR        8        @	,
262	FUNCTION		1		geography_spgist_config_nd(internal, internal),
263	FUNCTION		2		geography_spgist_choose_nd(internal, internal),
264	FUNCTION		3		geography_spgist_picksplit_nd(internal, internal),
265	FUNCTION		4		geography_spgist_inner_consistent_nd(internal, internal),
266	FUNCTION		5		geography_spgist_leaf_consistent_nd(internal, internal),
267	FUNCTION		6		geography_spgist_compress_nd(internal);
268
269#endif
270