1-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2--
3--
4-- PostGIS - Spatial Types for PostgreSQL
5-- http://postgis.net
6--
7-- Copyright (C) 2011-2012 Sandro Santilli <strk@kbt.io>
8-- Copyright (C) 2010-2012 Regina Obe <lr@pcorp.us>
9-- Copyright (C) 2009      Paul Ramsey <pramsey@cleverelephant.ca>
10--
11-- This is free software; you can redistribute and/or modify it under
12-- the terms of the GNU General Public Licence. See the COPYING file.
13--
14-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
15--
16-- This file contains drop commands for obsoleted items that need
17-- to be dropped _after_ upgrade of old functions.
18-- Changes to this file affect postgis_upgrade*.sql script.
19--
20-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
21
22-- First drop old aggregates
23DROP AGGREGATE IF EXISTS memgeomunion(geometry);
24DROP AGGREGATE IF EXISTS geomunion(geometry);
25DROP AGGREGATE IF EXISTS polygonize(geometry); -- Deprecated in 1.2.3, Dropped in 2.0.0
26DROP AGGREGATE IF EXISTS collect(geometry); -- Deprecated in 1.2.3, Dropped in 2.0.0
27DROP AGGREGATE IF EXISTS st_geomunion(geometry);
28DROP AGGREGATE IF EXISTS accum_old(geometry);
29DROP AGGREGATE IF EXISTS st_accum_old(geometry);
30DROP AGGREGATE IF EXISTS st_accum(geometry); -- Dropped in 3.0.0
31DROP FUNCTION IF EXISTS pgis_geometry_accum_finalfn(internal);
32
33DROP AGGREGATE IF EXISTS st_astwkb_agg(geometry, integer); -- temporarely introduced before 2.2.0 final
34DROP AGGREGATE IF EXISTS st_astwkb_agg(geometry, integer, bigint); -- temporarely introduced before 2.2.0 final
35DROP AGGREGATE IF EXISTS st_astwkbagg(geometry, integer); -- temporarely introduced before 2.2.0 final
36DROP AGGREGATE IF EXISTS st_astwkbagg(geometry, integer, bigint); -- temporarely introduced before 2.2.0 final
37DROP AGGREGATE IF EXISTS st_astwkbagg(geometry, integer, bigint, boolean); -- temporarely introduced before 2.2.0 final
38DROP AGGREGATE IF EXISTS st_astwkbagg(geometry, integer, bigint, boolean, boolean); -- temporarely introduced before 2.2.0 final
39
40-- BEGIN Management functions that now have default param for typmod --
41DROP FUNCTION IF EXISTS AddGeometryColumn(varchar, varchar, varchar, varchar, integer, varchar, integer);
42DROP FUNCTION IF EXISTS AddGeometryColumn(varchar, varchar, varchar, integer, varchar, integer);
43DROP FUNCTION IF EXISTS AddGeometryColumn(varchar, varchar, integer, varchar, integer);
44DROP FUNCTION IF EXISTS populate_geometry_columns();
45DROP FUNCTION IF EXISTS populate_geometry_columns(oid);
46
47-- END Management functions now have default parameter for typmod --
48-- Then drop old functions
49DROP FUNCTION IF EXISTS box2d_overleft(box2d, box2d);
50DROP FUNCTION IF EXISTS box2d_overright(box2d, box2d);
51DROP FUNCTION IF EXISTS box2d_left(box2d, box2d);
52DROP FUNCTION IF EXISTS box2d_right(box2d, box2d);
53DROP FUNCTION IF EXISTS box2d_contain(box2d, box2d);
54DROP FUNCTION IF EXISTS box2d_contained(box2d, box2d);
55DROP FUNCTION IF EXISTS box2d_overlap(box2d, box2d);
56DROP FUNCTION IF EXISTS box2d_same(box2d, box2d);
57DROP FUNCTION IF EXISTS box2d_intersects(box2d, box2d);
58DROP FUNCTION IF EXISTS st_area(geography); -- this one changed to use default parameters
59DROP FUNCTION IF EXISTS ST_AsGeoJson(geometry); -- this one changed to use default args
60DROP FUNCTION IF EXISTS ST_AsGeoJson(geography); -- this one changed to use default args
61DROP FUNCTION IF EXISTS ST_AsGeoJson(geometry, int4); -- this one changed to use default args
62DROP FUNCTION IF EXISTS ST_AsGeoJson(geography, int4); -- this one changed to use default args
63DROP FUNCTION IF EXISTS ST_AsGeoJson(int4, geometry); -- this one changed to use default args
64DROP FUNCTION IF EXISTS ST_AsGeoJson(int4, geography); -- this one changed to use default args
65DROP FUNCTION IF EXISTS ST_AsGeoJson(int4, geometry, int4); -- this one changed to use default args
66DROP FUNCTION IF EXISTS ST_AsGeoJson(int4, geography, int4); -- this one changed to use default args
67DROP FUNCTION IF EXISTS ST_AsGeoJson(int4, geography, int4, int4); -- dropped because the version-first signature is dumb
68DROP FUNCTION IF EXISTS _ST_AsGeoJson(int4, geometry, int4, int4); -- dropped in PostGIS-3.0 (r17300)
69DROP FUNCTION IF EXISTS _ST_AsGeoJson(int4, geography, int4, int4); -- dropped in PostGIS-3.0 (r17300)
70DROP FUNCTION IF EXISTS st_asgml(geometry); -- changed to use default args
71DROP FUNCTION IF EXISTS st_asgml(geometry, int4);  -- changed to use default args
72DROP FUNCTION IF EXISTS st_asgml(int4, geometry);  -- changed to use default args
73DROP FUNCTION IF EXISTS st_asgml(int4, geometry, int4);  -- changed to use default args
74DROP FUNCTION IF EXISTS st_asgml(int4, geometry, int4, int4);  -- changed to use default args
75DROP FUNCTION IF EXISTS st_asgml(int4, geometry, int4, int4, text); -- changed to use default args
76DROP FUNCTION IF EXISTS st_asgml(geography); -- changed to use default args
77DROP FUNCTION IF EXISTS st_asgml(geography, int4);  -- changed to use default args
78DROP FUNCTION IF EXISTS st_asgml(int4, geography);  -- changed to use default args
79DROP FUNCTION IF EXISTS st_asgml(int4, geography, int4);  -- changed to use default args
80DROP FUNCTION IF EXISTS st_asgml(int4, geography, int4, int4);  -- changed to use default args
81DROP FUNCTION IF EXISTS st_asgml(int4, geography, int4, int4, text); -- changed to use default args
82DROP FUNCTION IF EXISTS _st_asgml(int4, geometry, int4, int4, text); -- changed to use default args
83DROP FUNCTION IF EXISTS _st_asgml(int4, geography, int4, int4, text); -- changed to use default args
84DROP FUNCTION IF EXISTS _st_asgml(int4, geography, int4, int4, text, text); -- changed to use default args
85DROP FUNCTION IF EXISTS st_asgml(geography, int4, int4);
86DROP FUNCTION IF EXISTS _st_askml(int4, geography, int4, text); -- dropped in PostGIS-3.0 (r17300)
87DROP FUNCTION IF EXISTS _st_askml(int4, geometry, int4, text); -- dropped in PostGIS-3.0 (r17300)
88DROP FUNCTION IF EXISTS st_askml(geometry); -- changed to use default args
89DROP FUNCTION IF EXISTS st_askml(geography); -- changed to use default args
90DROP FUNCTION IF EXISTS st_askml(int4, geometry, int4); -- changed to use default args
91DROP FUNCTION IF EXISTS st_askml(int4, geography, int4); -- changed to use default args
92DROP FUNCTION IF EXISTS st_askml(int4, geography, int4, text); -- dropped because the version-first signature is dumb
93
94DROP FUNCTION IF EXISTS st_asx3d(geometry); -- this one changed to use default parameters so full function deals with it
95DROP FUNCTION IF EXISTS st_asx3d(geometry, int4); -- introduce variant with opts so get rid of other without ops
96DROP FUNCTION IF EXISTS st_assvg(geometry); -- changed to use default args
97DROP FUNCTION IF EXISTS st_assvg(geometry, int4); -- changed to use default args
98DROP FUNCTION IF EXISTS st_assvg(geography); -- changed to use default args
99DROP FUNCTION IF EXISTS st_assvg(geography, int4); -- changed to use default args
100DROP FUNCTION IF EXISTS st_box2d_overleft(box2d, box2d);
101DROP FUNCTION IF EXISTS st_box2d_overright(box2d, box2d);
102DROP FUNCTION IF EXISTS st_box2d_left(box2d, box2d);
103DROP FUNCTION IF EXISTS st_box2d_right(box2d, box2d);
104DROP FUNCTION IF EXISTS st_box2d_contain(box2d, box2d);
105DROP FUNCTION IF EXISTS st_box2d_contained(box2d, box2d);
106DROP FUNCTION IF EXISTS st_box2d_overlap(box2d, box2d);
107DROP FUNCTION IF EXISTS st_box2d_same(box2d, box2d);
108DROP FUNCTION IF EXISTS st_box2d_intersects(box2d, box2d);
109DROP FUNCTION IF EXISTS st_box2d_in(cstring);
110DROP FUNCTION IF EXISTS st_box2d_out(box2d);
111DROP FUNCTION IF EXISTS st_box2d(geometry);
112DROP FUNCTION IF EXISTS st_box2d(box3d);
113DROP FUNCTION IF EXISTS st_box3d(box2d);
114DROP FUNCTION IF EXISTS st_box(box3d);
115DROP FUNCTION IF EXISTS st_box3d(geometry);
116DROP FUNCTION IF EXISTS st_box(geometry);
117DROP FUNCTION IF EXISTS _st_buffer(geometry, float8, cstring); -- dropped in PostGIS-3.0 (r17300)
118DROP FUNCTION IF EXISTS ST_ConcaveHull(geometry,float); -- this one changed to use default parameters
119DROP FUNCTION IF EXISTS ST_DWithin(geography, geography, float8); -- this one changed to use default parameters
120DROP FUNCTION IF EXISTS st_text(geometry);
121DROP FUNCTION IF EXISTS st_geometry(box2d);
122DROP FUNCTION IF EXISTS st_geometry(box3d);
123DROP FUNCTION IF EXISTS st_geometry(text);
124DROP FUNCTION IF EXISTS st_geometry(bytea);
125DROP FUNCTION IF EXISTS st_bytea(geometry);
126DROP FUNCTION IF EXISTS st_addbbox(geometry);
127DROP FUNCTION IF EXISTS _st_distance(geography, geography, float8, boolean); -- dropped in PostGIS-3.0 (r17300)
128DROP FUNCTION IF EXISTS st_dropbbox(geometry);
129DROP FUNCTION IF EXISTS st_hasbbox(geometry);
130DROP FUNCTION IF EXISTS cache_bbox();
131DROP FUNCTION IF EXISTS st_cache_bbox();
132DROP FUNCTION IF EXISTS ST_GeoHash(geometry); -- changed to use default args
133DROP FUNCTION IF EXISTS st_length(geography); -- this one changed to use default parameters
134DROP FUNCTION IF EXISTS st_perimeter(geography); -- this one changed to use default parameters
135DROP FUNCTION IF EXISTS transform_geometry(geometry, text, text, int);
136DROP FUNCTION IF EXISTS collector(geometry, geometry);
137DROP FUNCTION IF EXISTS st_collector(geometry, geometry);
138DROP FUNCTION IF EXISTS geom_accum (geometry[],geometry);
139DROP FUNCTION IF EXISTS st_geom_accum (geometry[],geometry);
140DROP FUNCTION IF EXISTS collect_garray (geometry[]);
141DROP FUNCTION IF EXISTS st_collect_garray (geometry[]);
142DROP FUNCTION IF EXISTS geosnoop(geometry);
143DROP FUNCTION IF EXISTS jtsnoop(geometry);
144DROP FUNCTION IF EXISTS st_noop(geometry);
145DROP FUNCTION IF EXISTS st_max_distance(geometry, geometry);
146DROP FUNCTION IF EXISTS  ST_MinimumBoundingCircle(geometry); --changed to use default parameters
147-- Drop internals that should never have existed --
148DROP FUNCTION IF EXISTS st_geometry_analyze(internal);
149DROP FUNCTION IF EXISTS st_geometry_in(cstring);
150DROP FUNCTION IF EXISTS st_geometry_out(geometry);
151DROP FUNCTION IF EXISTS st_geometry_recv(internal);
152DROP FUNCTION IF EXISTS st_geometry_send(geometry);
153DROP FUNCTION IF EXISTS st_spheroid_in(cstring);
154DROP FUNCTION IF EXISTS st_spheroid_out(spheroid);
155DROP FUNCTION IF EXISTS st_geometry_lt(geometry, geometry);
156DROP FUNCTION IF EXISTS st_geometry_gt(geometry, geometry);
157DROP FUNCTION IF EXISTS st_geometry_ge(geometry, geometry);
158DROP FUNCTION IF EXISTS st_geometry_eq(geometry, geometry);
159DROP FUNCTION IF EXISTS st_geometry_cmp(geometry, geometry);
160DROP FUNCTION IF EXISTS SnapToGrid(geometry, float8, float8);
161DROP FUNCTION IF EXISTS st_removerepeatedpoints(geometry);
162DROP FUNCTION IF EXISTS st_voronoi(geometry, geometry, double precision, boolean); --temporarely introduced before 2.3.0 final
163
164DROP FUNCTION IF EXISTS geometry_gist_sel_2d (internal, oid, internal, int4);
165DROP FUNCTION IF EXISTS geometry_gist_joinsel_2d(internal, oid, internal, smallint);
166DROP FUNCTION IF EXISTS geography_gist_selectivity (internal, oid, internal, int4);
167DROP FUNCTION IF EXISTS geography_gist_join_selectivity(internal, oid, internal, smallint);
168
169DROP FUNCTION IF EXISTS ST_AsBinary(text); -- deprecated in 2.0
170DROP FUNCTION IF EXISTS postgis_uses_stats(); -- deprecated in 2.0
171DROP FUNCTION IF EXISTS ST_GeneratePoints(geometry, numeric); -- numeric -> integer
172
173-- Old accum aggregate support type, removed in 2.5.0
174-- See #4035
175DROP TYPE IF EXISTS pgis_abs CASCADE;
176
177DROP FUNCTION IF EXISTS st_astwkb(geometry, integer, bigint, bool, bool); -- temporarely introduced before 2.2.0 final
178DROP FUNCTION IF EXISTS pgis_twkb_accum_transfn(internal, geometry, integer); -- temporarely introduced before 2.2.0 final
179DROP FUNCTION IF EXISTS pgis_twkb_accum_transfn(internal, geometry, integer, bigint); -- temporarely introduced before 2.2.0 final
180DROP FUNCTION IF EXISTS pgis_twkb_accum_transfn(internal, geometry, integer, bigint, bool); -- temporarely introduced before 2.2.0 final
181DROP FUNCTION IF EXISTS pgis_twkb_accum_transfn(internal, geometry, integer, bigint, bool, bool); -- temporarely introduced before 2.2.0 final
182DROP FUNCTION IF EXISTS pgis_twkb_accum_finalfn(internal); -- temporarely introduced before 2.2.0 final
183
184DROP FUNCTION IF EXISTS st_seteffectivearea(geometry, double precision); -- temporarely introduced before 2.2.0 final
185
186DROP FUNCTION IF EXISTS geometry_distance_box_nd(geometry, geometry); -- temporarely introduced before 2.2.0 final
187
188DROP FUNCTION IF EXISTS _ST_DumpPoints(geometry, integer[]); -- removed 2.4.0, but really should have been removed 2.1.0 when ST_DumpPoints got reimpmented in C
189
190-- Temporary clean-up while we wait to return these to action in dev
191DROP FUNCTION IF EXISTS _ST_DistanceRectTree(g1 geometry, g2 geometry);
192DROP FUNCTION IF EXISTS _ST_DistanceRectTreeCached(g1 geometry, g2 geometry);
193
194-- Deplicative signatures removed
195DROP FUNCTION IF EXISTS ST_Distance(geography, geography);
196DROP FUNCTION IF EXISTS ST_Distance(geography, geography, float8, boolean);
197DROP FUNCTION IF EXISTS ST_Buffer(geometry, float8, cstring);
198DROP FUNCTION IF EXISTS ST_IsValidDetail(geometry);
199DROP FUNCTION IF EXISTS ST_AsKML(int4, geometry, int4, text);
200DROP FUNCTION IF EXISTS ST_AsKML(geometry, int4);
201DROP FUNCTION IF EXISTS ST_AsGeoJson(int4, geometry, int4, int4);
202DROP FUNCTION IF EXISTS _ST_AsGeoJson(int4, geometry, int4, int4);
203
204-- Underscore_signatures removed for CamelCase
205DROP FUNCTION IF EXISTS st_shift_longitude(geometry);
206DROP FUNCTION IF EXISTS st_estimated_extent(text,text,text);
207DROP FUNCTION IF EXISTS st_estimated_extent(text,text);
208DROP FUNCTION IF EXISTS st_find_extent(text,text,text);
209DROP FUNCTION IF EXISTS st_find_extent(text,text);
210DROP FUNCTION IF EXISTS st_mem_size(geometry);
211DROP FUNCTION IF EXISTS st_3dlength_spheroid(geometry, spheroid);
212DROP FUNCTION IF EXISTS st_length_spheroid(geometry, spheroid);
213DROP FUNCTION IF EXISTS st_length2d_spheroid(geometry, spheroid);
214DROP FUNCTION IF EXISTS st_distance_spheroid(geometry, geometry, spheroid);
215DROP FUNCTION IF EXISTS st_point_inside_circle(geometry, float8, float8, float8);
216DROP FUNCTION IF EXISTS st_force_2d(geometry);
217DROP FUNCTION IF EXISTS st_force_3dz(geometry);
218DROP FUNCTION IF EXISTS st_force_3dm(geometry);
219DROP FUNCTION IF EXISTS st_force_collection(geometry);
220DROP FUNCTION IF EXISTS st_force_4d(geometry);
221DROP FUNCTION IF EXISTS st_force_3d(geometry);
222DROP FUNCTION IF EXISTS st_line_interpolate_point(geometry, float8);
223DROP FUNCTION IF EXISTS st_line_substring(geometry, float8, float8);
224DROP FUNCTION IF EXISTS st_line_locate_point(geometry, geometry);
225DROP FUNCTION IF EXISTS st_locate_between_measures(geometry, float8, float8);
226DROP FUNCTION IF EXISTS st_locate_along_measure(geometry, float8);
227DROP FUNCTION IF EXISTS st_combine_bbox(box3d, geometry);
228DROP FUNCTION IF EXISTS st_combine_bbox(box2d, geometry);
229DROP FUNCTION IF EXISTS st_distance_sphere(geometry, geometry);
230
231-- dev function 3.0 cycle
232DROP FUNCTION IF EXISTS pgis_geometry_union_transfn(internal, geometry);
233
234-- #4394
235update pg_operator set oprcanhash = true, oprcanmerge = true where oprname = '=' and oprcode = 'geometry_eq'::regproc;
236
237
238DO language 'plpgsql'
239$$
240BEGIN
241IF _postgis_scripts_pgsql_version()::integer >= 96 THEN
242-- mark ST_Union agg as parallel safe if it is not already
243        BEGIN
244            UPDATE pg_proc SET proparallel = 's'
245            WHERE oid = 'st_union(geometry)'::regprocedure AND proparallel = 'u';
246        EXCEPTION WHEN OTHERS THEN
247            RAISE DEBUG 'Could not update st_union(geometry): %', SQLERRM;
248        END;
249END IF;
250END;
251$$;
252