------------------------------------------------------------------------
-- DEBUG
------------------------------------------------------------------------
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_mem_size(geometry)
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_MemSize(geometry)
RETURNS int4
AS 'MODULE_PATHNAME', 'LWGEOM_mem_size'
LANGUAGE 'c' IMMUTABLE STRICT;
+-- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_mem_size(geometry)
+ RETURNS int4 AS
+ $$ SELECT _postgis_deprecate('ST_Mem_Size', 'ST_MemSize', '2.2.0');
+ SELECT ST_MemSize($1);
+ $$
+ LANGUAGE 'sql' IMMUTABLE STRICT SECURITY INVOKER;
+
-- Availability: 1.2.2
CREATE OR REPLACE FUNCTION ST_summary(geometry)
RETURNS text
SELECT ST_extent(geometry(wkb_ndr)) from test_data;
SELECT ST_3DExtent(geometry(wkb_ndr)) from test_data WHERE ST_NDims(wkb_ndr) > 2;
-SELECT ST_mem_size(ST_collect(ST_Force2d(geometry(wkb_ndr)))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force3dz(geometry(wkb_ndr)))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force4d(ST_force2d(geometry(wkb_ndr))))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force3dm(geometry(wkb_ndr)))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force2d(ST_force4d(ST_force3dm(ST_force3dz(ST_force2d(geometry(wkb_ndr)))))))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force2d(geometry(wkb_ndr)))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force3dz(geometry(wkb_ndr)))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force4d(ST_force2d(geometry(wkb_ndr))))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force3dm(geometry(wkb_ndr)))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force2d(ST_force4d(ST_force3dm(ST_force3dz(ST_force2d(geometry(wkb_ndr)))))))) from test_data;
DROP TABLE test_data;
select '110', ST_NRings('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY) as value;
-select '111', ST_mem_size(PostGIS_DropBBOX('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY)) as value;
+select '111', ST_MemSize(PostGIS_DropBBOX('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY)) as value;
select '112',ST_NumGeometries('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING( 1 1 , 2 2, 3 3),MULTIPOINT(1 1, 2 2))'::GEOMETRY) as value;
select '127',a @ b from TEST;
select '128',a ~ b from TEST;
+-- ST_Mem_Size was deprecated in favor of ST_MemSize in 2.2.0
+-- We keep the test using the deprecated function until 2.4.0
+-- (when the function will be removed)
select '129', ST_mem_size(PostGIS_DropBBOX(a)), ST_mem_size(PostGIS_DropBBOX(b)) from TEST;
select '131', ST_X('POINT(1 2)');