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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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#endif
167